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
Phương Pháp Wyckoff Hiện Đại - Kỹ thuật Nhận diện Xu hướng Thị trường Tiềm năng
Phương pháp Wyckoff là một phương pháp price action kinh điển và đem lại thành công cho nhiều trader. Phương pháp này là nền tảng của nhiều phương pháp trading nổi tiếng khác
Bài viết liên quan
Nhờ code bot mt5
bởi Lamtk79,