النتائج 1 إلى 2 من 2
الموضوع: كيف يكتب هذا الشرط داخل الكود
- 07-11-2023, 02:42 PM #1
كيف يكتب هذا الشرط داخل الكود
رجاء المساعده ... كيف اكتب الشرط التالي ..
(داخل اكسبرت ريكفري زون)
لما يوصل السعر لمضاعفه ( الباي ستوب او السيل ستوب ) و ميقدرش يفتحها بسبب الهامش او لاي سبب .
في هذه الحاله
(يمسح التيك بروفت) للصفقات الرابحه اللي حتكون عقودها اقل لان مفتحش المضاعفه الاخيره بسبب الهامش
و ايضا (يمسح الاستوب لوز ) للصفقات الخاسره اللي حيكون مجموع عقودها اكبر من الرابحه
بمعني . لو عقود الشراء مجموعها 1.28
والبيع 2.56
وطلع يفتح الشرا ب 5.12 .. وما كان في هامش يكفي ..
يستمر فالانعكاس بعد ما يلغي التيك بروفت لعقود الشرا ب1.28 ويكمل بعقود الانعكاس بعقود 2.56 بعد ما يلغي الاستوب لوز ليهم
- 07-11-2023, 02:54 PM #2
هل هذا الكود صحيح ؟
int OnInit()
{
// variables
double USD_Profit = 100;
double USD_Loss = -100;
double TotalContracts = 0;
double ProfitContracts = 0;
double LossContracts = 0;
return(INIT_SUCCEEDED);
}
void OnTick()
{
// التأكد من الصفقات المفتوحه
if(OrdersTotal() > 0)
{
// التأكد من الصفقات الرابحه
if(USD > 0 && SymbolProfit() >= USD_Profit)
{
// اغلا ق الصفقات
CloseAllPositions();
}
// Check if the position is in loss
else if(USD < 0 && SymbolLoss() >= USD_Loss)
{
// اغلاق الصفقات
CloseAllPositions();
}
}
// شرط وصول السعر للمضاعفه
if(Symbol() == "EURUSD" && CurrentBar() == 100)
{
// احسب عدد العقود
TotalContracts = Total();
//احسب العقود الرابحه
ProfitContracts = GetLongPositionsTotal();
// احسب العقود الخاسره
LossContracts = GetShortPositionsTotal();
// Clear the take profit for the profitable contracts
for(int i = 0; i < ProfitContracts; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
// اغلاق العقود
CloseOrder(OrderTicket(), OrderClosePrice(), 0, 0);
}
// مسح ستوب لوز للصفقات الخاسره
for(int i = 0; i < LossContracts; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
// اغلاق الصفقات
CloseOrder(OrderTicket(), OrderClosePrice(), 0, 0);
}
}
}