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
Mô Hình Biểu Đồ - Phương Pháp Hiệu Quả Để Tìm Kiếm Lợi Nhuận
Được xem là cẩm nang về mô hình biểu đồ của các nhà đầu tư, giao dich tài chính toàn cầu và là kiến thức bắt buộc phải nắm về Phân Tích Kỹ Thuật
Bài viết liên quan
Nhờ code bot mt5
bởi Lamtk79,