MTF trơn tru cho tín hiệu muabán sớm hơn
Results 1 to 8 of 8

Thread: MTF trơn tru cho tín hiệu muabán sớm hơn

  1. #1
    1 tập tin đính kèm Hi Guys

    Bạn có biết làm thế nào để thay đổi mã này để có được MTF MACD indior này để vẽ mượt mà hơn không?

    Hãy nói rằng indior được sử dụng trên M1 để vẽ M5 M5 (sử dụng cài đặt mặc định là 12, 26, 9), sau đó, indior sẽ tham chiếu mỗi giá đóng được sử dụng trong phép tính 5 lần cho đến khi chuyển sang giá trị đóng tiếp theo (sẽ là sử dụng lại 5 lần). Do đó, bạn nhận được MTF MACD đang tự bước lên cao hơn hoặc thấp hơn.

    Làm thế nào điều này có thể được thay đổi để trong nhà tại bất kỳ thời điểm nào tham chiếu giá đóng cửa tiếp theo trên khung thời gian chính?
    Trường hợp:
    Chúng tôi đang ở trên M1 với chỉ số MTF được đặt thành 5 (TF cao hơn tiếp theo). Bây giờ để có được giá trị MACD mượt mà hơn, tôi sẽ sử dụng shift0 hiện tại và giá đóng cửa tại shift5, shift10, 15, 20, 25, v.v.
    Nếu trên M5 và MTF MACD được đặt thành M15, thì bên dưới nên tham chiếu mức giá hiện tại0 và giá đóng của shift3, shift6, 9, v.v.

    Tôi hình dung rằng lợi ích là giá trị MACD của khung thời gian cao hơn đang được cập nhật mỗi khi khung thời gian thấp hơn vẽ một thanh mới. Tất nhiên, nó sẽ không rút ra giá trị TF TF cao hơn chính xác như thể một MACD được vẽ trên TF cao hơn đó. Nhưng nó sẽ cung cấp cho một đường chéo không sớm hơn và tín hiệu thương mại sớm hơn.

    Tôi đã chọn MTF MACD tại đây: [url = http:/codebase.mql4.com/5660].

    Mã được dán bên dưới. Bạn có thể giúp tôi được không? Một số mã trong hàm start phải được thay đổi để đạt được mục tiêu của tôi.

    Chúc mừng
    Tomas

    _______
    // ----------------------------------------------- -------------------
    //| MTF MACD.mq4 |
    // ----------------------------------------------- -------------------
    #property bản quyền mqlservice.co.uk
    #property liên kết http://mqlservice.co.uk/

    #property indior_separate_window
    #property indior_buffers 2
    #property indior_color1 Xám
    #property indior_color2 Đỏ
    //---- tham số đầu vào
    extern int TimeFrame = 0;
    extern int Fastema = 12;
    extern int Slowema = 26;
    tín hiệu int extern = 9;
    extern int Ứng dụngprice = 0;
    extern int Shift = 0;

    chuỗi extern note0 = Giá áp dụng 0 - ĐÓNG | 1-MỞ | 2-CAO | 3-THẤP |;
    chuỗi extern note1 = | 4-MEDIAN | 5-LOẠI | 6-TRỌNG LƯỢNG |;
    chuỗi extern note2 = Khung thời gian 0 = khung thời gian hiện tại;
    chuỗi ngoài ex3 = 1 = M1, 5 = M5, 15 = M15, 30 = M30;
    chuỗi extern note4 = 60 = H1, 240 = H4, 1440 = D1;
    chuỗi extern note5 = 10080 = W1, 43200 = MN1;
    //---- bộ đệm
    đôi MainBuffer [];
    đôi SignalBuffer [];

    // ----------------------------------------------- -------------------
    //| Chức năng khởi tạo trong nhà tùy chỉnh |
    // ----------------------------------------------- -------------------
    int init ()
    {
    int draw_begin = MathMax (Fastema, Slowema);
    chuỗi short_name = Giá MTF của MTF;
    //---- trong nhà
    Set IndexStyle (0, DRAW_HISTOGRAM, 0,2);
    Set IndexBuffer (0, MainBuffer);
    Set IndexStyle (1, DRAW_LINE);
    Set IndexBuffer (1, SignalBuffer);
    In (MTF MACD.mq4, Ver. # 2);
    In (Bản quyền © 2009/05/26 Dịch vụ MQL Vương quốc Anh http://mqlservice.co.uk/);
    chuyển đổi (áp dụng bảng giá) {
    trường hợp 1: short_name = short_name | MỞ ; phá vỡ;
    trường hợp 2: short_name = short_name | CAO ; phá vỡ;
    trường hợp 3: short_name = short_name | THẤP; phá vỡ;
    trường hợp 4: short_name = short_name | TRUNG TÂM; phá vỡ;
    trường hợp 5: short_name = short_name | ĐIỂN HÌNH ; phá vỡ;
    trường hợp 6: short_name = short_name | TRỌNG LƯỢNG; phá vỡ;
    mặc định :
    Áp dụngGiá = GIÁE_CLOSE; short_name = short_name | GẦN ; phá vỡ;
    }
    if (TimeFramelt; period ()) TimeFrame = period ();
    chuỗi TFName =;
    chuyển đổi (Khung thời gian)
    {
    trường hợp 1: TFName = M1; phá vỡ;
    trường hợp 5: TFName = M5; phá vỡ;
    trường hợp 15: TFName = M15; phá vỡ;
    trường hợp 30: TFName = M30; phá vỡ;
    trường hợp 60: TFName = H1; phá vỡ;
    trường hợp 240: TFName = H4; phá vỡ;
    trường hợp 1440: TFName = D1; phá vỡ;
    trường hợp 10080: TFName = W1; phá vỡ;
    trường hợp 43200: TFName = MN1; phá vỡ;
    mặc định: TFName = Biểu đồ; Khung thời gian = Thời gian (); phá vỡ;
    }

    short_name = StringConenate (short_name, (TF TFName , Fastema , Slowema , Tín hiệu ));
    IndiorShortName (short_name);
    Set IndexDrawBegin (0, draw_begin);
    Set IndexDrawBegin (1, draw_begin);
    Set IndexLabel (0, Chính);
    Set IndexLabel (1, Tín hiệu);
    IndiorDigits (6);
    trả về (0);
    }
    // ----------------------------------------------- -------------------
    //| Chức năng khử khử trong nhà tùy chỉnh |
    // ----------------------------------------------- -------------------
    int deinit ()
    {
    //----

    //----
    trả về (0);
    }
    // ----------------------------------------------- -------------------
    //| Chức năng lặp trong nhà tùy chỉnh |
    // ----------------------------------------------- -------------------
    int start ()
    {
    giới hạn int, iChart, iTF, delta = 0;
    datetime TimeArray [];
    if (TimeFramegt; period ()) delta = MathCeil (TimeFrameperiod ());
    int Count_bars = IndiorCounted ();
    //---- kiểm tra các lỗi có thể xảy ra
    if (tính_barslt; 0) return (-1);
    //---- thanh được tính cuối cùng sẽ được kể lại
    if (Count_barsgt; 0) Count_bars--;
    giới hạn = Bars-Count_bars delta;

    ArrayCopySeries (TimeArray, MODE_TIME, Symbol (), TimeFrame);

    iTF = 0;
    cho (Biểu đồ = 0; iChart; giới hạn; iChart)
    {
    trong khi (Thời gian [iChart] lt; TimeArray [iTF]) iTF ;
    MainBuffer [iChart] = EMPTY_VALUE;
    SignalBuffer [iChart] = EMPTY_VALUE;
    MainBuffer [iChart] = iMACD (Biểu tượng (), Khung thời gian, Fastema, Slowema, Tín hiệu, Ứng dụng price, MODE_MAIN, iTF Shift);
    SignalBuffer [iChart] = iMACD (Biểu tượng (), Khung thời gian, Fastema, Slowema, Tín hiệu, Ứng dụng price, MODE_SIGNAL, iTF Shift);
    }
    trả về (0);
    }

    // ----------------------------------------------- -------------------

    https://www.forexibroker.com/attachm...1556900020.mq4

  2. #2
    Làm cách nào để tôi thu thập và tham chiếu một mảng giá trong đó mảng được xác định từ LowerTimeFramePresentTimeFrame = TFfactor và # of period in MACD? Mảng cho FastPeriod (trong trường hợp này là FastPeriod = 12) là: Shift0 và 11 tiết với TFfactor giữa mỗi giá trị (nếu PresentTimeFrame = M5 và LowerTimeFrame = M15 thì mảng được tham chiếu trong khoảng thời gian nhanh là Shift0, 3, 6, 9 , 12, 15, 18, 21, 24, 27, 30, 33 trên M5). Và nguyên tắc tương tự cũng xảy ra với mảng SlowPeriod.

  3. #3
    1 Tài liệu đính kèm Hãy nghĩ rằng điều này đi theo hướng nào đó bạn muốn (không còn thời gian nữa). Có thể cần điều chỉnh? (Không thử trong thời gian thực). HTH
    https://www.forexibroker.com/attachm...0849415505.mq4

  4. #4
    Quote Originally Posted by ;
    Hãy nghĩ rằng điều này đi theo một cách nào đó hướng tới những gì bạn muốn (không còn thời gian nữa). Có thể cần điều chỉnh? (Không thử trong thời gian thực). HTH
    Cảm ơn - Tôi sẽ kiểm tra nó, nghiên cứu mã và quay lại với Bạn

  5. #5
    2 tập tin đính kèm
    Quote Originally Posted by ;
    Hãy nghĩ rằng điều này đi theo một cách nào đó hướng tới những gì bạn muốn (không còn thời gian nữa). Có thể cần điều chỉnh? (Không thử trong thời gian thực). HTH
    Xin chào Futurespec Có bận, nhưng bây giờ tôi đã thử nó. So sánh M1​​M5 có vẻ hứa hẹn vì phiên bản của bạn thực sự dẫn đầu. Ở đây, biểu đồ đi qua bên dưới zeroline ở 0317, trong đó MTF khác (một chỉ số thông thường) vượt qua zeroline ở 0320 - 3 lần cắt sau. Tuy nhiên, có vẻ như indior chỉ thực hiện việc làm mịn vì nó được gắn vào biểu đồ, không chạy trong thời gian thực. So sánh M5H1 cho thấy một vấn đề khác. Có vẻ như nó không giữ giá trị khung thời gian cao hơn (trên khung thời gian thấp hơn) cho đến 1 khoảng thời gian trước khi chuyển sang giá trị toàn bộ giờ tiếp theo. Một chỉ số MACD thông thường trên biểu đồ H1 và MFT MACD khác tham chiếu H1 có giá trị MACD là 0,000009 tại thời điểm 1400. Nhưng mnMTF MACD không có được giá trị này cho đến năm 1455 - vì vậy ở đây nó bị trễ. Điều tương tự cũng diễn ra trong 1500 giờ so với 1555 và 1600 giờ so với 1655 giá trị. Có đúng là phiên bản của bạn làm mịn các giá trị bằng cách lấy trung bình các giá trị của khung thời gian cao hơn không? Đây là những gì tôi đang hướng tới - Trong trường hợp tham chiếu 5MH1: Bạn có thể xác định một cách toán học một mảng giá đóng cửa 12 giờ cho giá trị FastPeriod và 26 giờ cho giá trị SlowPeriod không? Vì vậy, tại thời điểm 05 giờ qua, nó tham chiếu giá đóng cửa ở xx05 12 giờ trở lại và xx05 26 giờ trở lại ... và vào lúc 10 phút trước giờ tham chiếu tất cả các giá trị của xx10 trong 12 và 26 giờ qua. Cảm ơn đã giúp đỡ. Không thể đảm bảo rằng ý tưởng này có giá trị trong khi, nhưng tôi nghĩ rằng Bạn sẽ có được sự kết hợp ổn định của tham chiếu khung thời gian cao hơn và kích hoạt giao dịch trước đó.
    https://www.forexibroker.com/crypto-...fic-price.html
    https://www.forexibroker.com/forex-m...red-green.html

  6. #6

    Quote Originally Posted by ;
    Đây là những gì tôi đang hướng tới - Trong trường hợp tham chiếu 5MH1: Bạn có thể xác định một cách toán học một mảng giá đóng cửa 12 giờ cho giá trị FastPeriod và 26 giờ cho giá trị SlowPeriod không? Vì vậy, tại thời điểm 05 giờ qua, nó tham chiếu giá đóng cửa ở xx05 12 giờ trở lại và xx05 26 giờ trở lại ... và vào lúc 10 phút trước giờ tham chiếu tất cả các giá trị của xx10 trong 12 và 26 giờ qua.
    MT4 có cái gì đó tương đương với toán tử mô đun trong C không? Tôi đã được thông báo rằng toán tử mô đun trong C là tuyệt vời để bỏ qua các giá trị không cần thiết. Tham khảo:
    http://www.cprogramming.com/tutorial/modulus.htmlCÓ, thực sự nó làm! Tôi đã tìm kiếm mql4.com và phát hiện ra rằng chức năng tương tự tồn tại. Vì vậy, nếu delta = TimeFrameperiod () thì chúng ta có thể kiểm tra điều kiện: if (bar% delta == 0) Tất cả các thanh sẽ trả về đúng với điều kiện này nên được đưa vào mảng MTF mới được sử dụng để tính toán MACD. Nếu khung thời gian của biểu đồ là M5 và khung thời gian tham chiếu cao hơn là H1, thì delta = 60/5 = 12 if (bar% delta == 0) sau đó sẽ trả về các thanh ở ca 0, 12, 24, 36, 48, v.v. chỉ những số này sẽ trả về một số nguyên khi chia cho 12 (delta). Bất kỳ thanh nào khác (ví dụ: thanh 37) sẽ trả về một số thập phân khi chia cho 12. Theo cách này, các thanh nên được sử dụng để tính toán MTF MACD có thể dễ dàng được đặt trong một chuỗi thanh riêng biệt, có thể được sử dụng cho bất kỳ giai đoạn nào Chỉ số. Bây giờ câu hỏi là: Nó có thể được mã hóa, và ai có thể làm điều này trong MT4?

  7. #7
    MathMod (giá trị kép, giá trị kép2) thực hiện tương tự trong MT4. Để mã hóa nó ... không phải là vấn đề nhưng xin lỗi tôi hiện tại không có thời gian.

  8. #8
    Cảm ơn rất nhiều vì sự giúp đỡ của bạn cho đến nay!

Quyền đăng bài

  • Bạn không thể đăng bài viết mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng tệp đính kèm
  • Bạn không thể chỉnh sửa bài đăng của bạn
  •  
Chính sách Cookie
Chính sách Cookie: Website forexibroker sử dụng cookies và khi tiếp tục sử dụng website bạn chấp thuận với điều này. Để có thêm thông tin, vui lòng đọc 'Thông tin Cookie'.