Từng bước Tạo và Code lệnh một EA trên Mt4

Từng bước Tạo và Code lệnh một EA trên Mt4

Từng bước Tạo và Code lệnh một EA trên Mt4
Mình muốn tạo bot đánh Binaryoption trên MT4. Mình nên bắt đầu từ đâu. Rất có hứng thú với lập trình mặc dù biết mỗi pascal (học hồi đại học). Đang đi tìm thầy, bạn nào có nhã hứng dạy không, mình ở hà nội.
 
Chào bạn. Mình đang học mql4, chủ yếu tự mày mò. Bạn cho mình hỏi chỗ đặt lệnh 1 lần trên 1 nến trong ea ví dụ trên.
//------- điều kiện đặt 01 lệnh trên 01 nến cho mỗi cặp------
int total = OrdersTotal();
for ( int pos = 0; pos <= total; pos++ )
{
if ( OrderSelect( pos, SELECT_BY_POS ) == true )
{
Bạn giải thích rõ hơn dùm mình mấy hàng code ở trên đc ko ạ. Là trên 1 nến tại thời điểm hiện tại. Khi nó khóp lệnh trong khoản thời gian giữa nến, rồi chạm stoploss hoăc TP mà nến đó vẫn chưa kết thúc, và điều kiện khớp lệnh vẫn còn thì nó ko khớp thêm lệnh nào nữa đúng ko ạ.
 
Cấu trúc lệnh đó quản lý được việc đặt 1 lệnh trên 1 nến nếu có tín hiệu. Trường hợp xảy ra TP hay SL trong cùng 1 nến, muốn quản lý thì bạn phải sử dụng thêm phần History closed ỏders (các lệnh đã đóng).
 
Mình hỏi các bạn MQL4 về vấn đề thuật toán như thế nào:
-Khi giá vượt lên trên đường BB trên thì vào lệnh sell; khi giá vượt xuống đường BB dưới thì vào buy;
-Mình có một đường thẳng chạy cùng đường giá, khi đường thẳng đang chạy chéo lên sau đó chạy nằm ngang thì vào lệnh sell; khi đường thẳng đang chạy chéo xuống sau đó chạy nằm ngang thì vào lệnh Buy.
Nhờ các cao nhân chỉ giáo
 
Mình hỏi các bạn MQL4 về vấn đề thuật toán như thế nào:
-Khi giá vượt lên trên đường BB trên thì vào lệnh sell; khi giá vượt xuống đường BB dưới thì vào buy;
-Mình có một đường thẳng chạy cùng đường giá, khi đường thẳng đang chạy chéo lên sau đó chạy nằm ngang thì vào lệnh sell; khi đường thẳng đang chạy chéo xuống sau đó chạy nằm ngang thì vào lệnh Buy.
Nhờ các cao nhân chỉ giáo
- Tình huống 1: Khi giá vượt lên trên đường BB trên thì vào lệnh sell; khi giá vượt xuống đường BB dưới thì vào buy. Bạn đang nhầm lẫn chiến thuật của BB rồi, có trường hợp giá vượt lên hoặc xuống BB vẫn đi tiếp không đổi chiều đó là breakout có tin biến động
- Tình huống 2: Mình có một đường thẳng chạy cùng đường giá, khi đường thẳng đang chạy chéo lên sau đó chạy nằm ngang thì vào lệnh sell; khi đường thẳng đang chạy chéo xuống sau đó chạy nằm ngang thì vào lệnh Buy. Đường bạn nói có thể MA3 hoặc MA5 nhưng chạy ngang vào lệnh là sao mình không hiểu. Điểm giao giữa các đường MABB là điểm vào lệnh mà
 
- Tình huống 1: Khi giá vượt lên trên đường BB trên thì vào lệnh sell; khi giá vượt xuống đường BB dưới thì vào buy. Bạn đang nhầm lẫn chiến thuật của BB rồi, có trường hợp giá vượt lên hoặc xuống BB vẫn đi tiếp không đổi chiều đó là breakout có tin biến động
- Tình huống 2: Mình có một đường thẳng chạy cùng đường giá, khi đường thẳng đang chạy chéo lên sau đó chạy nằm ngang thì vào lệnh sell; khi đường thẳng đang chạy chéo xuống sau đó chạy nằm ngang thì vào lệnh Buy. Đường bạn nói có thể MA3 hoặc MA5 nhưng chạy ngang vào lệnh là sao mình không hiểu. Điểm giao giữa các đường MA và BB là điểm vào lệnh mà
Cám ơn bạn. Mình chỉ hỏi các vấn đề trên của mình , không hỏi ý kiến khác nên bác nào có thuật toán hay chỉ bảo mình đúng các nội dung trên nhé.
Note: chạy ngang nghĩa là nằm ngang ấy, đang nói ở đây là đường thẳng không phải đường cong
 
Cám ơn bạn. Mình chỉ hỏi các vấn đề trên của mình , không hỏi ý kiến khác nên bác nào có thuật toán hay chỉ bảo mình đúng các nội dung trên nhé.
Note: chạy ngang nghĩa là nằm ngang ấy, đang nói ở đây là đường thẳng không phải đường cong
không hiểu bác up hình lên đi
 
Cấu trúc lệnh đó quản lý được việc đặt 1 lệnh trên 1 nến nếu có tín hiệu. Trường hợp xảy ra TP hay SL trong cùng 1 nến, muốn quản lý thì bạn phải sử dụng thêm phần History closed ỏders (các lệnh đã đóng).
Bác có thể code giúp em 1 đoạn mã chỉ vào 1 lần lệnh trên 1 nến được ko ạ. Em đang mò đến khúc này mà bí. Tìm cách cài biến lưu thời gian tại thời điểm đặt lệnh trong 1 nến rồi so sánh với thời gian hiện tại lớn hơn để nó không khớp lệnh nữa. Bác nào code được giúp e với ạ
 
Cám ơn bạn. Mình chỉ hỏi các vấn đề trên của mình , không hỏi ý kiến khác nên bác nào có thuật toán hay chỉ bảo mình đúng các nội dung trên nhé.
Note: chạy ngang nghĩa là nằm ngang ấy, đang nói ở đây là đường thẳng không phải đường cong
Bạn mới vào nghề, nghề này đòi hỏi phải kiên nhẫn luôn tìm tòi học hỏi. Bạn đang đi sai đường khi lý thuyết chưa vững không nên sang học lập trình và đi xin khi không ai cho không thứ gì 1 cách thiếu tế nhị
 
Bác có thể code giúp em 1 đoạn mã chỉ vào 1 lần lệnh trên 1 nến được ko ạ. Em đang mò đến khúc này mà bí. Tìm cách cài biến lưu thời gian tại thời điểm đặt lệnh trong 1 nến rồi so sánh với thời gian hiện tại lớn hơn để nó không khớp lệnh nữa. Bác nào code được giúp e với ạ
Dùng volume của cây nến hiện tại (Volume[0] ) nếu volume giảm ( trở về 0) là bắt đấu một cây nến mới. Dùng giá mở hay đóng cửa vẫn có trường hợp trùng nhau.
 
Dùng volume của cây nến hiện tại (Volume[0] ) nếu volume giảm ( trở về 0) là bắt đấu một cây nến mới. Dùng giá mở hay đóng cửa vẫn có trường hợp trùng nhau.
Cám ơn ý kiến của bác, nhưng trong trường hợp này khi volum[0] =0 thì điều kiên khớp lệnh vẫn chưa tới bác ạ. Em thử đặt volume[0] < 5 rồi thì khi bắt đầu 1 nến mới điều kiện khớp lệnh của em vẫn chưa biến dổi nên nó ko bao giờ khớp đc. Bác nào biết lệnh dùng để quản lí history closed order để đặt hàm điều kiện nếu trong nến đó đã tồn tại 1 lệnh thì ko khớp nữa không ạ. Nhờ các bác cao thủ giúp dùm. Có thể gặp trực tiếp để code giúp e sẽ mời cafe và hậu tạ thêm. Em ở tp hcm ạ.
 
Cái đó để nhận diện nến mới thôi, còn muốn đọc lịch sử thì chọn trong OrderSelect có MODE_HISTORY đấy, chỉ cần thử nghiệm là biết ngay mà, tự tìm được mới nhớ lâu. Chúc bạn thành công
 
Thật ra bạn ko cần xem lịch sử làm gì cho phức tạp

bool open_order ;
void OnTick()
{
If( xuất hiện nến mới) open_order = true;
...
...
If( điều kiện của bạn && open_order == true)
{
OrderSend(......);
open_order = false;
}
}
 
Xin nhờ các bác cho em xin code hiện thông báo khi có nến(1) thỏa mãn điều kiện giống trong hình được không ạ?

-Nến có tóc <=3 point và khoảng cách giá đóng nến đến EMA10 >100point

và trường hợp nến có chân <=3 point và giá đóng cách EMA >100 point
 

Đính kèm

  • 2.png
    2.png
    79.4 KB · Xem: 5
  • 4.png
    4.png
    78.6 KB · Xem: 4
Em mò được 1 đoạn code này,có phải là bật alert khi giá < đường EMA 1 khoảng thì thông báo phải không các bác?

//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars = IndicatorCounted();
//---- check for possible errors
if(counted_bars < 0)
return(-1);
//---- last counted bar will be recounted
if(counted_bars > 0)
counted_bars--;
limit = Bars - counted_bars;
//----

string MA;


for(int i = 0; i < limit; i++)
{
ema_value= iMA(NULL,0,ma_period,ma_shift,ma_mode,ma_price,i);

if(ma_mode==0){MA=" SMA";}
if(ma_mode==1){MA=" EMA";}
if(ma_mode==2){MA="SMMA";}
if(ma_mode==3){MA="LWMA";}
//----
ExtMapBuffer1 = ema_value-Ask ;
if(MathAbs(ema_value-Bid)<=pip_distance*Point&& lastimealert!= Time[0] )
{

if(Box_Alert) Alert(Symbol()," M",Period()," Price is within ",pip_distance," pips of ",ma_period," Period "+MA+"");
if(Sound_Alert) PlaySound(Sound_File);
if(Email_Alert) SendMail("Price Alert on "+Symbol()+" M"+Period(),Symbol()+" M"+Period()+" Price is within "+pip_distance+" pips of "+ma_period+" Period "+MA+"");
if(Push_Alert) SendNotification("Price Alert on "+Symbol()+" M"+Period()+" "+Symbol()+" M"+Period()+" Price is within "+pip_distance+" pips of "+ma_period+" Period "+MA+"");
lastimealert= Time[0];
}

}
//----
return(0);
}


Giờ em muốn thêm alert khi giá > EMA 1 khoảng(pip_distance*Point) thì thêm vào như nào?

bác nào rảnh đi qua giúp em với :(
 
Chào các bác, mình đang cần 1 EA có thể tự cắt lệnh đang mở khi 2 đường EMA cắt nhau, cứ có chuông báo 2 đường EMA trên cắt nhau là EA cắt hết lệnh đang mở.
Ai có con EA này chia sẻ cho mình với. Rất cám ơn ak!
asv1-uphinhnhanh-com_images_2018_08_17_1aec22-png.55019
 
Trên mấy sàn crypto có kiểu tự động đặt lệnh trên lệnh của mình vài shatosi. Ai biết làm bot kiểu đấy ko.
 
mấy bác cho mình hỏi : mình dùng hàm gì để biết được giá trị RSI hay Stoch của những cây nến trước. nếu đc cho mình luôn cái dòng code để mình tham khảo .
Cám ơn các bác trước
 
mấy bác cho mình hỏi : mình dùng hàm gì để biết được giá trị RSI hay Stoch của những cây nến trước. nếu đc cho mình luôn cái dòng code để mình tham khảo .
Cám ơn các bác trước

int shift = 1;
double rsi = iRSI(_Symbol,PERIOD_CURRENT,14,PRICE_CLOSE,shift);

shift = 0 ( lay rsi hien tai )
shift = 1 ( lay rsi cay nen truoc do )
 
int shift = 1;
double rsi = iRSI(_Symbol,PERIOD_CURRENT,14,PRICE_CLOSE,shift);

shift = 0 ( lay rsi hien tai )
shift = 1 ( lay rsi cay nen truoc do )
Cám ơn bác nhiều ạ ! nãy giờ đang e đang mày mò hàm icustom lồng rsi quài không ra, thì ra còn có shift nữa.
CÁM ƠN BÁC :):)
 

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

  • Mạc An trong Phân tích Forex - Vàng - Hàng hóa 989 Xem / 63 Trả lời
  • DuongHuy trong Phân tích Forex - Vàng - Hàng hóa 261 Xem / 20 Trả lời
  • ngoi_sao_co_doc trong Phân tích Forex - Vàng - Hàng hóa 23,971 Xem / 82 Trả lời
  • Quíc Óp trong Phân tích Forex - Vàng - Hàng hóa 153 Xem / 3 Trả lời
  • Berkeley trong Phân tích Forex - Vàng - Hàng hóa 94 Xem / 2 Trả lời
  • LuTienSinh trong Phân tích Forex - Vàng - Hàng hóa 109 Xem / 3 Trả lời
  • DuongHuy trong Phân tích Forex - Vàng - Hàng hóa 231 Xem / 9 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