عندما تضع في الشرط أن يكون على مسافة معينة من سعر آخر صفقة ستواجهك اول مشكلة وماذا ينفذ اذا لم يجد صفقة مفتوحة حتى يقارن ؟؟ فلابد أن تحسب هذا في الشرط .
Printable View
اعتقد انه ان لم يجد صفقة مفتوحة سيعتبرها صفر ويفتح على سعر السوق .. وفعلا الاكسبيرت الي حضرتك شفته فتح اول صفقة على سعر السوق .. والصفقات الاحقة كانت ملتزمة بالشروط اي تضع اكبر من او تساوي الاستيب عند تكرار الشرط
فهل هذا صحيحا ؟؟
أعتقد يا استاذ جميل ان امر الشراء فيه شيئ غلط ..
انا لغيت كل شي وأبقيت على شروط الشراء وما يتعلق به من دوال .. وكذلك لغيت الاستيب وما يتعلق بها.. وما زال لا يعمل
:016:
مش عارف فيه ايه .. اصبح لا يعمل على اي منصة ...
حتي لما رجعت السطور .. مش عارف المشكلة في السيستم والا ايه ؟؟
شغال عادي والمفروض يكون هكذا بعد التعديلكود PHP:if(USD_BuyProfit()==USDProfit&&UseProfitUSD==true) { CloseAll(); } if(USD_SellProfit()==USDProfit&&UseProfitUSD==true) { CloseAll(); } double SL,TP;
if(Close[2]<Open[2]&&Close[1]>Open[1]&&Ask<=LastOrderBuyPriceB()-step*point) //if(Close[2]<Open[2]&&Close[1]>Open[1]) if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;} if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;} OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),3*Q,SL,TP,"HRE007",MagicNumber,0,Blue); if(Close[2]>Open[2]&&Close[1]<Open[1]&&Bid>=LastOrderSellPriceS()+step*point) //if(Close[2]>Open[2]&&Close[1]<Open[1]) if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*point;} if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),3*Q,SL,TP,"HRE007",MagicNumber,0,Red);
و ارفع اللوت خليه 0.1 وجرب المهم أن يكون التعديل صحيح ، انا احب انك تمشي خطوة خطوة وفي كل تعديل حتلاقي اخطاء أخرى وحتى تصل الى الأكسبيرت الذي تريد .
على فكرة المنتدى فيه مشكلة عند نسخ اكواد فلاتكون مرتبة في أسطر وتدخل في بعضها
تفضل يمكن هنا أوضحاقتباس:
if(USD_BuyProfit()==USDProfit&&UseProfitUSD==true)
{
CloseAll();
}
if(USD_SellProfit()==USDProfit&&UseProfitUSD==true )
{
CloseAll();
}
double SL,TP;
if(Close[2]<Open[2]&&Close[1]>Open[1]&&Ask<=LastOrderBuyPriceB()-step*point)
//if(Close[2]<Open[2]&&Close[1]>Open[1])
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*poi nt;}
OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask ,Digits),3*Q,SL,TP,"HRE007",MagicNumber,0,Blue);
if(Close[2]>Open[2]&&Close[1]<Open[1]&&Bid>=LastOrderSellPriceS()+step*point)
//if(Close[2]>Open[2]&&Close[1]<Open[1])
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bi d,Digits),3*Q,SL,TP,"HRE007",MagicNumber,0,Red);
جاري التعديل يا باشا .. وموافاتك بالنتائج
انا عدلت يا استاذي ونفس النتائج .. يقوم بالبيع فقط ..
ومش عارف اذا كنت عدلت صح والا لا عشان فعلا الكود مش واضح
الاكسبرت مرفق للمراجعة
الملف المرفق 393371
أوقف هذا الشرط في البيع والشراءاقتباس:
if(Close[2]<Open[2]&&Close[1]>Open[1])// &&Ask<=LastOrderBuyPriceB()-step*point)