طاب يا استاذي في مشكلة تانية الا وهي اخذ عقد المضاعفة .. وهي تعتبر مضاعفة ثابته
يعني عندي 5 عقود شراء العقد ب 10 دولار لما يعكس السعر هاخد عقد مثلا بضعف حجم العقود المفتوحة العقود المفتوحة يعني بحجم 100 .. ولحد هنا مفيش مشاكل
لكن لو عكس السعر فهاخد عقد شراء بنفس حجم العقد الاخير 100 معتمدا على عقود الشراء القديمة .. وهكذا
وهنا المشكلة .. الشرط عندي في بداية الشراء لابد ان لا يكون هناك عقود شراء مفتوحة والا يظل يدخل على كل شمعة وعلى الاستيب ويعمل حفلة :0016:
كود PHP:
if(Start_Buy && Mo_Fast_1 > Mo_Slow_2 && OrderTotalByType(OP_BUY)==0) Buy_Market2();
فللخروج من الازمة وضعت امر آخر للشراء والبيع مع التقاطع لا يحوي هذا الشرط
كود PHP:
if(NCC!=Time[0] && Mo_Fast_1_2 < Mo_Slow_2_2 && Mo_Fast_1 > Mo_Slow_2 ) { NCC=Time[0]; Buy_Market2();}
وهنا بقت المشكلة مشكلتين
اولا بمجرد فتح الصفقة المضاعفة الاولي بحجم لوت كل العقود يفتح معها صفقة اخري للتقاطع ومش لاقي حل فكيف يمكن ان يأخذ المضاعفة الاولي من الامر الاول دون النظر للامر الثاني او العكس ؟؟؟؟
ثانيا كل العقود على التقاطعات يأخذها باللوت المبدئي وليس بقيمة اخر عقد على الرغم اني كاتبه في شروط الشراء والبيع كالتالي
كود PHP:
void Buy_Market2(){double SL=0,TP=0,NewLot=Lot;if(Use_Multi_Order_With_Trend && Multi_Factor_With_Trend>0 && LastOrderProf(OP_BUY)<0) NewLot=LastOrderLot(OP_BUY)*Multi_Factor_With_Trend;if(OrderTotalByType(OP_SELL)>0 && OrderTotalByType(OP_BUY)==0 ) NewLot=Total_Lots(OP_SELL)*Multi_Factor_Reverse_Trend;if(OrderTotalByType(OP_SELL)>0 && OrderTotalByType(OP_BUY)>0 ) NewLot=LastOrderLot(OP_SELL);if(NewLot > Max_Lot_Allowed) NewLot=Max_Lot_Allowed;if(Stoploss>0) SL=Ask-Stoploss*points; else SL=0;if(Takeprofit>0) TP=Ask+Takeprofit*points; else TP=0;int ticket=OrderSend(Symbol(),OP_BUY,NewLot,Ask,30,SL,TP,"hre007",MagicNo,0,clrGreen); } void Sell_Market2(){double SL=0,TP=0,NewLot=Lot;if(Use_Multi_Order_With_Trend && Multi_Factor_With_Trend>0 && LastOrderProf(OP_SELL)<0) NewLot=LastOrderLot(OP_SELL)*Multi_Factor_With_Trend;if(OrderTotalByType(OP_BUY)>0 && OrderTotalByType(OP_SELL)==0 ) NewLot=Total_Lots(OP_BUY)*Multi_Factor_Reverse_Trend;if(OrderTotalByType(OP_BUY)>0 && OrderTotalByType(OP_SELL)>0) NewLot= LastOrderLot(OP_BUY);if(NewLot > Max_Lot_Allowed) NewLot=Max_Lot_Allowed;if(Stoploss>0) SL=Bid+Stoploss*points; else SL=0;if(Takeprofit>0) TP=Bid-Takeprofit*points; else TP=0;int ticket=OrderSend(Symbol(),OP_SELL,NewLot,Bid,30,SL,TP,"hre007",MagicNo,0,clrRed);}
فما هو الحل البرمجي للمشكلة الاولي .. هل لابد من عمل دالة اخري للشراء والبيع لا تحتوي على المضاعفات للتعامل مع المرحلة الاولي قبل الخول للمضاعفات ام ماذا ؟؟
ولماذا لا يتبع الامر في المشكلة الثانية ومصمم على اللوت المبدئي ؟؟؟؟؟
انا عارف اني متقل عليك اخي الحبيب .. بس معلش بقي استحملني وجزاك الله كل خير