سؤال حول الدالة البرمجية GlobalVariableGet .. لتسجيل نوع أمر الصفقة
الى خبراء البرمجة .. السلام عليكم ورحمة الله وبركاته
لقد بحثت عن داله تعمل على تعاقب نوع اوامر الصفقات .. بحيث تجعل عملية بيع تتلوها عملية شراء تتلوها بيع وهكذا
بيع
شراء
بيع
شراء
وهكذا
فوقع البحث على دالة GlobalVariableGet
وبحكم عدم الالمام الجيد في اللغة الانجليزية واجهت صعوبة في فهم هذه الدالة
المراد منكم اخواني المبرمجين الافادة عن مدى فعالية هذه الداله للمهمة المطلوبة .. وكيف يمكن ان يكتب الكود البرمجي لتحقيق تنفيذ المهمة كما هو مطلوب
وما الخيارات البديلة لمثل ذلك
ودمتم جميعا سالمين
رد:سؤال حول الدالة البرمجية GlobalVariableGet .. لتسجيل نوع أمر الصفقة
لن تحتاج لها ويكفي ان تعمل دالة عبارة عن حلقة لأستخراج نوع آخر صفقة وبالتالي تطلب عدم تنفيذ نفس النوع ، والدالة تختلف اذا كنت تستدعي معرفه عقد مفتوح او عقد مغلق .
هذا مثال للدالة لمعرفة آخر عقد مغلق فأذا كان شراء اوجه الأمر الى البيع
كود PHP:
void CheckLastOrder()
{
datetime lastCloseTime = 0;
int cnt = OrdersHistoryTotal();
for (int i=0; i < cnt; i++)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
if (OrderSymbol() == Symbol() && lastCloseTime < OrderCloseTime() && OrderType()== OP_BUY)
{
GO SELL
}
}
}
1 مرفق
رد:سؤال حول الدالة البرمجية GlobalVariableGet .. لتسجيل نوع أمر الصفقة
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
يمكنك أن تستخدم الطريقة التي شرحها الأخ جميل
بالنسبه للداله GlobalVariableGet و GlobalVariableSet
تستخدم لحفظ قيم في الذاكره العامه ويمكنك إسترجاعها حتى لو أغلقت الميتاتريدر
بالنسبه لإستخدامها في الكود الذي تريده
يمكنك حفظ قيمة في الذاكره بحيث عندما يتم فتح صفقة شراء تتحول إلى 1 وعندما يتم فتح صفقة بيع تتحول إلى -1
ثم تضع في الشروط هذه المقارنه
مثال
كود PHP:
if(GlobalVariableGet("NextOrderType")!=1)
{
OrderSend(Symbol(),OP_BUY,Lots1,NormalizeDouble(Ask,Digits),3,SL,TP,"EA",MagicNumber,0,Blue);
GlobalVariableSet("NextOrderType",1);
}
if(GlobalVariableGet("NextOrderType")!=-1)
{
OrderSend(Symbol(),OP_SELL,Lots1,NormalizeDouble(Bid,Digits),3,SL,TP,"EA",MagicNumber,0,Red);
GlobalVariableSet("NextOrderType",-1);
}
شكرا استاذا اسامه .. ربي يوفقك ويرحم والديك
وفي المرفق اكسبيرت تم نعديله على ضوء مشاركتك السابقة ولكن لا زالت فيه اخطاء صعب تصحيحها
ارجو الاطلاع وتعديله ولا حرمك الله الاجر