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
Đánh Bại Thị Trường Forex - Tư duy khác biệt và các kỹ thuật giao dịch của chuyên gia quản lý quỹ triệu đô
Sách chia sẻ kiến thức và kinh nghiệm trading từ một chuyên gia quản lý quỹ, cùng các kỹ thuật giao dịch giúp quỹ này đứng trong top nhiều năm
Bài viết liên quan
Nhờ code bot mt5
bởi Lamtk79,