Hoang Quang Minh
Active Member
- 209
- 90
Truớc tiên xin lỗi Admin nếu mình đăng bài không đúng chỗ, thì xin Admin chuyển về mục đó giúp.
Mình đang tập viết EA nhưng không biết là bị sai ở chỗ nào mà bị 1 lỗi mà mình sửa hoài không được.
Xin cảm ơn trước các bạn nào biết code bớt chút thời gian liếc qua xem giúp 1 chút.
Xin cảm ơn nhiều.
//+------------------------------------------------------------------+
extern int MagicNumber =10001;
extern double Lots =0.01;
extern double MMLots =0.1;
extern double StopLoss =50;
extern double TakeProfit =50;
extern int TrailingStop =50;
extern int Slippage =3;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start()
{double MyPoint=Point;
if(Digits==3|| Digits==5) {MyPoint=Point*10;}
double TheStopLoss=0; double TheTakeProfit=0;
if(TotalOrdersCount()==0)
{int result=0;
if((iRSI(NULL,PERIOD_D1,14,PRICE_CLOSE,0)>iRSI(NULL,PERIOD_D1,18,PRICE_CLOSE,0))) // Here is your open buy rule
{result=OrderSend(Symbol(),OP_BUY,AdvancedMM(),Ask,Slippage,0,0,"EA",MagicNumber,0,Blue);
if(result>0){TheStopLoss=0;TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit = Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss = Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);}
return(0);}
if((iRSI(NULL,PERIOD_D1,14,PRICE_CLOSE,0)<iRSI(NULL,PERIOD_D1,18,PRICE_CLOSE,0))) // Here is your open Sell rule
{result=OrderSend(Symbol(),OP_SELL,AdvancedMM(),Bid,Slippage,0,0,"EA",MagicNumber,0,Red);
if(result>0){TheStopLoss=0;TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit = Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss = Bid+StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);}
return(0);}}
//+------------------------------------------------------------------+
for(int cnt=0;cnt<OrdersTotal();cnt++)
{OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{if(OrderType()==OP_BUY){if(TrailingStop>0)
{if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);}}}}
else {if(TrailingStop>0)
{if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);}}}}}}
return(0);}
int TotalOrdersCount()
{int result=0;
for(int i=0;i<OrdersTotal();i++)
{OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;}
return (result);}
//======================================================================
double AdvancedMM();
double lastLotsize();
if((lastprofitEn(sym) >1) AdvancedMM = Lots
if((lastprofitEn(sym) <1) AdvancedMM = lastLotsize*MMLots
//+------------------------------------------------------------------+
double lastprofiEn(string symm)
{double lastprofit; datetime lasttime;
for(int i=0; i<= OrdersHistoryTotal()-1; i++)
{if(OrderSelect(i, SELECT_BY_POS,MODE_HISTORY)==False){continue;}
if(OrderSymbol() != symm){continue;}
if(OrderMagicNumber()!= MagicNumber){continue;}
if(OrderType()<2)
{continue;}
if(OrderCloseTime()>lasttime)
{
lasttime = OrderCloseTime();
lastprofit = OrderProfit();
lastLotsize= OrderLots();
}
}
return(lastprofit);
return(lastLotsize);
}
//+------------------------------------------------------------------+
Mình đang tập viết EA nhưng không biết là bị sai ở chỗ nào mà bị 1 lỗi mà mình sửa hoài không được.
Xin cảm ơn trước các bạn nào biết code bớt chút thời gian liếc qua xem giúp 1 chút.
Xin cảm ơn nhiều.
//+------------------------------------------------------------------+
extern int MagicNumber =10001;
extern double Lots =0.01;
extern double MMLots =0.1;
extern double StopLoss =50;
extern double TakeProfit =50;
extern int TrailingStop =50;
extern int Slippage =3;
//+------------------------------------------------------------------+
// expert start function
//+------------------------------------------------------------------+
int start()
{double MyPoint=Point;
if(Digits==3|| Digits==5) {MyPoint=Point*10;}
double TheStopLoss=0; double TheTakeProfit=0;
if(TotalOrdersCount()==0)
{int result=0;
if((iRSI(NULL,PERIOD_D1,14,PRICE_CLOSE,0)>iRSI(NULL,PERIOD_D1,18,PRICE_CLOSE,0))) // Here is your open buy rule
{result=OrderSend(Symbol(),OP_BUY,AdvancedMM(),Ask,Slippage,0,0,"EA",MagicNumber,0,Blue);
if(result>0){TheStopLoss=0;TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit = Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss = Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);}
return(0);}
if((iRSI(NULL,PERIOD_D1,14,PRICE_CLOSE,0)<iRSI(NULL,PERIOD_D1,18,PRICE_CLOSE,0))) // Here is your open Sell rule
{result=OrderSend(Symbol(),OP_SELL,AdvancedMM(),Bid,Slippage,0,0,"EA",MagicNumber,0,Red);
if(result>0){TheStopLoss=0;TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit = Bid-TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss = Bid+StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);}
return(0);}}
//+------------------------------------------------------------------+
for(int cnt=0;cnt<OrdersTotal();cnt++)
{OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{if(OrderType()==OP_BUY){if(TrailingStop>0)
{if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);}}}}
else {if(TrailingStop>0)
{if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);}}}}}}
return(0);}
int TotalOrdersCount()
{int result=0;
for(int i=0;i<OrdersTotal();i++)
{OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;}
return (result);}
//======================================================================
double AdvancedMM();
double lastLotsize();
if((lastprofitEn(sym) >1) AdvancedMM = Lots
if((lastprofitEn(sym) <1) AdvancedMM = lastLotsize*MMLots
//+------------------------------------------------------------------+
double lastprofiEn(string symm)
{double lastprofit; datetime lasttime;
for(int i=0; i<= OrdersHistoryTotal()-1; i++)
{if(OrderSelect(i, SELECT_BY_POS,MODE_HISTORY)==False){continue;}
if(OrderSymbol() != symm){continue;}
if(OrderMagicNumber()!= MagicNumber){continue;}
if(OrderType()<2)
{continue;}
if(OrderCloseTime()>lasttime)
{
lasttime = OrderCloseTime();
lastprofit = OrderProfit();
lastLotsize= OrderLots();
}
}
return(lastprofit);
return(lastLotsize);
}
//+------------------------------------------------------------------+
Giới thiệu sách Trading hay
Giao Dịch Theo Xu Hướng Để Kiếm Sống
Sách chia sẻ chiến lược giao dịch, tâm lý, phương pháp quản lý vốn thực chiến của Trader 18 năm kinh nghiệm giao dịch theo xu hướng
Bài viết liên quan
Nhờ code bot mt5
bởi Lamtk79,