عرض مشاركة واحدة
قديم 26-05-2017, 01:41 AM   المشاركة رقم: 609
الكاتب
اسلام العوامى
عضو ذهبى
الصورة الرمزية اسلام العوامى

البيانات
تاريخ التسجيل: Apr 2012
رقم العضوية: 9148
الدولة: alexandria - egypt
المشاركات: 6,086
بمعدل : 1.38 يوميا

الإتصالات
الحالة:
اسلام العوامى غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : اسلام العوامى المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4

المشاركة الأصلية كتبت بواسطة amr amrou نقره لعرض الصورة في صفحة مستقلة
أريد برمجة إكسبرت يقوم بالتالي
عند وضعه يقوم بفتح صفقة شراء في الشمعة الحالية و عند إغلاق الشمعة الحالية و إفتتاح شمعة جديدة يقوم بفتح صفقة بيع و عند إفتتاح شمعة جدية يفتح شراء
و هكذا كل شمعة صفقة جديدة و الصفقات عكس بعض مع إختلاف في اللوت أيضا كل صفقة جديدة يكوت اللوت الخاص بها أكبر من الصفقة السابقة

أعرف أن أمر فتح الصفقات هو

كود:
OrderSend(string symbol, int cmd, double volume, double price,int slippage, double stoploss,double takeprofit,string comment=NULL,int magic=0,datetime expiration=0,color arrow_color=clrNONE);
لكن كيف أطبق الشروط المذكورة عليه في شكل حلقة أو وضيفة أو دالة


أرجو ذكر ذالك مع شرح بالعربي أمام السطور إن أمكن ذالك

و الله يجعل مساعدتك في ميزان حسناتك
،،،اهلا بك اخي الفاضل ، اولا يتم حجز هذه المتغيرات،،،

كود:
datetime time0;
bool x;
double NewLot,LastLot;
،،،ثم وضع الكود التالي في OnTick،،،

كود:
  if(time0!=Time[0]){
  if(x==-1){
  NewLot = LastLot+0.01;
  bool b = OrderSend(Symbol(),OP_BUY,NewLot,Ask,0,0,0,"",Magicnumber,0,clrBlue);
  LastLot = NewLot;
  x=1;
}
  if(x==1){
    NewLot = LastLot+0.01;
  bool b = OrderSend(Symbol(),OP_SELL,NewLot,Bid,0,0,0,"",Magicnumber,0,clrRed);
    LastLot = NewLot;
  x=-1;
}
time0=Time[0];
}
،،،والكود يبدأ بعمل فحص لقيمة المتغير time0 اذا كان لايساوي وقت الشمعة الحالية يتم الانتقال للسطر التالي والفائدة هو منع الاكسبيرت من تنفيذ باقي الاوامر الا عند افتتاح شمعة جديدة،،،

،،،بعد ذلك يتم فحص قيمة المتغير x اذا كان يساوي -1 فمعنى ذلك ان الصفقة السابقة كانت بيع فيتم فتح شراء واذا كانت تساوي 1 فيتم فتح بيع،،،

،،،بعد ذلك يتم اسناد قيمة اللوت السابق + الزيادة التي نريدها الى المتغير NewLot وفي هذا المثال وضعت الزيادة بمقدار 0.01 ثم يتم فتح الصفقة وتخزين قيمة اللوت الجديد في المتغير LastLot،،،

،،،في النهاية يتم اسناد وقت الشمعة الحالية للمتغير time0،،،

،،،تحياتي،،،



التوقيع

عرض البوم صور اسلام العوامى  
رد مع اقتباس
  #609  
قديم 26-05-2017, 01:41 AM
اسلام العوامى اسلام العوامى غير متواجد حالياً
عضو ذهبى
افتراضي رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4

المشاركة الأصلية كتبت بواسطة amr amrou نقره لعرض الصورة في صفحة مستقلة
أريد برمجة إكسبرت يقوم بالتالي
عند وضعه يقوم بفتح صفقة شراء في الشمعة الحالية و عند إغلاق الشمعة الحالية و إفتتاح شمعة جديدة يقوم بفتح صفقة بيع و عند إفتتاح شمعة جدية يفتح شراء
و هكذا كل شمعة صفقة جديدة و الصفقات عكس بعض مع إختلاف في اللوت أيضا كل صفقة جديدة يكوت اللوت الخاص بها أكبر من الصفقة السابقة

أعرف أن أمر فتح الصفقات هو

كود:
OrderSend(string symbol, int cmd, double volume, double price,int slippage, double stoploss,double takeprofit,string comment=NULL,int magic=0,datetime expiration=0,color arrow_color=clrNONE);
لكن كيف أطبق الشروط المذكورة عليه في شكل حلقة أو وضيفة أو دالة


أرجو ذكر ذالك مع شرح بالعربي أمام السطور إن أمكن ذالك

و الله يجعل مساعدتك في ميزان حسناتك
،،،اهلا بك اخي الفاضل ، اولا يتم حجز هذه المتغيرات،،،

كود:
datetime time0;
bool x;
double NewLot,LastLot;
،،،ثم وضع الكود التالي في OnTick،،،

كود:
  if(time0!=Time[0]){
  if(x==-1){
  NewLot = LastLot+0.01;
  bool b = OrderSend(Symbol(),OP_BUY,NewLot,Ask,0,0,0,"",Magicnumber,0,clrBlue);
  LastLot = NewLot;
  x=1;
}
  if(x==1){
    NewLot = LastLot+0.01;
  bool b = OrderSend(Symbol(),OP_SELL,NewLot,Bid,0,0,0,"",Magicnumber,0,clrRed);
    LastLot = NewLot;
  x=-1;
}
time0=Time[0];
}
،،،والكود يبدأ بعمل فحص لقيمة المتغير time0 اذا كان لايساوي وقت الشمعة الحالية يتم الانتقال للسطر التالي والفائدة هو منع الاكسبيرت من تنفيذ باقي الاوامر الا عند افتتاح شمعة جديدة،،،

،،،بعد ذلك يتم فحص قيمة المتغير x اذا كان يساوي -1 فمعنى ذلك ان الصفقة السابقة كانت بيع فيتم فتح شراء واذا كانت تساوي 1 فيتم فتح بيع،،،

،،،بعد ذلك يتم اسناد قيمة اللوت السابق + الزيادة التي نريدها الى المتغير NewLot وفي هذا المثال وضعت الزيادة بمقدار 0.01 ثم يتم فتح الصفقة وتخزين قيمة اللوت الجديد في المتغير LastLot،،،

،،،في النهاية يتم اسناد وقت الشمعة الحالية للمتغير time0،،،

،،،تحياتي،،،




رد مع اقتباس