Xin hỏi cách lấy ngày đạt MAX

Discussion in 'Thảo luận chung' started by NgMinh, Oct 29, 2021.

Lượt xem : 1,846

  1. NgMinh

    NgMinh Member

    Joined:
    Oct 27, 2021
    Messages:
    6
    Likes Received:
    0
    Gender:
    Male
    Xin các bạn tư vấn cách tìm ngày đạt đỉnh ( tìm ngày tương ứng với giá trị hàm HHV...). thanks
    upload_2021-10-29_11-5-55.png
     
  2. Loading...


  3. Danielkhanhnguyen

    Danielkhanhnguyen Well-Known Member

    Joined:
    Sep 15, 2021
    Messages:
    133
    Likes Received:
    105
    Gender:
    Male
    Danielkhanhnguyen, via a mobile device, Oct 30, 2021
    #2
    NgMinh and Hungtqhp like this.
  4. NgMinh

    NgMinh Member

    Joined:
    Oct 27, 2021
    Messages:
    6
    Likes Received:
    0
    Gender:
    Male
    Cảm ơn bạn, đúng cái mình tìm. Mình tìm được ngày ứng với HHV nhưng còn lỗi sai ngày với LLV.
     
  5. NgMinh

    NgMinh Member

    Joined:
    Oct 27, 2021
    Messages:
    6
    Likes Received:
    0
    Gender:
    Male
    Ngày tương ứng HHV thì đúng nhưng ngày LLV thì không đúng mà chưa hiểu lý do tại sao.( ngày LLV có giá đóng cửa 87.2 là ngày 4/10 trong khi nó báo là 2/11).
    upload_2021-11-8_11-8-20.png
     
    Last edited: Nov 8, 2021
  6. Danielkhanhnguyen

    Danielkhanhnguyen Well-Known Member

    Joined:
    Sep 15, 2021
    Messages:
    133
    Likes Received:
    105
    Gender:
    Male
    periods = Param( "Period", 20, 5, 200, 5 );

    dt = DateTime();

    hh = HHV( H, periods );
    nwhh = hh > Ref( hh, -1 ); // Detect new points where hhv is different from previous one
    dthh = ValueWhen( nwhh, dt, 1 ); // Assign the date where the above condition was true

    ll = LLV( L, periods );
    nwll = ll < Ref( ll, -1 ); // Same logic as hh
    dtll = ValueWhen( nwll, dt, 1 );

    Filter = 1;
    AddColumn( H, "High", 1.2 );
    AddColumn( hh, "HHV", 1.2 );
    AddColumn( IIf( nwhh, 1, Null ), "New HHV", 1 );
    AddColumn( dthh, "DT last HHV", formatDateTime, -1, -1, 150 );

    AddColumn( L, "Low", 1.2 );
    AddColumn( ll, "LLV", 1.2 );
    AddColumn( IIf( nwll, 1, Null ), "New LLV", 1 );
    AddColumn( dtll, "DT last LLV", formatDateTime, -1, -1, 150 );

    SetSortColumns( -2 ); // see most recent dates at top

    LastHHVDate = LastValue( dthh );
    LastLLVDate = LastValue( dtll );
    _TRACE( "Last HHV date: " + DateTimeToStr( LastHHVdate ) );
    _TRACE( "Last LLV date: " + DateTimeToStr( LastLLVdate ) );
     
    Hungtqhp and NgMinh like this.
  7. NgMinh

    NgMinh Member

    Joined:
    Oct 27, 2021
    Messages:
    6
    Likes Received:
    0
    Gender:
    Male
    Mình dùng đoạn code này, nhưng ngày của LLV không đúng trong khi ngày của HHV thì ok, không hiểu làm sao.
     
  8. Danielkhanhnguyen

    Danielkhanhnguyen Well-Known Member

    Joined:
    Sep 15, 2021
    Messages:
    133
    Likes Received:
    105
    Gender:
    Male
    đoạn code mình post trên, mình đã chỉnh sửa ở 2 dòng từ code gốc của Pepe, bạn chạy lại thử xem có ra kết quả đúng không?
    nwhh = hh > Ref( hh, -1 ); // Detect new points where hhv is different from previous one

    nwll = ll < Ref( ll, -1 ); // Same logic as hh

    bạn đọc về hàm ValueWhen của Amibroker thì sẽ hiểu vì sao nó chạy ra không đúng, và chỉnh sửa code lại để phù hợp với mục đích của bạn là được.

    ref link: http://www.amibroker.com/kb/2014/09/29/debugging-techniques-part-1-exploration/
     
    Last edited: Nov 9, 2021
    Hungtqhp likes this.
  9. NgMinh

    NgMinh Member

    Joined:
    Oct 27, 2021
    Messages:
    6
    Likes Received:
    0
    Gender:
    Male
    Thực sự là kỳ bí. ngày HHV đúng còn LLV vẫn lệch nhiều. Bank thử gán periods=20 xem.

    upload_2021-11-10_16-35-29.png
     
  10. Hungtqhp

    Hungtqhp Well-Known Member

    Joined:
    Aug 17, 2021
    Messages:
    130
    Likes Received:
    43
    Gender:
    Male
    Cảm ơn bác.
     
  11. Danielkhanhnguyen

    Danielkhanhnguyen Well-Known Member

    Joined:
    Sep 15, 2021
    Messages:
    133
    Likes Received:
    105
    Gender:
    Male
    Uhm, để mình kiểm tra lại xem sao. Mà mục đích của bạn là code cho Indicator hay code cho Automatic Analysis
     
    Danielkhanhnguyen, via a mobile device, Nov 11, 2021
    #10
    Hungtqhp likes this.
  12. Danielkhanhnguyen

    Danielkhanhnguyen Well-Known Member

    Joined:
    Sep 15, 2021
    Messages:
    133
    Likes Received:
    105
    Gender:
    Male
    Có lẽ đây là đoạn code mà bạn cần.
    Enjoy it!

    function GetDateTimeHHVorLLV(periods, type)
    {
    dtll = dthh = dt = DateTime();
    switch(type){
    case "HHV":
    for(i = BarCount; i>= BarCount - periods; i--){
    hh = HHV(H, periods);
    nwhh = hh > Ref(hh, -1);
    dthh = ValueWhen( nwhh, dt, 1 );
    dt = dthh;
    }
    break;
    case "LLV":
    for(i = BarCount; i>= BarCount - periods; i--){
    ll = LLV(L, periods);
    nwll = ll < Ref(ll, -1);
    dtll = ValueWhen( nwll, dt, 1 );
    dt = dtll;
    }
    break;
    }

    return dt;
    }

    periods = Param("Periods", 20, 10, 100);

    hh = HHV( H, periods );
    nwhh = hh > Ref( hh, -1 ); // Detect new points where hhv is different from previous one
    //dthh = ValueWhen( nwhh, dt, 1 ); // Assign the date where the above condition was true

    ll = LLV( L, periods );
    nwll = ll < Ref( ll, -1 ); // Same logic as hh
    //dtll = ValueWhen( nwll, dt, 1 );

    dtHHV = GetDateTimeHHVorLLV(periods, "HHV");
    dtLLV = GetDateTimeHHVorLLV(periods, "LLV");

    Buy = Sell = Short = Cover = 0;

    Filter = 1;
    AddColumn( H, "High", 1.2 );
    AddColumn( hh, "HHV", 1.2 );
    AddColumn( IIf( nwhh, 1, Null ), "New HHV", 1 );
    AddColumn(dtHHV, "dt_HHV", formatDateTime, -1, -1, 150 );

    AddColumn( L, "Low", 1.2 );
    AddColumn( ll, "LLV", 1.2 );
    AddColumn( IIf( nwll, 1, Null ), "New LLV", 1 );
    AddColumn(dtLLV, "dt_LLV", formatDateTime, -1, -1, 150);

    SetSortColumns(-2);

    upload_2021-11-11_21-44-53.png
     
    Hungtqhp likes this.
  13. Danielkhanhnguyen

    Danielkhanhnguyen Well-Known Member

    Joined:
    Sep 15, 2021
    Messages:
    133
    Likes Received:
    105
    Gender:
    Male
    Ted Pham and Hungtqhp like this.

Lượt bình luận : 11

Share This Page