المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : طلب : كود قفل جزء من العقد بعد عدد نقاط معين


ٍٍالصقر
07-07-2012, 10:17 PM
السلام عليكم ورحمة الله وبركاته

بعد اذنكم يا جماعة اللى ليه خبرة فى البرمجة اواللى يعرف يجاوب على سؤالى ياريت يرد عليا
واكون شاكر ليكم جداً

وانا محتاج فكرة الكود بس وانا ححاول اعدل عليه

انا محتاج كود يغلق اجزاء من العقد المفتوح بعد عدد نقاط معين
يعنى عايز كود يقفل جزء من العقد كل ما الصفقة تتحرك 10 نقاط مثلاً فى اتجاهاها

مثال للتوضيح

ولنفترض الصفقة مفتوحة شراء بحجم 10 لوت مثلاً عند سعر 1.5000
انا عايز كل ما السعر يزيد 10 نقط يتم غلق 10 % من اللوت المفتوح

يعنى عند سعر 1.5010 يتم غلق 1 لوت ويبقى الصفقة شغاله بـ 9 لوت بس
وعند سعر 1.5020 يتم غلق 0.9 لوت ويبقى الصفقة شغاله بـ 8.1 لوت
وهكذا
كل ما السعر يتحرك 10 نقط يتم غلق جزء من العقد

انا محتاج فكرة الكود بس وانا ححاول اعدل عليه ان شاء الله

واسف على ازعاجكم جميعاً

jmeel
10-07-2012, 08:49 PM
تفضل كود اغلاق جزء من صفقة

void CloseOrderPartial2()
{
int orderstotal = OrdersTotal();
int orders = 0;
int ordticket[30][2];
for (int i = 0; i < orderstotal; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderType() != OP_BUY || OrderSymbol() != Symbol() || OrderMagicNumber() != 1)
{
continue;
}
ordticket[orders][0] = OrderOpenTime();
ordticket[orders][1] = OrderTicket();
orders++;
}
if (orders > 1)
{
ArrayResize(ordticket,orders);
ArraySort(ordticket);
}
for (i = 0; i < orders; i++)
{
if (OrderSelect(ordticket[i][1], SELECT_BY_TICKET) == true)
{
bool ret = OrderClose(OrderTicket(), Lots2, OrderClosePrice(), 4, Red);
if (ret == false)
Print("OrderClose() error - ", ErrorDescription(GetLastError()));
}
}

}