شكرا اخي basuoni اضافه رائعه وسوف اجربها ان شاء الله وهي كما اتوقع تقوم بقياس التسارع السعر ساجربها واعطيك رائي وشكرا وتقبل ودي
ساقوم غدا ان شاء الله باكمال موضوع المحور الاول وسترتب على نقاط التاليه
1 اتجاه حجم التداول ( للتاكيد حجم التداول سوق الفوركس غير حقيقي ويمثل نفس الشركه )
2 الموشر الياباني وتحديد الاتجاه
3 فهم الاتجاه على اكثر من شارت لنفس العمله
4 بدايه عمل الاكسبيرت (ملاحظه بعد النهايه من الاكسبيرت ستكون النتائج جيده ولكن تحتاج الى تدقيق يدوي )
ملاحظه احاول في الموضوع ان اطرح اساليب جديده ليس لان الاساليب القديمه غير مجديه لكن لاضافتها اليها للوصول الى افضل النتائج ما اقصده خصيصا في تحديد الاتجاه يجب اتباع اكثر من خمس اساليب جميعا تجب ان تعطي نفس النتيجه وهي على سبيل المثال رسم خط اتجاه او قناه - متوسطات - اتجاه الدوره - حجم التداول - ......الخ البعض قد يستخدم اساليب غيرها
واسال الله التوفيق
بدكم تجنوني انتو الاثنين ابو أحمد والاخ محمد (بسيوني)
ما شاء الله عليكم أفكار ممتازة
أخي محمد هي فكرة الميلان انت طرحتها في موضوعك لما كنت تشرح طريقة الوافي على ما أذكر
كمان جتني فكرة ليه مانعمل هاد الخط تبع جان على الشمعة السابقة ويلي سبقتها ونشوف اذا الميلان بيزداد ولا بيتناقص مثل ما قال ابو احمد يعني كأننا بنقيس تسارع
ونعمل كل هالحكي مؤشر منهون لحتى ابو أحمد يخلص موضوعو ممكن تطلع معنا رزمة مؤشرات ممكن تكون مساعدة في عمل الاكسبيرت أخي ابو أحمد
بس السؤال:
هل المؤشر راح يفحص شمعتين بس وعلى اي فريم؟
بسم الله وعلى بركه الله
الطريقه الثانيه لمعرفه الاتجاه هي تتبع حجم التداول
حجم التداول في سوق الفوركس هو يمثل حجم التداول للشركه المشترك معها والبعض لا يعترف بها ولكن انا بصراحه اعتبرها اسلوب مساعده وذو فائده قيمه لمعرفه الاتجاه وبصراحه اقارن حجم التداول الى شركتين وهم ويندوسر وال تريد واذا ارت اقرب حجم تداول لسوق الفوركس يعتبر الاسواق المستقبله لاسباب ان معظم البنوك والشركات الكبرى تتداول عن طريق المستقبلي لكن المشكله ان الشارت ليس مجاني فاصل ونعود
نقوم باستخدام متوسط حجم التداول لعدد الشموع مثلا اتجاه صاعد بخمسه شمعات
متوسط حجم التداول يساوي مجموع حجم التداول لخمس شمعات تقسيم 5
يتم ايجاد متوسط حجم التداول في الطريقه هذه
http://www.screencast.com/t/YWI5M2Rh
مرفق شارت للتامل قبل الشرح
في الشارت الذي تم ارفاقه يجب ان يكون متوسط حجم التداول في الاتجاه اكبر من حجم التداول في التصحيح ويجب ان تكون الموجه الحاليه اكبر من متوسط الموجه السابقه مثل BC اكثر من DE لذلك توقعنا عكس الاتجاه وهذا حدث ونلاحظ حاليا ان احتمال كبير ان يكون موجه 34 ليست تصحيح والله اعلم وتظهر فائده متوسط حجم التداول في الاتجاه الجانبي حيث اذا كان متوسط حجم التداول في الصعود اكثر من النزول نتوقع الكسر من اعلى واكتشاف الكسر الكاذب اذا كان المتوسط اقل من الموجه التي قبلها في نفس الاتجاه
لكن المشكله الرئيسه ان حجم التداول غير دقيق ولكنه بصراحه مفيده جدا جدا وكثيرا ما ينقذ المتداول من الدخول في صفقات خاسره لذلك انصح كثيرا بساتخدامه من ضمن الخمس اساليب لتحديد الاتجاه
,
الطريقه الثالثه لتحديد الاتجاه هي الطريقه الياباني وهناك طرق كثيره جدا منها الشموع ونماذج السعر والدورات اليابانيه واهداف النماذج وHeiken_Ashi و Ichimoku
لكن اختصار للموضوع سيتم شرح طريقتين وهم Heiken_Ashi و Ichimoku
الطريقه الاولى Heiken_Ashi هناك قواعد خمسه وهي
1 الاتجاه : سلسله اجسام بيضاء بدون ظل للاسفل يعتبر تصاعدي وسلسله اجسام ملونه بدون ظل للاعلى يعتبر تنازلي
2 الاتجاه القوي الاجسام الطويله يدل على اتجاه قوي
3 تباطا الاتجاه : يصبح الاتجاه اضعف بحدوث اجسام قصيره ومن المحتمل ظهور كلتا الظلال للاعلى واسفل واي جسم داخل الجسم السابق يعتبر تباطا اتجاه محتمل
4 التعزيز : سلسله لجسام صغيره بكلتا الظلال
5 عكس الاتجاه : ظهور جسم صغير بالظلال العليا والسفلى لمده طويله اوعند تغير لون مفاجىء
الوشر المساعد للشموع Heiken_Ashi هو موشر haDelta
الاستخدام الموشر : يتم اضافه متوسط 3 ايام له الاشاره الرئيسيه تقاطه المتوسط وعندما يكون المتوسط حول الصفر يعتبر انه يشير الى اتجاه جانبي وعندما يل الى مستوى تاريخي يجب اعاده النظر وشموع تقوم بالتنقيه وممكن استخدام متوسط 9 مع متوسط 3
الطريقه الثانيه هي موشر Ichimoku وهوما سوف يتم اضافته الى الاكسبيرت اليدوي ان شاء الله
الطريقه الثانيه موشر Ichimoku سوف نعتمد الاتي
1 خطي الغيمه ويجب ان يكون السعر فوق الغيمه ليدل على الاتجاه التصاعدي والعكس صحيح
2 الخط المتاخر عن السعر ويجب ان يكون فوق الغيمه والسعر ليدل على اتجاه تصاعدي
3 وا قصى اليمن من الغيمه يجب ان يكون سبان 1 اكبر من سبان 2 ليدل على اتجاه تصاعدي
ستم برمجه هذه المشاركه بالشروط السابقه ليكون اول شروط في الاكسبيرت لتحديد الاتجاه ويجب التاكد من الاتجاه بطرق مختلفه والتاكد من عدم وجود نقاط دعم او مقاومه على الشارت الاعلى وهذا يكون يدويا
سيتم اضافه الجزء الاولي للاكسيرت الذي سيتم اضافه المعادلات له ويتضمن والوقف المتحرك وحساب صفقات البيع والشراء ..........الخ
كود PHP://+------------------------------------------------------------------+
//| الجزء الاولي .mq4 |
//| Copyright © 2012, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
extern int TakeProfit=0;
extern int StopLoss=0;
extern int MagicNumber = 1;
extern int Trailing_Stop = 0;// الوقف المتح
extern double Lot=0.1;//
int t1,t2;
extern int CHART1 =0;//
extern int CHART2 =240;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double b,s,bsl,ssl,bt,st;
b= Ask;
s=Bid;
if (StopLoss>0)
{
bsl=b-StopLoss*Point;
ssl=s+StopLoss*Point;
}
else
{
bsl=0;
ssl=0;
}
if (TakeProfit>0)
{
bt=b+TakeProfit*Point;
st=s-TakeProfit*Point;
}
else
{
bt=0;
st=0;
}
double lTrailingStop = Trailing_Stop;
double sTrailingStop = Trailing_Stop;
if(lTrailingStop>0||sTrailingStop>0){//3
TrailingPositionsBuy(lTrailingStop);
TrailingPositionsSell(sTrailingStop);
}
int cnt, ticket, total;
if(
MyBuyRealOrdersTotal(MagicNumber)==0)//1
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,b,3,bsl,bt,"",MagicNumber,0,Green );
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return(0);
}
if(MySellRealOrdersTotal(MagicNumber)==0)//
{
ticket=OrderSend(Symbol(),OP_SELL,Lot,s,3,ssl,st,"",MagicNumber,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Error opening SELL order : ",GetLastError());
return(0);
}
return(0);
}
return(0);
//+---------------
// وظيفة لحساب عدد الصفقات الحالية (للشراء)
int MyBuyRealOrdersTotal(int MagicNumber)
{
int c=0;
int total = OrdersTotal();
t1=-1;
t2=-1;
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() && (OrderType()==OP_BUY))
{
if (t1==-1)
{
t1=OrderTicket();
}
else
{
if (t2==-1)
{
t2=OrderTicket();
}
}
c++;
}
}
return(c);
}
// وظيفة لحساب عدد الصفقات الحالية للبيع
int MySellRealOrdersTotal(int MagicNumber)
{
int c=0;
int total = OrdersTotal();
t1=-1;
t2=-1;
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() && (OrderType()==OP_SELL))
{
if (t1==-1)
{
t1=OrderTicket();
}
else
{
if (t2==-1)
{
t2=OrderTicket();
}
}
c++;
}
}
return(c);
}
//+------------------------------------------------------------------+
void TrailingPositionsBuy(int trailingStop) {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) {
if (OrderType()==OP_BUY) {
if (Bid-OrderOpenPrice()>trailingStop*Point) {
if (OrderStopLoss()<Bid-trailingStop*Point)
ModifyStopLoss(Bid-trailingStop*Point);
}
}
}
}
}
}
void TrailingPositionsSell(int trailingStop) {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) {
if (OrderType()==OP_SELL) {
if (OrderOpenPrice()-Ask>trailingStop*Point) {
if (OrderStopLoss()>Ask+trailingStop*Point || OrderStopLoss()==0)
ModifyStopLoss(Ask+trailingStop*Point);
}
}
}
}
}
}
void ModifyStopLoss(double ldStopLoss) {
bool fm;
fm = OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,CLR_NONE);
}
فكره جامده جدا اخى محمد (تركم )
فعلا الفكره جاتلى من موضوع الوافى رحمه الله ومن خلال بحثى خلف مؤشرات جان فى الميتاتريدر
........
وممكن نعملها على فريم يوم ( اللى هو = 24 شمعه على فريم ساعه )
بحيث يظهرلنا قوة الاتجاه اليومى ( لو اعلى من كذا يبقى قوى .. لو اقل من كذا يبقى ضعيف )
وهكذا
وممكن نستغل خط جان مع مؤشر الزيجزاج ( بحيث نوصل بين القمم اوالقيعان وناخد قوة الاتجاه )
( او نرسم خط جان زى الزيجزاج على السعر وناخد زاوية ميل خط الزيجزاج نفسه )
( او ممكن نرسم خط جان بحيث نقطة البداية تبقى على قمه زيجزاج والنقطه التانيه فى الفراغ بزاوية ثابته ... والسعر طول ما هو تحت جان لاين يبقى اتجاه محترم .. واول ما يطلع فوق يبقى الاتجاه ابتدا يضعف ونبداء نخلى بالنا منه )
.............
كلها مجرد افكار
لم تكتمل حتى الان
ناتي الى المحور الثاني
الاشاره المطابقه للاتجاه اذا تاكد لدينا الاتجاه بناء على المحور الاول بعد طرق منها اليدوي والالكتروني تكون الاشاره من شارت اصغر مطابقه للاتجاه مثلا شارت اربع ساعات تصاعدي اذن اشاره من شارت ربع ساعه شراء
وهنا تظهر مشكله ان الاشارات في معظم الموشرات خصيصا على الشارت صغير مثلا ربع ساعه او خمس دقائق ا او حتى اكبر من ذلك تظهر في الوقت الحقيقي لحظه اطلاق الزناد يختلف شكلها عن بعد 20 شمعه وكثيرا ما نسال انفسنا اين كنت عند ظهور هذه الاشاره وهذه قاعده ان الاشاره في الوقت الحقيقي تختلف مظهرها عن الوقت اللاحق وحتى في موشر مثل الماكد لذلك لعدم الخوض في موضوع شائع مثل هذا سنعتمد اشاره من موشر Ichimoku
الاشاره من موشر Ichimoku
هي عندما يقوم خط الشينكو بكسر الغيمه وهي اكثر اشاره معتمده وتحمل مخاطره اقل
اذن مختصر الاستراتجيه التي سيتم برمجتها هي
الشراء
تحديد الاتجاه
السعر اعلى من الغيمه شارت اربع ساعات او ساعه وسبان 1 اكبر من سبان 2 في يمين الشارت الكبير وقد اضيف ان الشينكو فوق السعر والغيمه
اشاره الشراء
تقاطع موشر الشينكو مع الغيمه والاغلاق اعلى منها على شارت اقل مثلا ربع ساعه او خمس دقائق ستندرسها في وقت الاحق
الان سوف ننتقل الى المحور الثالث وهو المنطقه التي تظهر فيها الاشاره
في الاتجاه التصاعدي يجب ان تظهر الاشاره في منطقه دعم والعكس في التنازلي
ولكن قد نجد لصعوبه تحديد المنطقه التي سوف يحترمها السعر هل هي دعم اربع ساعات او دعم ساعه ومن امثله الدعم موشر فيوناتشي مثلا او موشر البولينجر او الغيمه في Ichimoku او متوسطات معينه لذلك يفضل تحديدها يدوي واختيار اكثر منطقه تحوي على تجمع لنقاط الدعم على اكثر من شارت وهنا مشكله لدينا على سبيل المثال ان خط البولينجر الاوسط على شارت اربع ساعات سوف يكون هو نفسه خط البولنجر الفلي على شارت الساعه وكذلك في موشر Ichimoku لذلك سوف نجد اكثر من تجمع نقاط على نفس الشارت
لذلك يفضل تحديدها يدويا وسوف نضيف اشاره من موشر القوه النسبيه او موشر ادكس او ستوكاستك او اي من الموشرات اوحتى موشر Ichimoku للتاكد من ان السعر قد صحح قبل استمرار الاتجاه السابق وسناتيها لاحقا ساحاول اليوم ان ابدا بعمل الاكسبيرت في الاشارات التي تم ذكرها في هذه المشاركه مع استثناء المحور الثالث حاليا
سنبدا بالمحور الرابع والاخير هو الوقت التي تظهر به الصفقه
هنا سوف نتحدث عن الدورات الزمنيه
مقدمه لابد منها هنا عده اساليب لايجاد الدورات الزمنيه منها على سبيل المثال طرق الموشرات والفحص البصري والالكتروني واستخدام المتوسطات والاغلفه والدورات الزمنيه الاخرى مثل فيوناتشي وجان والدورات اليابانيه وغيرها الكثير وتعد جميعا اساليب مختلفه لايجاد الدورات
قبل االخوض في التفاصيل والامثله والطرق لن يتم الخوض الا بطريقه واحده فقط وهي تعتبر طريقه عمليه اكثر من نظريه وهي طريقه هيورست صاحب كتاب سحر توقيت السوق الذي صدر في السبيعات وسنذكر بعض التطورات التي تمت عليها
ساحاول ان اخوض في الموضع عملي اكثر من نظري لكن لابد من بعض المبادى العامه
1 الدورات ترتبط برقم وغالبا ما يكون 2 او ثلاثه المقصود انني اذا وجدت دوره مدتها خمس ايام اي هناك دوره اطول منها سواء 15 او عشره ايام او دوره اقصر منها مرتبطه بالرقم 2 او 3
2 غالبا ما تكون الدوره قريبه جدا من النموذج الاسمي وسيتم اضافه جدول يمثل الدورات الاسميه
سيتم الخوض في المبادى الاخرى مع التطبيق العملي
سوف يكون ايجاد الدوره الزمنيه بناء على خطوات وسيتم استخدام موشر الاغلفه وبعض المتوسطات تابعونا
تم اضافه خاصيه العمل على اي بروكر سواء خمسه او اربعه ارقام وهكذا تم تجهيز قالب
كود PHP://+------------------------------------------------------------------+
//| مشروع التخرج .mq4 |
//| |
//| [email protected] |
//+------------------------------------------------------------------+
#property copyright ""
#property link "[email protected]"
extern int TakeProfit=0;
extern int StopLoss=0;
extern int MagicNumber = 1;
extern int Trailing_Stop = 0;// الوقف المتح
extern double Lot=0.1;//
int t1,t2;
extern int CHART1 =0;//
extern int CHART2 =240;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{ int PT;
if(Digits==5||Digits==3)PT=10;
else PT=1;
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
double b,s,bsl,ssl,bt,st;
int PT;
b= Ask;
s=Bid;
if (StopLoss>0)
{
bsl=b-StopLoss*Point*PT;
ssl=s+StopLoss*Point*PT;
}
else
{
bsl=0;
ssl=0;
}
if (TakeProfit>0)
{
bt=b+TakeProfit*Point*PT;
st=s-TakeProfit*Point*PT;
}
else
{
bt=0;
st=0;
}
double lTrailingStop = Trailing_Stop;
double sTrailingStop = Trailing_Stop;
if(lTrailingStop>0||sTrailingStop>0){//3
TrailingPositionsBuy(lTrailingStop);
TrailingPositionsSell(sTrailingStop);
}
int cnt, ticket, total;
if(
MyBuyRealOrdersTotal(MagicNumber)==0)//1
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,b,3*PT,bsl,bt,"",MagicNumber,0,Green );
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return(0);
}
if(MySellRealOrdersTotal(MagicNumber)==0)//
{
ticket=OrderSend(Symbol(),OP_SELL,Lot,s,3*PT,ssl,st,"",MagicNumber,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Error opening SELL order : ",GetLastError());
return(0);
}
return(0);
}
return(0);
//+---------------
// وظيفة لحساب عدد الصفقات الحالية (للشراء)
int MyBuyRealOrdersTotal(int MagicNumber)
{
int c=0;
int total = OrdersTotal();
t1=-1;
t2=-1;
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() && (OrderType()==OP_BUY))
{
if (t1==-1)
{
t1=OrderTicket();
}
else
{
if (t2==-1)
{
t2=OrderTicket();
}
}
c++;
}
}
return(c);
}
// وظيفة لحساب عدد الصفقات الحالية للبيع
int MySellRealOrdersTotal(int MagicNumber)
{
int c=0;
int total = OrdersTotal();
t1=-1;
t2=-1;
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() && (OrderType()==OP_SELL))
{
if (t1==-1)
{
t1=OrderTicket();
}
else
{
if (t2==-1)
{
t2=OrderTicket();
}
}
c++;
}
}
return(c);
}
//+------------------------------------------------------------------+
int PT;
void TrailingPositionsBuy(int trailingStop) {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) {
if (OrderType()==OP_BUY) {
if (Bid-OrderOpenPrice()>trailingStop*Point*PT) {
if (OrderStopLoss()<Bid-trailingStop*Point*PT)
ModifyStopLoss(Bid-trailingStop*Point*PT);
}
}
}
}
}
}
void TrailingPositionsSell(int trailingStop) {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) {
if (OrderType()==OP_SELL) {
if (OrderOpenPrice()-Ask>trailingStop*Point*PT) {
if (OrderStopLoss()>Ask+trailingStop*Point*PT || OrderStopLoss()==0)
ModifyStopLoss(Ask+trailingStop*Point*PT);
}
}
}
}
}
}
void ModifyStopLoss(double ldStopLoss) {
bool fm;
fm = OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,CLR_NONE);
}