Xin trợ giúp về code Amibroker

dungkhdt

New Member
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.
 

Attachments

  • Chart_phanky.png
    Chart_phanky.png
    31 KB · Views: 64
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 ;
 
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
 
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
Đườ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ị.
 
Đườ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ị.
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:
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ẽ làm 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:
Cái này default AB đã có rồi, việc gì phải code hả thầy Táo :21:
 
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
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.
 
Cái này default AB đã có rồi, việc gì phải code hả thầy Táo :21:
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.
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:
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.
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:
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.
Úi, thế này thì phức tạp quá. Em chịu he he. Chart của em đơn giản lắm.
 
Úi, thế này thì phức tạp quá. Em chịu he he. Chart của em đơn giản lắm.
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.
 
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.
A đang nói em đó à =))).
 
Đườ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ị.
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 đó
 
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 );
 
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 thử đoạn này:

X = 0;
Y = SelectedValue( C );
Plot( LineArray(0,y, 1,y, 1), "", coloryellow, styleNoRescale );
 
Bạn thử đoạn này:

X = 0;
Y = SelectedValue( C );
Plot( LineArray(0,y, 1,y, 1), "", coloryellow, styleNoRescale );
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
 
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
Các hàm của Ami có mô tả trong phần Help. Nên đọc qua một lần trong đời.
 
Back
Top