Xin trợ giúp về code Amibroker

Discussion in 'Amibroker, Metatrader, MetaStock, TradeStation &' started by dungkhdt, Nov 5, 2015.

  1. dungkhdt

    dungkhdt New Member

    Joined:
    Nov 5, 2015
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    1
    Tôi là người mới nghiên cứu Ami, sau khi mày mò nhưng chưa viết được code để search ra các mã chứng khoán có phân kỳ Stochastic. Nhờ anh em giúp đoạn code như hình vẽ đối với 02 trường hợp đóng khung đỏ nhé.

    Tks.
     

    Attached Files:

  2. dghuynhtu

    dghuynhtu Moderator

    Joined:
    Oct 31, 2011
    Messages:
    3,726
    Likes Received:
    1,308
    Trophy Points:
    113
    Bác thử mấy cái này xem sao, e k dùng stochastic để trade nên k thử. Chúc may mắn!

    /*Positive Stochastic Divergence for use in
    Indicator Builder and Automatic Analysis (scan mode),
    by Dimitris Tsokakis*/

    ST33=STOCHD(14);
    TR1=LLVBARS(ST33,4);
    TR2=IIF(ST33<30 AND TR1>0 AND REF(TR1,-1)==0,ref(ST33,-1),0);
    TRC=IIF(TR2>0,C,0);
    vs=valuewhen(tr2, ref(st33,-1), 1);
    dvs=vs-ref(vs,-1);
    vc=valuewhen(trc, LLV(c,3), 1);
    dvc=vc-ref(vc,-1);
    diver=iif(dvs>0 and dvc<0,30,0);
    DAS=BARSSINCE(REF(TR2,-1)>0);
    DD=IIF(DAS<20 AND C>=REF(C,-1),DIVER,0);
    GRAPH0=TR2;
    GRAPH0STYLE=2;
    graph0barcolor=12;
    graph1=dd;
    graph1barcolor=5;
    BUY=DD>0 ;


    /*Negative Stochastic divergence for use in
    Indicator Builder and Automatic Analysis (scan mode),
    by Dimitris Tsokakis*/

    ST33=stochd(14);
    TR1=HHVBARS(ST33,4);
    TR2=IIF(ST33>70 AND TR1>0 AND REF(TR1,-1)==0,ref(ST33,-1),0);
    TRC=IIF(TR2>0,C,0);
    vs=valuewhen(tr2, ref(st33,-1), 1);
    dvs=vs-ref(vs,-1);
    vc=valuewhen(trc, HHV(H,3), 1);
    dvc=vc-ref(vc,-1);
    diver=iif(dvs<0 and dvc>0,90,0);
    DAS=BARSSINCE(REF(TR2,-1)>0);
    ddd=IIF(DAS<20 AND C<REF(C,-1),DIVER,0);
    GRAPH1=TR2;
    graph0=ddd;
    graph0barcolor=4;
    GRAPH1STYLE=2;
    graph1barcolor=1;
    SELL=ddd==90;


    _SECTION_BEGIN( "Stochastic" );

    periods = Param( "Periods", 14, 1, 200, 1 );
    Ksmooth = Param( "%K avg", 3, 1, 200, 1 );
    Dsmooth = Param( "%D avg", 3, 1, 200, 1 );
    myStochD =StochD( periods , Ksmooth, DSmooth );
    myStochK =StochK( periods , Ksmooth);
    Overbought = 80 ;
    Oversold =20 ;
    Center = 50 ;

    Buy1 = Cross(myStochK, Oversold ) ;
    Buy2 = Cross(myStochK, Center ) ;
    Sell1 = Cross( Overbought, myStochK );
    Sell2 = Cross( Center, myStochK );


    Plot( myStochD, "Stochastic %D"+_PARAM_VALUES( ), ParamColor( "ColorD", colorRed ), ParamStyle(" StyleD") );
    Plot( myStochK, "Stochastic %K", ParamColor( "ColorK", colorBlue ), ParamStyle(" StyleK") );

    PlotShapes(IIf( Sell1, shapeDownArrow , shapeNone), colorRed,0, Offset=Null) ;
    PlotShapes(IIf( Sell2, shapeDownArrow , shapeNone), colorRed,0, Offset=Null) ;
    PlotShapes(IIf( Buy1 , shapeUpArrow , shapeNone), colorGold,0, Offset=Null) ;
    PlotShapes(IIf( Buy2 , shapeUpArrow , shapeNone), colorGold,0, Offset=Null) ;

    Plot(Overbought, "",colorRed) ;
    Plot(Oversold, "",colorGreen) ;
    Plot(Center, "",colorWhite, styleDashed) ;

    y0=LastValue( Trough(StochD( periods , Ksmooth, DSmooth ),1,2));
    y1=LastValue( Trough(StochD( periods , Ksmooth, DSmooth ),1,1));
    x0=BarCount - 1 - LastValue(TroughBars(StochD( periods , Ksmooth, DSmooth ),1,2));
    price_start= Close[x0] ;
    x1=BarCount - 1 - LastValue(TroughBars(StochD( periods , Ksmooth, DSmooth ),1,1));
    price_end=Close[ x1];
    Line = LineArray( x0, y0, x1, y1, 0 );
    Plot( Line, "Support line", colorYellow );
    Buy = y1>y0 AND price_end<price_start;
    PlotShapes(shapeUpArrow * Buy, colorGreen,0, Line);

    y00=LastValue( Peak(StochD( periods , Ksmooth, DSmooth ),1,2));
    y11=LastValue( Peak(StochD( periods , Ksmooth, DSmooth ),1,1));
    x00=BarCount - 1 - LastValue(PeakBars( StochD(periods , Ksmooth, DSmooth ),1,2));
    price_start1= Close[x00] ;
    x11=BarCount - 1 - LastValue(PeakBars( StochD(periods , Ksmooth, DSmooth ),1,1));
    price_end1=Close[ x11];
    Line = LineArray( x00, y00, x11, y11, 0 );
    Plot( Line, "Resistance line", colorBrightGreen );
    Sell = y11<y00 AND price_end1>price_start1;
    PlotShapes(shapeDownArrow * Sell, colorOrange,0,Line) ;


    PlotOHLC( myStochK,myStochK, 50,myStochK, "", colorDarkGrey, styleCloud | styleClipMinMax, Oversold , Overbought);
    PlotOHLC( myStochD,myStochD, 50,myStochD, "", colorDarkRed, styleCloud | styleClipMinMax, Oversold , Overbought);


    //Optimize

    range = Optimize( "Range", 8, 8, 14, 1 );
    Ksmooth = Optimize("%K smooth", 3, 2, 5, 1 );
    Dsmooth = Optimize("%D smooth", 3, 2, 5, 1 );
    Buy=Cross( StochK (range,Ksmooth) , StochD (range,Ksmooth, Dsmooth) );
    Sell = Cross( StochD(range, Ksmooth,Dsmooth) , StochK(range, Ksmooth) );


    _SECTION_END( );




    /*Positive Stochastic Divergence for use in
    Indicator Builder and Automatic Analysis (scan mode)*/

    ST33=StochD(14);
    TR1=LLVBars(ST33,4);
    TR2=IIf(ST33<30 AND TR1>0 AND Ref(TR1,-1)==0,Ref(ST33,-1),0);
    TRC=IIf(TR2>0,C,0);
    vs=ValueWhen(tr2, Ref(st33,-1), 1);
    dvs=vs-Ref(vs,-1);
    vc=ValueWhen(trc, LLV(C,3), 1);
    dvc=vc-Ref(vc,-1);
    diver=IIf(dvs>0 AND dvc<0,30,0);
    DAS=BarsSince(Ref(TR2,-1)>0);
    DD=IIf(DAS<20 AND C>=Ref(C,-1),DIVER,0);
    Graph0=TR2;
    Graph0Style=2;
    Graph0BarColor=12;
    Graph1=dd;
    Graph1BarColor=5;
    Buy=DD>0 ;
     
    locke likes this.
  3. dungkhdt

    dungkhdt New Member

    Joined:
    Nov 5, 2015
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    1
    Tks bác nhiều, e code thử.
     
  4. NPT

    NPT Member

    Joined:
    May 19, 2015
    Messages:
    11
    Likes Received:
    27
    Trophy Points:
    13
    @dghuynhtu : Mod có afl code chỉ số RS của O'Neil không, cho mình xin với. Thanks !!!:113:
     
  5. phieudu

    phieudu New Member

    Joined:
    Oct 29, 2018
    Messages:
    5
    Likes Received:
    1
    Trophy Points:
    3
    Mình cũng mới tìm hiểu code amibroker . MÌnh muốn vẽ 1 đường thẳng đi qua giá đóng cửa của phiên trên đồ thị . Khi mình nháy chuột vào cây nến nào đó bất kì thì đường thẳng tương ứng với nến đó xuất hiện thì code thế nào vậy mọi người ? mình loay hoay mãi mà code ko được , Thanks
     
  6. ranluc

    ranluc Active Member

    Joined:
    Mar 27, 2018
    Messages:
    25
    Likes Received:
    166
    Trophy Points:
    28
    Đường thẳng thì phải đi qua ít nhất 2 điểm. Bạn hỏi đường thẳng đi qua 1 giá đóng cửa của 1 phiên nên không hiểu là đường gì. Nếu ý là đường thẳng đứng thì không cần code, click đơn vào phiên nào thì Ami vẽ đường thẳng đứng màu trắng của phiên đó, click đôi thì vẽ đường thẳng đứng màu xanh hay màu đỏ.
    Nếu ý là đường ngang hay đường nghiêng thì code Ami không có khả năng tương tác đó, chỉ có khả năng hiển thị.
     
    phieudu, bokhoktx and TTN like this.
  7. R-trader

    R-trader Well-Known Member

    Joined:
    Feb 12, 2018
    Messages:
    884
    Likes Received:
    3,483
    Trophy Points:
    93
    Tui không có học code của Ami nên không biết như thế nào, nếu Ami không vẽ được một cái horizon bởi một cái click chuột thì kém nhỉ. Vởi MetaTrader điều này cực kỳ dễ. Khi click chuột lên một cái nến bất kỳ nghĩa là đã làm phát sinh một sự kiện, nó sẽ thu thập O, H, L, C của nến rồi vẽ một Horizon đi qua 2 điểm có giá trị C chẳng hạn…. Lâu rồi không có ngó đến code, nếu có gì sai cứ xem tui chém gió đi :1cool_byebye:
     
    Last edited: Nov 1, 2018
    Bắn Chim, phieudu and bokhoktx like this.
  8. chim_non

    chim_non Moderator

    Joined:
    Nov 1, 2011
    Messages:
    24,497
    Likes Received:
    119,666
    Trophy Points:
    113
    Cái này default AB đã có rồi, việc gì phải code hả thầy Táo :21:
     
    phieudu, Bắn Chim and bokhoktx like this.
  9. chim_non

    chim_non Moderator

    Joined:
    Nov 1, 2011
    Messages:
    24,497
    Likes Received:
    119,666
    Trophy Points:
    113
    Vào menu Insert rồi chọn. Nếu nhìn kỹ thì có Insert tool bar , chọn nút vẽ đường ngang dọc tùy thích.
     
    Bắn Chim and bokhoktx like this.
  10. R-trader

    R-trader Well-Known Member

    Joined:
    Feb 12, 2018
    Messages:
    884
    Likes Received:
    3,483
    Trophy Points:
    93
    Cái của thầy thì thủ công rồi, ai chả biết. Cái người ta muốn là automatic và sự chính xác kia. Mục đích có thể sâu xa hơn là dùng giá trị horizon đấy đề làm tham số cho những dòng code kế tiếp. :15:
     
    Last edited: Nov 1, 2018
  11. chim_non

    chim_non Moderator

    Joined:
    Nov 1, 2011
    Messages:
    24,497
    Likes Received:
    119,666
    Trophy Points:
    113
    Cái này là stick to price, bấm vào cái nút nam châm đó, nó dính vào H L luôn.
     
  12. R-trader

    R-trader Well-Known Member

    Joined:
    Feb 12, 2018
    Messages:
    884
    Likes Received:
    3,483
    Trophy Points:
    93
    Thầy không sai, nhưng khi cần vẻ nhiều đường cùng một lúc như phân tích Gann' cycle, cần vẻ 10 đường horizon, 10 đường vertical cách đều nhau với cái mốc là giá đóng cửa của một cái nến, cái chart nào cũng vẽ như thế thì có mà vẽ điên luôn. Trong khi xài code chi cần một cái click chuột. Các platform đều có sẵn một số Gann tool nhưng không đáp ứng cho mục đích cá nhân.
     
    Last edited: Nov 1, 2018
    phieudu, Bắn Chim, davidh and 2 others like this.
  13. chim_non

    chim_non Moderator

    Joined:
    Nov 1, 2011
    Messages:
    24,497
    Likes Received:
    119,666
    Trophy Points:
    113
    Úi, thế này thì phức tạp quá. Em chịu he he. Chart của em đơn giản lắm.
     
    Bắn Chim, davidh, wjo and 1 other person like this.
  14. R-trader

    R-trader Well-Known Member

    Joined:
    Feb 12, 2018
    Messages:
    884
    Likes Received:
    3,483
    Trophy Points:
    93
    Phương pháp của thầy qua tay của coder càng đơn giản hơn. Những người đ.ụng đến code là những người đã sử dụng thành thạo những công cụ có sẳn của platform nhưng không hài lòng với cái hiện có. Example nhé, giả sử muốn xem chart của cổ phiếu nào hôm nay có phân kỳ MACD, coder chỉ cần vài cái click chuột sẽ lọc ra ngay những cổ phiếu có phân kỳ, người không xài code phải xem từng cái chart trong cả ngàn cái chart.
     
    phieudu, Bắn Chim and chim_non like this.
  15. TuanMinh

    TuanMinh Well-Known Member

    Joined:
    Mar 11, 2014
    Messages:
    3,558
    Likes Received:
    14,780
    Trophy Points:
    113
    A đang nói em đó à =))).
     
    Bắn Chim likes this.
  16. phieudu

    phieudu New Member

    Joined:
    Oct 29, 2018
    Messages:
    5
    Likes Received:
    1
    Trophy Points:
    3
    thanks bạn Cái mình muốn nó hiển thị đc luôn trên hình chính là đường nằm ngang đó bạn . đường thẳng AB đi qua 2 điểm thì mình có thể giả dụ điểm A là điểm ở 40 phiên đã qua, điểm B là điểm tại phiên cây nến mà ta đang trỏ vào đó
     
    Bắn Chim likes this.
  17. phieudu

    phieudu New Member

    Joined:
    Oct 29, 2018
    Messages:
    5
    Likes Received:
    1
    Trophy Points:
    3
    vẽ đường nằm nghiêng trong ami có giới thiệu rồi , đó là đường tren line mình thấy cũng hay lắm nhưng chưa hiểu ý nghĩa các dòng code mà người ta có thể vẽ đc như vậy có bạn nào biết ko chỉ mình luôn với y0=LastValue(Trough(L,5,2));
    y1=LastValue(Trough(L,5,1));
    x0=BarCount - 1 - LastValue(TroughBars(L,5,2));
    x1=BarCount - 1 - LastValue(TroughBars(L,5,1));
    Line = LineArray( x0, y0, x1, y1, 1 ); Plot(C, "C", colorWhite, styleCandle); Plot( Line, "Trend line", colorBlue );
     
  18. ranluc

    ranluc Active Member

    Joined:
    Mar 27, 2018
    Messages:
    25
    Likes Received:
    166
    Trophy Points:
    28
    Bạn thử đoạn này:

    X = 0;
    Y = SelectedValue( C );
    Plot( LineArray(0,y, 1,y, 1), "", coloryellow, styleNoRescale );
     
    phieudu likes this.
  19. phieudu

    phieudu New Member

    Joined:
    Oct 29, 2018
    Messages:
    5
    Likes Received:
    1
    Trophy Points:
    3
    thanks bạn nhé đoạn code được rồi, Bạn cho mình hỏi nếu mình chỉ muốn nó kẻ đến vị trí đặt trỏ chuột tại cây nến mình chọn thôi có được không? Trong amibroker có hàm nào trả về giá trị Là số của "Bar" mà mình đang chọn cây nến đó không. Mình thấy ở thanh dưới cùng của đồ thị ami di chuột tới đâu thấy tọa độ của X: là số Bar đó và tọa độ của Y. Nhưng mình không biết cách sao để lấy ra số bar đó khi mình chọn 1 cây nến được.
    Mình cũng muốn hỏi thêm trên ami có hàm lấy tròn số hay lấy phần nguyên của phép chia không bạn nhỉ ?
    thanks
     
  20. ranluc

    ranluc Active Member

    Joined:
    Mar 27, 2018
    Messages:
    25
    Likes Received:
    166
    Trophy Points:
    28
    Các hàm của Ami có mô tả trong phần Help. Nên đọc qua một lần trong đời.
     
    phieudu likes this.

Share This Page

XenForo Add-ons by Brivium ™ © 2012-2013 Brivium LLC.