Hướng dẫn tự làm một Expert Advisor - EA - cho MT4

Hướng dẫn tự làm một Expert Advisor - EA - cho MT4

Hướng dẫn tự làm một Expert Advisor - EA - cho MT4
Dòng 46 trong ảnh cuối, bác thay dấu == thành >= rồi compile (dịch lại) file code là ok nhé. Nó sẽ vào lệnh không giới hạn
Trời ơi bác ơi !! Nó vào cùng 1 lúc full lệnh tại 1 thời điểm luôn, ý e là 1 lúc vào 1 lệnh thôi, rồi lát sau đủ điều kiện lại vào thêm 1 lệnh mới, mà k cần phải đóng lệnh cũ đang chạy ấy ạ!!
 
Trời ơi bác ơi !! Nó vào cùng 1 lúc full lệnh tại 1 thời điểm luôn, ý e là 1 lúc vào 1 lệnh thôi, rồi lát sau đủ điều kiện lại vào thêm 1 lệnh mới, mà k cần phải đóng lệnh cũ đang chạy ấy ạ!!
sorry bác! quên mất nhỉ, vậy bác phải định nghĩa lại "1 thời điểm" của bác là gì, ví dụ đầu mỗi cây nến chẳng hạn, bác gửi tôi source code tôi sửa thành file EA cho. Nhưng tôi không share dc code đâu nhé!
 
sorry bác! quên mất nhỉ, vậy bác phải định nghĩa lại "1 thời điểm" của bác là gì, ví dụ đầu mỗi cây nến chẳng hạn, bác gửi tôi source code tôi sửa thành file EA cho. Nhưng tôi không share dc code đâu nhé!
Là đây hả bác? bác thử chỉnh lại giúp e xem sao !!
 

Đính kèm

  • STOCH_EA (27).mq4
    4.6 KB · Xem: 20
Là đây hả bác? bác thử chỉnh lại giúp e xem sao !!
Tôi sửa lại cho nó kiểm tra và đặt lệnh tại mỗi cây nến mới (vì tôi hỏi mà bác không trả lời cái chuyện "1 thời điểm" nghĩa là thế nào nên tôi tạm để vậy).
Thêm 1 cái tham số MAX_TRADE là số lệnh tối đa tại 1 thời điểm nữa.
EA này chơi vui thôi, không đủ tốt để dùng đâu vì nó chỉ kiểm tra điều kiện Buy. Ngay cả điều kiện Sell đi nữa thì code của nó cũng không đủ tốt để xử lý các tình huống lỗi của thị trường.
 

Đính kèm

  • STOCH_EA.ex4
    10.4 KB · Xem: 14
Tôi sửa lại cho nó kiểm tra và đặt lệnh tại mỗi cây nến mới (vì tôi hỏi mà bác không trả lời cái chuyện "1 thời điểm" nghĩa là thế nào nên tôi tạm để vậy).
Thêm 1 cái tham số MAX_TRADE là số lệnh tối đa tại 1 thời điểm nữa.
EA này chơi vui thôi, không đủ tốt để dùng đâu vì nó chỉ kiểm tra điều kiện Buy. Ngay cả điều kiện Sell đi nữa thì code của nó cũng không đủ tốt để xử lý các tình huống lỗi của thị trường.
Vâng, cảm ơn bác đã giúp đỡ !! Ý e là như ban đầu thì khi đủ điều kiện thì nó chỉ vào duy nhất 1 lệnh, tới khi nào đóng lệnh đầu tiên đó thì nó mới xét điều kiện để vào lệnh tiếp theo, em muốn thay đổi là nó k cần phải đóng lệnh đầu tiên (lệnh trước đó) mà ở trạng thái đang có lệnh hoạt động thì nó vẫn xét đk để vào các lệnh tiếp theo được (vào lệnh liên tục khi đủ đk) mà k cần đợi cái lệnh ban đầu đóng lại đó ạ!!
 
Nhờ anh em tư vấn giúp xem mình làm đúng không nhé! Thanks!
Mình muốn làm 1 con EA đơn giản với các ĐK sau:
BUY:
open: EMA8 đi lên cắt EMA21
close: EMA8 đi xuống cắt EMA12 hoặc RSI>80
upload_2020-5-7_13-0-29.png

upload_2020-5-7_13-0-51.png

SELL:
open: EMA8 đi xuống cắt EMA21
close: EMA8 đi lên cắt EMA12 hoặc RSI>20
upload_2020-5-7_13-1-10.png

upload_2020-5-7_13-1-31.png

upload_2020-5-7_13-1-49.png

//+------------------------------------------------------------------+
// DO NOT DELETE THIS HEADER
// DELETING THIS HEADER IS COPYRIGHT INFRIGMENT
//
// Copyright ©2011, ForexEAdvisor.com
// ForexEAdvisor Strategy Builder version 0.2
// http://www.ForexEAdvisor.com
//
// THIS EA CODE HAS BEEN GENERATED USING FOREXEADVISOR STRATEGY BUILDER 0.2
// on: 5/7/2020 7:49:07 AM
// Disclaimer: This EA is provided to you "AS-IS", and ForexEAdvisor disclaims any warranty
// or liability obligations to you of any kind.
// UNDER NO CIRCUMSTANCES WILL FOREXEADVISOR BE LIABLE TO YOU, OR ANY OTHER PERSON OR ENTITY,
// FOR ANY LOSS OF USE, REVENUE OR PROFIT, LOST OR DAMAGED DATA, OR OTHER COMMERCIAL OR
// ECONOMIC LOSS OR FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, STATUTORY, PUNITIVE,
// EXEMPLARY OR CONSEQUENTIAL DAMAGES WHATSOEVER RELATED TO YOUR USE OF THIS EA OR
// FOREXEADVISOR STRATEGY BUILDER
// Because software is inherently complex and may not be completely free of errors, you are
// advised to verify this EA. Before using this EA, please read the ForexEAdvisor Strategy Builder
// license for a complete understanding of ForexEAdvisor' disclaimers.
// USE THIS EA AT YOUR OWN RISK.
//
// Before adding this expert advisor to a chart, make sure there are NO
// open positions.
// DO NOT DELETE THIS HEADER
// DELETING THIS HEADER IS COPYRIGHT INFRIGMENT
//+------------------------------------------------------------------+
extern int MagicNumber=80808;
extern double Lots =0.01;
extern double StopLoss=20;
extern double TakeProfit=40;
extern int TrailingStop=30;
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((iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,1)>iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1))&&(iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,2)>iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,2))) // Here is your open buy rule
{
result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",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((iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,1)<iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1))&&(iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,2)<iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,2))) // Here is your open Sell rule
{
result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",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((iMA(NULL,0,8,1,MODE_EMA,PRICE_CLOSE,0)<iMA(NULL,0,12,1,MODE_EMA,PRICE_CLOSE,0))||(iRSI(NULL,0,14,PRICE_CLOSE,0)>80)) //here is your close buy rule
{
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red);
}
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((iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,1)>iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,1))||(iRSI(NULL,0,14,PRICE_CLOSE,0)<20)) // here is your close sell rule
{
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red);
}
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);
}
 

Đính kèm

  • upload_2020-5-7_12-34-14.png
    upload_2020-5-7_12-34-14.png
    25.6 KB · Xem: 2
  • upload_2020-5-7_12-34-46.png
    upload_2020-5-7_12-34-46.png
    39 KB · Xem: 2
  • upload_2020-5-7_12-36-46.png
    upload_2020-5-7_12-36-46.png
    25.5 KB · Xem: 2
  • upload_2020-5-7_12-37-13.png
    upload_2020-5-7_12-37-13.png
    38.6 KB · Xem: 3
Các bác cho e hỏi ngu phát là e muốn tạo 1 con,nhưng chỉ báo tín hiệu xác nhận về thôi,tức là thay cho việc mình canh lệnh ý ạ có được không???
 
Bác AD cho em hỏi làm sao mình có thể khống chế mở 1 lệnh trên 1 cặp tiền khi vị thế nó đang chạy! Em cảm ơn ạ!
 
Chào anh Huy và các cao nhân coder!
Em loay hoay mãi không biết viết con bot thế nào. Đọc hướng dẫn rồi mà em vẫn không biết viết sao cho đúng ý.

Em muốn viết con bot:
- Vào lệnh Buy/Sell căn cứ vào nến 1 giờ của nến trước. (Ví dụ: nến 1 giờ của là xu hướng tăng thì em vào lệnh Buy ở phút thứ 1 của nến tiếp theo. Tương tự cho Sell.).
- Mỗi lần vào lệnh là 0.1 lots ạ.

Lots:
Stop Loss:
Take Profit:
[TBODY] [/TBODY]

Rất mong các cao nhân giúp đỡ ạ.
Em cám ơn rất nhiều.
 
Chào anh Huy và các cao nhân coder!
Em loay hoay mãi không biết viết con bot thế nào. Đọc hướng dẫn rồi mà em vẫn không biết viết sao cho đúng ý.

Em muốn viết con bot:
- Vào lệnh Buy/Sell căn cứ vào nến 1 giờ của nến trước. (Ví dụ: nến 1 giờ của là xu hướng tăng thì em vào lệnh Buy ở phút thứ 1 của nến tiếp theo. Tương tự cho Sell.).
- Mỗi lần vào lệnh là 0.1 lots ạ. Stop loss: 30; Take Profit: 80

Em cám ơn các bác rất nhiều!
 
bạn chỉ việc thay đổi magic thì con ea của bạn là một con mới . vidu hiện tại bạn đang cho ea chạy trên eu và đang có lệnh với cặp eu. bạn thấy tín hiệu đã thoả trên cặp Gu thì bạn kéo Ea vào chart Gu và đòng thời thay đổi số magic . bạn muốn cho robot canh cả 7 cặp thì cho chạy cả 7 chart và mỗi lần như thế bạn thay đỗi magic ko trùng nhau trong 7 cặp là dc
cho em hỏi tý thay đôi magic ơ muc nào vây
 

BÌNH LUẬN MỚI NHẤT

  • Mạc An trong Phân tích Forex - Vàng - Hàng hóa 1,117 Xem / 72 Trả lời
  • Quíc Óp trong Phân tích Forex - Vàng - Hàng hóa 248 Xem / 14 Trả lời
  • DuongHuy trong Phân tích Forex - Vàng - Hàng hóa 270 Xem / 22 Trả lời
  • AdBlock Detected

    We get it, advertisements are annoying!

    Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features of our website. For the best site experience please disable your AdBlocker.

    Back
    Bên trên