الاخ
MOVING_AVERAGE
عندي اكسبرت مشغله على حسابي الحقيقي شغال كويس
لكن المشكله اللي في انه في اوقات ما ينفذ الاوامر بالرغم من توفر الشرط
مع العلم انه لا يعطي رسائل خطاء من السيرفر او غيره لمنع تنفيذ الامر ... وعند عمل
باكتست للفرص التي لم ينفذها ... على الحقيقي تجدها ينفذها على الباكتست
وهذا كودا الاكسبرت
[PHP]
datetime Time0;
double digits,point;
//////////////////////////////////////////////////////
int init()
{
if((Digits==5) || (Digits==3)) digits=Digits;
if((Point==0.001) || (Point==0.00001)) point=Point;
return(0);
}
//////////////////////////////////////////////////////////////
int orderscnt(int type){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==type ){
cnt++;
}
}
}
return(cnt);
}
/////////////////////////////////////////////////////////////////////////
////////////////// Buy//////////////
if (Open[2]<Close[2]&&(Close[2]-Open[2])/point>310&&Open[1]<Close[1]&&Time0!=Time[0]){
if(orderscnt(OP_BUY)+orderscnt(OP_SELL)<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*digits,SL,TP,"EA",MagicNumber,0,Blue);
Time0=Time[0];
}
}
///////////////////// Sell////////////////////////
if (Open[2]>Close[2]&&(Open[2]-Close[2])/point>310&&Open[1]>Close[1]&&Time0!=Time[0]){
if(orderscnt(OP_BUY)+orderscnt(OP_SELL)<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*digits,SL,TP," EA",MagicNumber,0,Red);
Time0=Time[0];
}
}
}
[/PHP]
الاكسبرت لا يعتمد على اي موشر فقط على الشموع وهذه هي شروط الدخول
الاكسبرت جعلته يعمل فقط على منصه الخمسه ارقام لان البروكر خمسه ارقام
اخي الكريم
اذا ترى اي خطاء في اي كود او صيغة اخرى ممكن كتابة بها الاوامر على هذه الشروط
اكون شاكر لك .....
تحاتي