شكرا لك وللاستاذ جميل ولكن هذا لا يمنع من شرحك ايضا لي بمثال حيي هههههههه فانت تعرف التكرار يعلم الشطار ههههههه فعسى ان اتعلم
Printable View
اريد كود برمجى يقوم بالاتى :
عن طريق الماجيك نمبر يتم تجميع النقاط التى يكسبها او يخسرها الاكسبرت واذا وصل للرقم المحدد لا يفتح صفقات اخى حتى انتهاء اليوم او حتى توقيت عمله (فلتر الوقت )
مثال
الرقم المحدد 30
الاكسبرت فتح صفقة بيع1 وربح 10 نقاط ثم فتح صفقة بيع 2 وربح 9 نقاط ثم فتح صفقه شراء1 وخسر 25 - وفتح صفقة شرا2 وربح 30 هنا ييتبقى له 6 نقاط فيفتح صفقه اخرى هدفها 6 نقاط ثم يتوقف عن العمل حتى بداية اليوم التالى
بيع 1+بيع 2+شرا 1+ شرا 2
30-25+9+10 = 24
اذن هدف الصفقة الاخيرة = 6 نقاط
شكرا أخي جميل وأنا فعلا فكرت في الحلين دول لكن مش هينفعوا مع طلبي
السبب
الحل الأول : لو الإكسبيرت فاتح صفقات قبل كده واغلقت على ربح يبقى اول ما يفتح صفقات جديدة سيقوم بإغلاقها
الحل الثاني : لو عندي 4 عمليات بيع والصفقة من 130.00 - 130.20 - 130.40 - 130.60
إزاي البيع من 130.00 ومن 130.20 أخلى التيك بروفت بتاعه 130.40 ؟
في الحل الأول كلامك صحيح لكن حلها ستستخدم التوقيت للمقارنة بين توقيت آخر أغلاق للصفقة الرابحة يجب أن يكون أحدث من توقيت افتتاح الصفقات المفتوحة
في الحل الثاني لايوجد مشكلة طالما السعر اللحظي اعلى من اسعار بيع الصفقات المفتوحة فسيقبل التعديل ، جرب الحالتين وحتظبط معاك .
استاذ جميل الفكرة على شارت الرينكو
الفكرة ان الاكسبرت راح يدخل مع كل شمعه بهدف 10 نقاط والاجمالى المطلوب من الاكسبرت 30 نقطة مثلا راح يشتغل كالتالى
عن طريق الماجيك نمبر يتم تجميع النقاط التى يكسبها او يخسرها الاكسبرت واذا وصل للرقم المحدد لا يفتح صفقات اخى حتى انتهاء اليوم او حتى توقيت عمله (فلتر الوقت )
مثال
الرقم المحدد 30
الاكسبرت فتح صفقة بيع1 وربح 10 نقاط ثم فتح صفقة بيع 2 وربح 10 نقاط ثم فتح صفقه شراء1 وخسر 25 - وفتح صفقة شرا2 وربح 30 هنا ييتبقى له5 نقاط فيفتح صفقه اخرى هدفها 5 نقاط ثم يتوقف عن العمل حتى بداية اليوم التالى
بيع 1+بيع 2+شرا 1+ شرا 2
30-25+10+10 = 25
اذن هدف الصفقة الاخيرة = 5 نقاط
اتمنى تكون الفكرة وصلت بارك الله فيك
هدفك هو الرقم 30 فأذا تحقق لك 30 نقطة في هذا اليوم من خلال مجموعة صفقات رابحة وخاسرة يتوقف الأكسبيرت لباقي اليوم ، ستجد الأجابة في هذا الرابط
https://forum.arabictrader.com/t37612-268.html
من المشاركة 2673
كود PHP:extern int Max_Pips=30;
bool EATrading_ON;
int start ()
{
if(CalcProfitinPips()>= Max_Pips){EATrading_ON=false;}
else{EATrading_ON=true;}
if( EATrading_ON /*&& باقي شروط الشراء */)
{/*Buy*/}
if( EATrading_ON /*&& باقي شروط البيع */)
{/*Sell*/}
return(0);
}
int CalcProfitinPips(){
int multiplier;
double pips;
int pipstotal;
for (int cc = OrdersHistoryTotal() - 1; cc >= 0; cc--){
if (!OrderSelect(cc, SELECT_BY_POS, MODE_HISTORY) ) continue;
if (OrderMagicNumber() == MagicNumber && OrderOpenTime()>=iTime(Symbol(),PERIOD_D1,0)){
if (MarketInfo(OrderSymbol(), MODE_DIGITS)== 2) multiplier = 100;
if (MarketInfo(OrderSymbol(), MODE_DIGITS)== 3) multiplier = 100;
if (MarketInfo(OrderSymbol(), MODE_DIGITS)== 4) multiplier = 10000;
if (MarketInfo(OrderSymbol(), MODE_DIGITS)== 5) multiplier = 10000;
if (MarketInfo(OrderSymbol(), MODE_DIGITS)== 6) multiplier = 100000;//may be in the future :)
if (OrderType() == OP_BUY) pips = (OrderTakeProfit() - OrderOpenPrice()) * multiplier;
if (OrderType() == OP_SELL) pips = (OrderOpenPrice() - OrderTakeProfit()) * multiplier;
if (OrderType() == OP_BUY || OrderType() == OP_SELL) pipstotal+= pips; }
}
return(pipstotal);}
https://forum.arabictrader.com/t3761...ml#post2645813
:hands: :hands: :hands:
المشكلة كانت في أقواس ناقصةكود PHP:void Closeby()
{
if(orderscnt(OP_BUY)>0&&orderscnt(OP_SELL)>0){
int ticket1=GetTicketNumber(OP_BUY);
int ticket2=GetTicketNumber(OP_SELL);
OrderCloseBy(ticket1,ticket2,Red);
}
}
-----------------
بس خد بالك حسب أكوادك كده أول ما يفتح عملية هيقفلها
لازم تستخدم الدالة بعد تحقق شرط معين