النتائج 1 إلى 5 من 5
- 19-09-2016, 10:34 PM #1
تحقق شرط بناء على شرط سابق في برمجة اكسبرت mq4
السلام عليكم ورحمة الله وبركاته
إخواني أنا جديد في مجال برمجة mql وأحاول أن أصنع اكسبرت على أساس مؤشر الايشيموكو ،، ولكني اواجه مشكلة وهي أني عندما أضع بعض الشروط (if ... else if)
مثلا الدخول الشراء عند Close[2]<Kijunsen و Close[1]>Kijunsen ولكن أنا لا أريد دخول الصفقة إلا عندما يتحقق شرط ثاني وهو أن الشيكوسبان يخترق الأسعار باتجاه الأعلى
وأعتقد أن الرمز (&&) لن ينفع في هذه الحالة لأنه يعني لن يتم دخول الصفقة إلا إذا تحقق الشرطين في نفس الوقت ،، وهذا ما لا أريده
بل ما أريده هو أن يقوم الاكسبرت بعمل check للشرط الأول فإن كان صحيحا يقوم بحفظه أو بتخزينه في ذاكرته ،، إن صح القول ،، وينتظر تحقق الشرط الثاني بدون الرجوع إلى الشرط الأول ،، حينئذ تنفذ الصفقة .
إذن كيف عمل الكود في هذه الحالة ؟؟
جزاكم الله خيرا
- 20-09-2016, 09:08 PM #2
وعليكم السلام ورحمة الله وبركاته
قم بتعريف متغير من نوع static وعندما يتحقق الشرط الأول سوف تجعله قيمته 1 مثلا ثم تنتظر تحقق الشرط الثاني
مثال
كود PHP:static int FirstSignal=0;
if( Close[1]>Kijunsen&&Close[2]<Kijunsen )
{
FirstSignal=1;
}
if(FirstSignal==1&&Senkou>Close[1])
{
// open order
FirstSignal=0;
}
if( Close[1]<Kijunsen&&Close[2]>Kijunsen )
{
FirstSignal=-1;
}
if(FirstSignal==-1&&Senkou<Close[1])
{
// open order
FirstSignal=0;
}
- 21-09-2016, 02:36 PM #3
بارك الله فيك أخي الكريم ،، لو ممكن تفضل تشرح لي الكود أكثر جزاك الله خيرا
- 21-09-2016, 03:08 PM #4
لقد قمت بعمل باك تست بالكود الذي وضعته ولكن يفتح صفقة واحدة فقط ومن بعد ذلك لا يفتح أي صفقات أخرى
- 22-09-2016, 06:52 PM #5كود PHP:
static int FirstSignal=0;
if( Close[1]>Kijunsen&&Close[2]<Kijunsen )
{
FirstSignal=1;
}
if(FirstSignal==1&&Senkou>Close[1]&&Senkou<Close[2])
{
FirstSignal=2;
}
if(FirstSignal==2)
{
// open order
}
if(Senkou<Close[1])
{
FirstSignal=1;
}
if(Close[1]<Kijunsen)
{
FirstSignal=0;
}
if( Close[1]<Kijunsen&&Close[2]>Kijunsen )
{
FirstSignal=-1;
}
if(FirstSignal==-1&&Senkou<Close[1]&&Senkou>Close[2])
{
FirstSignal=-2;
}
if(FirstSignal==-2)
{
// open order
}
if(Senkou>Close[1])
{
FirstSignal=-1;
}
if(Close[1]>Kijunsen)
{
FirstSignal=0;
}
آخر تعديل بواسطة elassari ، 22-09-2016 الساعة 06:55 PM