Chào các bác,
Như đã hứa, hôm nay em chia sẻ chút ít kinh nghiệm sử dụng PTKT của mình với mở đầu là hàm ZigZag. Cái này em sử dụng đầu tiền trong AMIBroker, tuy nhiên nếu bác nào sử dụng Metastock cũng có thể tham khảo vì chúng gần như giống nhau
Ban đầu, hàm Zig được sử dụng với những thông số mặc định. Nhìn vào đó hầu như ko khai thác được tí thông tin nào cả.
Tuy nhiên, ta sẽ sửa đổi một vài đoạn mã, để nó cho ta vài thông tin nữa. Ta đã biết các ngưỡng kháng cự và hỗ trợ Fibonnaci rất quan trọng, do vậy sẽ thêm việc hiển thị các giá trị kháng cự và hỗ trợ Fibonacci vào.
Thêm vào đó, nếu bác nào để ý, các con số Fibo rất có ý nghĩa ( 5, 8, 13, 21,...) Nếu bác nào đọc quyển sách của Pesavento ông ta nói đại ý rằng: Nếu các chỉ số Fibonnaci 0.618; 1.618; 2.618 kết hợp với số cây nến 8, 13, 21 thì khả năng đảo chiều xảy ra khá lớn. Do vậy ta sẽ đếm số cây nến giữa 2 đỉnh (như hình trên)
============================
1. Đầu tiên xác định một vài tham số cho hàm ZigZag. Khi cần có thể thay đổi tham số bằng cách ấn Ctrl+R
Mã:
//===================================================================
// Tu dinh nghia mot vai tham so, co the thay doi khi an Ctrl+R
//===================================================================
Periods = ParamList("Number of Bars", "5|7|9|11|13|15|17|19", 1);
PerLookBack = Param("Number of Display", 9, 1, 15,1); // So ngay hien thi Fibonacci lui` lai. ke? tu` ngay hien tai.
ShowRet = ParamToggle("Show Retracement values", "No|Yes",1); // Dinh nghia bien so' dang True/False
Price = ParamList("Price to follow:", "Close|High-Low", 1); // Dinh nghia bien dang List
2. Nếu chọn giá Close thì hình Zig sẽ cho 1 đường vẽ. Nếu chọn High+Close sẽ vẽ ra 1 đường khác, do vậy ta có thể chọn trung bình
Mã:
if(Price=="Close")
ZigP = Zig(C, per); // tinh gia tri be nhat' phan tram zigzag thay doi cua mang C
else
if(Price=="High-Low")
{
pk=PeakBars(H,Per)==0; // cho biet so luong cay nen qua Per di?nh
tr=TroughBars(L,Per)==0; // cho biet so luong cay nen' qua Per cho^~ ho~m
}
4. Vẽ đường giá trị và đường Zig để thấy những thay đổi
Mã:
Plot(C, "", IIf(O>=C, colorWhite, colorWhite), ParamStyle("Price Style",styleCandle,maskPrice));
Plot(ZigP, "Zig", colorLightBlue, styleThick);
5. Cho hiển thị giá trị Fibonnaci gần đúng giữa các đỉnh
Mã:
function get_real_value(nV) //function lay' gia tri hien thi gan dung tren duong ve
{
/* Pesavento numbers: 0.146-0.236-0.382-0.447-0.5-0.618-0.707-0.786-0.841-0.886-1. 0-1.128-1.272-1.414-1.5-1.618-1.732-1.902-2.0
-2.236-2.414-2.618-3.14-3.618-4.0
*/
table[0]=0.382; table[1]=0.500; table[2]=0.618; table[3]=0.707; table[4]=0.786;
table[5]=0.886; table[6]=1.000; table[7]=1.130; table[8]=1.272; table[9]=1.500;
table[10]=1.618; table[11]=1.732; table[12]=1.902; table[13]=2.000; table[14]=2.240;
table[15]=2.414; table[16]=2.618; table[17]=3.140; table[18]=3.618; table[19]=4.000;
err=0.1;
for(i=0;i<20;i++){
if(nV>=table[i]-err && nV<=table[i]+err){
nV=table[i];
break;
}
}
return (nV);
}
6. Kết quả được hình như thế này
7 File có thể
download tại đây
Chú ý: File Zig này được em tìm kiếm trên mạng, sau đó modi-phê theo ý của mình. Các bác có thể download và sửa theo ý của mỗi người. Tuy nhiên nên giữ truyền thống chia sẻ để mọi người có nhiều kinh nghiệm hơn