Amibroker Backtester

giailang

Well-Known Member
Thread này dành riêng giới thiệu về công cụ thử nghiệm các chiến thuật giao dịch bằng Amibroker. Phiên bản được bàn ở đây bắt đầu từ thế hệ 5.6 trở đi, do vậy nhiều phần không có trong các phiên bản trước.
 
Thread này dành riêng giới thiệu về công cụ thử nghiệm các chiến thuật giao dịch bằng Amibroker. Phiên bản được bàn ở đây bắt đầu từ thế hệ 5.6 trở đi, do vậy nhiều phần không có trong các phiên bản trước.
Có bác nào chỉ giúp em cái lệnh scan CP theo 1 tiêu chí nào đó nó nằm ở góc nào với. Ngày xưa em nhớ nó "loanh quanh" chỗ "cái búa" hay "cái đũa " trên thanh toolbar của ami, ma giờ em thử không thấy nó ăn nhập vào đâu cả.
Em dùng Ami 5.6.

Xin cảm ơn các bác trước.

Chúc moi người cuối tuần thư giãn dzui dzẻ sang tuần đánh thắng. :1:
 
Có bác nào chỉ giúp em cái lệnh scan CP theo 1 tiêu chí nào đó nó nằm ở góc nào với. Ngày xưa em nhớ nó "loanh quanh" chỗ "cái búa" hay "cái đũa " trên thanh toolbar của ami, ma giờ em thử không thấy nó ăn nhập vào đâu cả.
Em dùng Ami 5.6.

Xin cảm ơn các bác trước.

Chúc moi người cuối tuần thư giãn dzui dzẻ sang tuần đánh thắng. :1:
bác tham khảo link này :)

https://www.amibroker.com/guide/h_exploration.html ver 5.6
https://www.amibroker.com/guide/w_analysis.html for old anaslysis
 
Hình cái dấu chấm than trên thanh công cụ đó bác. Nếu bác bị ẩn thì lôi nó ra
Thanks phohuyen83!
Tôi đã "lôi" nó ra nhưng đó là cửa sổ cũ "Old window analis", nó không dùng được nữa bác ah, mà thay vào đó là sử dụng cửa sổ "New analis" hình cái chữ V có hai màu đỏ & xanh lá cây ngay bên cạnh cái cặp kính trên thanh tool bar bác ah.

Cám ơn "chỉ điểm" của bác nhé. Good luck & good trade. :1:
 
Thread này dành riêng giới thiệu về công cụ thử nghiệm các chiến thuật giao dịch bằng Amibroker. Phiên bản được bàn ở đây bắt đầu từ thế hệ 5.6 trở đi, do vậy nhiều phần không có trong các phiên bản trước.
Hóng anh..
 
@Chán: Tiện đây hỏi thăm cụ Chán và các cụ giỏi Ami 1 tí về coding cái Mc Clellan Summation Index:
Cái hàm Cum() nó sum ngược từ ngày hiện tại về quá khứ à, tùy theo số ngày hiện trên cửa sổ (visible bars)? Em thấy cứ zoom in và out là cái trị số của MSI nó lại thay đổi dù hình dạng không thay đổi, vẫn có thể đọc tín hiệu được nhưng nó cứ kỳ kỳ thế nào ý :102:
Nếu dùng SetBarsRequired( sbrAll ) để tính tất cả các bars từ khai thiên lập địa thì MSI nó lại thành 1 đường thẳng băng nên phải tạm bỏ nó đi :102: hay em đã sai ở chỗ nào chăng ?
AFL hiện thời của em như sau:
_SECTION_BEGIN("McClellan Summation Index");
SetChartOptions(0,chartShowArrows|chartShowDates);
smatang = Foreign("~UpBars","C");
smagiam = Foreign("~DnBars","C");
Hratio = (smatang -smagiam )/(smatang +smagiam )*1000;
//SetBarsRequired( sbrAll );
Hratio1 = Cum(EMA(Hratio,19)-EMA(Hratio,39));
McClellansum = Hratio1;
Plot( McClellansum,"McClellan summation =",colorGreen );
_SECTION_END();​

Thanks các cụ.
 
@Chán: Tiện đây hỏi thăm cụ Chán và các cụ giỏi Ami 1 tí về coding cái Mc Clellan Summation Index:
Cái hàm Cum() nó sum ngược từ ngày hiện tại về quá khứ à, tùy theo số ngày hiện trên cửa sổ (visible bars)? Em thấy cứ zoom in và out là cái trị số của MSI nó lại thay đổi dù hình dạng không thay đổi, vẫn có thể đọc tín hiệu được nhưng nó cứ kỳ kỳ thế nào ý :102:
Nếu dùng SetBarsRequired( sbrAll ) để tính tất cả các bars từ khai thiên lập địa thì MSI nó lại thành 1 đường thẳng băng nên phải tạm bỏ nó đi :102: hay em đã sai ở chỗ nào chăng ?
AFL hiện thời của em như sau:
_SECTION_BEGIN("McClellan Summation Index");
SetChartOptions(0,chartShowArrows|chartShowDates);
smatang = Foreign("~UpBars","C");
smagiam = Foreign("~DnBars","C");
Hratio = (smatang -smagiam )/(smatang +smagiam )*1000;
//SetBarsRequired( sbrAll );
Hratio1 = Cum(EMA(Hratio,19)-EMA(Hratio,39));
McClellansum = Hratio1;
Plot( McClellansum,"McClellan summation =",colorGreen );
_SECTION_END();​

Thanks các cụ.
- Code Amibroker thì em chịu thua, em copy code của anh giailang và Loadmaster bên Vfpress. Tuy nhiên, cách tổ chức và xây dựng chỉ số của em có sự khác biệt rất lớn, dựa trên việc giải quyết các khuyết tật của công thức. Một số phản biện đáng chú ý, cụ @chim_non có nhã hứng thì lướt qua cuốn Technical analysis explained - Martin J.Pring, Chapter 24 - Breadth.
 
@MorningStar, @Chán: Thanks 2 cụ, cái phần guide của Ami thì em xem nát rồi, chỉ hơi ngạc nhiên khi hàm Cum nó lại chạy thế thôi dẫn đến value thay đổi theo visible bars mà chưa có cách khắc phục, nhìn hơi ngứa mắt 1 tí :). Em đọc chart cũng không cầu kỳ cầy tơ nhiều lắm, dùng mấy cái cơ bản là chính. Chẳng qua cái Index của mình tính củ chuối nên đôi lúc phải lọ mọ thêm góc nhìn để đỡ bị lừa tình.
Chỉ 1 câu hỏi nhỏ thôi: Các cụ có bị lỗi Cum() thế không, có fix được không?
 
@MorningStar, @Chán: Thanks 2 cụ, cái phần guide của Ami thì em xem nát rồi, chỉ hơi ngạc nhiên khi hàm Cum nó lại chạy thế thôi dẫn đến value thay đổi theo visible bars mà chưa có cách khắc phục, nhìn hơi ngứa mắt 1 tí :). Em đọc chart cũng không cầu kỳ cầy tơ nhiều lắm, dùng mấy cái cơ bản là chính. Chẳng qua cái Index của mình tính củ chuối nên đôi lúc phải lọ mọ thêm góc nhìn để đỡ bị lừa tình.
Chỉ 1 câu hỏi nhỏ thôi: Các cụ có bị lỗi Cum() thế không, có fix được không?
được, trên phần tham khảo công thức người ta nói rồi đó cụ
zoom to nhỏ okia, chả đổi giá chị giá em gì đâu ...
code cụ sửa lại thứ tự xíu là okie thôi :)
_SECTION_BEGIN("McClellan Summation Index");
SetChartOptions(0,chartShowArrows|chartShowDates);
SetBarsRequired( sbrAll );
smatang = Foreign("~UpBars","C");
smagiam = Foreign("~DnBars","C");
Hratio = (smatang -smagiam )/(smatang +smagiam )*1000;
Hratio1 = Cum(EMA(Hratio,19)-EMA(Hratio,39));
McClellansum = Hratio1;
Plot( McClellansum,"McClellan summation =",colorGreen );
_SECTION_END();
đây là tranh của em, giá trị không đổi theo zoom size
View attachment 4546 View attachment 4547

PS: cái MSI này em đánh giá không cao, lag như MACD :21: nên em không dùng nhé
cụ chán cẩn thận kẻo đứt tay. cái vụ cụ pm hỏi về việc liệt kê coi CP vốn hóa lớn tăng = CP có vốn hóa nhỏ, không đếm xỉa Vol, là nhược điểm rất lớn của McClellan Osc... em đã có cách fix :), tuy nhiên vẫn đang back test chưa púp líc được :)


He he, chỉ là cách đặt tên biến số (variables) khi lập trình thôi cụ ơi. Đặt tên biến số là smatang thay cho advissues thì có gì là lạ đâu. Tỉ lệ nhân 1000 là do muốn số nó to cho dễ vẽ thay vì số nhỏ quá mấy số sau dấu phẩy thôi :)

Ơ, thế công thức của em sai à, em đã soi kỹ với hướng dẫn của bác Load rồi mà nhỉ. Chết thật :)
Anyway, thanks cụ.
Sent from my iPad using Tapatalk
cái hình em pọt là em dùng công thức em gửi cụ đấy :21:

cụ thik đặt tên gì tùy cụ, em không care... :71:

nếu sửa lại theo cách đặt của cụ sẽ là
McClellan Summation Index
Graph0 = Cum( Ema( smatang - smagiam , 19 ) - Ema( smatang - smagiam ,39 ) );

sai đúng tùy cụ ... chart nó hiện lên, zoom thoải con gà mái :71:
sửa lại coi có lọt vào mắt kụ không nhóe ??? ;)

_SECTION_BEGIN("McClellan Summation Index");
SetChartOptions(0,chartShowArrows|chartShowDates);
SetBarsRequired( sbrAll );
smatang = Foreign("~UpBars","C");
smagiam = Foreign("~DnBars","C");
Hratio = smatang - smagiam ;//(smatang -smagiam )/(smatang +smagiam )*1000;
Hratio1 = Cum(EMA(Hratio,19)-EMA(Hratio,39));
McClellansum = Hratio1;
Plot( McClellansum,"McClellan summation =",colorGreen );
_SECTION_END();

McClellan hoàn toàn loại bỏ các cp C=O nhé, CP big caps Small cap Mid cap, micro cap có vai trò như nhau trong thống kê + - = là 1 việc hết sức sai lầm
 
Last edited:
@MorningStar: khi vocj em đã thử dùng như cụ nói rồi, khi thêm câu lệnh set all bars required thì giá trị ko đổi theo zoom nhưng nó lại chỉ vẽ 1 đường thẳng dốc xuống chứ không ngoằn ngoèo, thế mới lạ. Vậy nên em mới phải tạm bỏ câu lệnh ấy ra và hỏi các cụ :(

Chẳng nhẽ lại tại data?

Sent from my iPad using Tapatalk
 
Last edited:
He he, chỉ là cách đặt tên biến số (variables) khi lập trình thôi cụ ơi. Đặt tên biến số là smatang thay cho advissues thì có gì là lạ đâu. Tỉ lệ nhân 1000 là do muốn số nó to cho dễ vẽ thay vì số nhỏ quá mấy số sau dấu phẩy thôi :)

Ơ, thế công thức của em sai à, em đã soi kỹ với hướng dẫn của bác Load rồi mà nhỉ. Chết thật :)
Anyway, thanks cụ.


Sent from my iPad using Tapatalk
 
Last edited:
PS: cái MSI này em đánh giá không cao, lag như MACD :21: nên em không dùng nhé
Giá trị hữu dụng của một Indicator có độ Lag cao thường dùng với một mục đích ko được nhiều người ưa chuộng. Thks cụ Mor nhắc nhở, xém tí nữa là quên bén đi chức năng của em nó :1:
Ps: Cái Topic lại loãng quá rồi các cụ ơi...Move hoặc Stop thôi nhỉ ? :)
 
hix, cho em hỏi tí, cái chỉ báo McClellan nó là gì vậy ? có phải là một dạng chỉ báo động lượng giống như RSI, MACD không vậy ? nghe mọi người bàn mà em chỉ biết gì
 
Back
Top