Bài 10: Hàm MT4 lấy ra chỉ báo MACD và vào lệnh

Để vào lệnh dựa trên tín hiệu của chỉ báo MACD (Moving Average Convergence Divergence) trên MT4, bạn có thể thực hiện các bước sau:

  1. Mở biểu đồ cho cặp tiền tệ bạn quan tâm trên MT4.
  2. Thêm chỉ báo MACD vào biểu đồ:
    • Nhấp chuột phải vào biểu đồ, chọn “Chỉ báo” (hoặc nhấn phím Insert trên bàn phím).
    • Chọn “Oscillators” và sau đó chọn “MACD”.
    • Trong cửa sổ thiết lập, có thể bạn muốn điều chỉnh các tham số như giai đoạn EMA và màu sắc theo ý muốn.
  3. Đánh giá tín hiệu của MACD:
    • Khi đường MACD cắt qua đường trung bình (đường tích lũy) từ dưới lên, điều này có thể được xem là tín hiệu mua.
    • Khi đường MACD cắt qua đường trung bình từ trên xuống, điều này có thể được xem là tín hiệu bán.
  4. Thực hiện lệnh dựa trên tín hiệu của MACD:
    • Để mua: Nếu đường MACD cắt qua đường trung bình từ dưới lên, bạn có thể mở lệnh mua.
    • Để bán: Nếu đường MACD cắt qua đường trung bình từ trên xuống, bạn có thể mở lệnh bán.
  5. Đặt các điều kiện dừng lỗ và mục tiêu lợi nhuận phù hợp cho lệnh của bạn.

Bài 10: Hàm MT4 lấy ra chỉ báo MACD và vào lệnh

Dưới đây là cách khai báo và hàm mt4 để lấy ra tính hiệu Stochatis theo thông số cài đặt trên bot và vào lệnh

Khai báo Input

input double MACDOpenLevel =3;
input double MACDCloseLevel=2;
input int    MATrendPeriod =26;

Đặt Hàm dưới trong phần Ontick()

void OnTick(void)
  {
   
   double MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
   double MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
   double SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
   double SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
   
      if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious && 
         MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious)
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"macd sample",12368,0,Green);
        }
      if(MacdCurrent>0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious && 
         MacdCurrent>(MACDOpenLevel*Point) && MaCurrent<MaPrevious)
        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"macd sample",12368,0,Red);
        }
     
     }

Trong đoạn mã trên, bạn đang sử dụng chỉ báo MACD để tạo tín hiệu giao dịch. Dưới đây là mô tả chi tiết về nó:

  1. Tính toán chỉ báo MACD:
    • double MacdCurrent = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0);: Tính toán giá trị của đường chính (MAIN) của chỉ báo MACD cho cây nến hiện tại.
    • double MacdPrevious = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1);: Tính toán giá trị của đường chính (MAIN) của chỉ báo MACD cho cây nến trước đó.
    • double SignalCurrent = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 0);: Tính toán giá trị của đường tín hiệu (SIGNAL) của chỉ báo MACD cho cây nến hiện tại.
    • double SignalPrevious = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 1);: Tính toán giá trị của đường tín hiệu (SIGNAL) của chỉ báo MACD cho cây nến trước đó.
  2. Kiểm tra tín hiệu giao dịch:
    • if(MacdCurrent < 0 && MacdCurrent > SignalCurrent && MacdPrevious < SignalPrevious && MathAbs(MacdCurrent) > (MACDOpenLevel * Point) && MaCurrent > MaPrevious): Điều kiện mua. Bạn kiểm tra xem giá trị MACD hiện tại là âm, lớn hơn giá trị đường tín hiệu, nhỏ hơn giá trị MACD của nến trước đó và lớn hơn ngưỡng MACDOpenLevel. Bạn cũng kiểm tra xem giá trị trung bình động (MA) hiện tại lớn hơn giá trị MA của nến trước đó.
    • if(MacdCurrent > 0 && MacdCurrent < SignalCurrent && MacdPrevious > SignalPrevious && MacdCurrent > (MACDOpenLevel * Point) && MaCurrent < MaPrevious): Điều kiện bán. Tương tự như trên, nhưng bạn kiểm tra tín hiệu bán.
  3. Mở lệnh:
    • ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, Ask + TakeProfit * Point, "macd sample", 16384, 0, Green);: Mở lệnh mua với kích thước lô là Lots và giá mua (Ask), và mục đích lợi nhuận là TakeProfit pips trên giá mua.
    • ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, Bid - TakeProfit * Point, "macd sample", 16384, 0, Red);: Mở lệnh bán với kích thước lô là Lots và giá bán (Bid), và mục đích lợi nhuận là TakeProfit pips dưới giá bán.

Lưu ý rằng trong thực tế, bạn cần kiểm tra kỹ lưỡng các điều kiện giao dịch và xác định các thông số lệnh phù hợp với chiến lược giao dịch của bạn trước khi sử dụng mã này trong môi trường giao dịch thực tế.

[block_content id="3041"]

Leave a Reply

Your email address will not be published. Required fields are marked *