KenKem Journal

Từ một mẫu hình bạn nhìn thấy đến một quy tắc bạn kiểm chứng được: CBC Flip, từng bước một

· #rule-design #volume-profile #open-source #systematic-trading

"Phe mua vừa giành quyền kiểm soát." Mình đã tự nói câu đó hàng nghìn lần khi còn là trader giao dịch thủ công, và suốt nhiều năm câu đó chẳng có ích gì, vì mình không thể nói chính xác nó có nghĩa là gì.

Từ một mẫu hình bạn nhìn thấy đến một quy tắc bạn kiểm chứng được: CBC Flip, từng bước một: biểu đồ cho phần 3 của loạt bài Từ giao dịch cảm tính đến giao dịch hệ thống
Phần 3/15, Từ giao dịch cảm tính đến giao dịch hệ thống. Biểu đồ do mình tự vẽ, mang tính minh họa, không theo tỷ lệ.

Phần 3/15: Từ giao dịch cảm tính đến giao dịch hệ thống

Đó chính là khoảng trống mà chương này bàn đến. Một mẫu hình là thứ bạn nhìn thấy. Một quy tắc là thứ máy tính có thể kiểm tra mà không cần hỏi bạn cảm thấy thế nào. Mọi thứ mang tính hệ thống đều bắt đầu từ việc đi từ cái này sang cái kia, và phần lớn lợi thế cảm tính lặng lẽ biến mất đúng ở bước này. Đó là thông tin, không phải thất bại.

Mình sẽ đi qua từng bước với một ví dụ thật: CBC Flip - Volume Profile Context, một script mình đã công bố miễn phí và mã nguồn mở trên TradingView dưới hồ sơ của mình, kenkemdayfx. Đây là script được yêu thích nhất của mình, và vì code công khai nên mình có thể trình bày mọi input và mọi quyết định. Bộ máy xác định quyền kiểm soát là phương pháp Candle-By-Candle do maplestax phổ biến. Phần mình thêm vào là vị trí.

Bước 1: viết câu đó ra

Hãy bắt đầu với phiên bản bằng ngôn ngữ thường. "Khi phe mua giành quyền kiểm soát gần rìa vùng giá trị, đang có điều gì đó đáng chú ý xảy ra." Câu này mơ hồ, và như vậy cũng không sao. Việc cần làm bây giờ là loại bỏ từng từ mơ hồ, từng từ một.

Bước 2: định nghĩa "giành quyền kiểm soát"

Trong CBC, quyền kiểm soát đổi chủ khi nến đóng cửa, không phải khi giá chạm. Một cây nến đóng cửa trên đỉnh của cây nến trước trao quyền kiểm soát cho phe bò. Một cây nến đóng cửa dưới đáy của cây nến trước trao nó cho phe gấu. Nếu không điều nào xảy ra, bên nào đang giữ quyền kiểm soát thì vẫn giữ.

Dòng cuối cùng đó là phần thông minh. Đó là hiện tượng trễ (hysteresis): trạng thái bỏ qua những dao động lên xuống của từng cây nến riêng lẻ và chỉ thay đổi khi có một lần đóng cửa được xác nhận vượt khỏi biên độ trước đó.

Rồi đến các trường hợp biên, vì một quy tắc phần lớn là các trường hợp biên. Khi bật "strict breaks" (mặc định), giá đóng cửa phải vượt hẳn khỏi đỉnh hoặc đáy trước đó, và đóng cửa bằng đúng mức đó thì không tính. Khi bật "flip candle must close in the flip direction" (cũng là mặc định), một cú flip tăng cần một nến xanh và một cú flip giảm cần một nến đỏ, giúp lọc bỏ những lần đóng cửa về mặt kỹ thuật đã phá mức nhưng bản thân cây nến lại đang yếu đi. Một bộ lọc tùy chọn, mặc định tắt, có thể yêu cầu biên độ tối thiểu của nến flip tính bằng ATR.

Bước 3: chỉ dùng những gì có thể biết tại thời điểm đó

Một quy tắc nhìn vào thông tin từ tương lai thì không phải là quy tắc, mà là một sai lầm bạn chưa phát hiện ra. Vì vậy các cú flip chỉ được ghi nhận khi nến đã đóng cửa xác nhận. Nhãn một khi đã in ra thì không bao giờ bị dời đi hay xóa bỏ. Những cú phá vỡ tiếp diễn theo hướng đang nắm quyền kiểm soát thì không in gì cả.

Bước 4: định nghĩa "gần rìa vùng giá trị"

Bước này cần một volume profile, và profile cần được xây dựng chính xác. Script lấy một cửa sổ trượt, 100 nến local nhân với hệ số master là 3, tức 300 nến theo mặc định. Mỗi nến đã xác nhận đóng góp hlc3 của nó làm mẫu giá và volume của nó làm trọng số. Biên độ cao thấp của cửa sổ được chia thành 40 ô bằng nhau. Ô đầy nhất là point of control. Vùng giá trị mở rộng ra từ đó, luôn thêm ô lân cận nặng hơn, cho đến khi chứa 70 phần trăm volume, theo quy ước market profile.

Giờ vị trí đã là một định nghĩa, và các cú flip được chia thành các nhóm. BRK: một cú flip tăng đóng cửa trên mVAH, hoặc một cú flip giảm đóng cửa dưới mVAL. Quyền kiểm soát đổi chủ tại nơi giá đang được chấp nhận bên ngoài vùng giá trị. REV: một cú flip tăng từ phía mVAL, hoặc một cú flip giảm từ phía mVAH, hoạt động phản ứng đẩy giá quay về master point of control, được vẽ bằng một đường dẫn chấm chấm tới mPOC. Mọi thứ trong vùng chết giữa POC và rìa ở cùng phía đều bị ẩn theo mặc định, vì đó là nhiễu của thị trường cân bằng.

Bước 5: định nghĩa thế nào là "sai"

Một quy tắc không có điều kiện thất bại chỉ là một ý kiến. Khi phe bò đang giữ quyền kiểm soát, script vẽ một đường đứt nét tại đáy của cây nến đã trao quyền cho họ. Khi phe gấu đang giữ, đường đó nằm tại đỉnh của cây nến ấy. Một lần đóng cửa xác nhận vượt qua đường đó sẽ phá vỡ cấu trúc đã kích hoạt trạng thái.

Bước 6: loại bỏ nhiễu bạn đã biết

Có hai bộ lọc. Cùng một tín hiệu không bao giờ in hai lần liên tiếp, vì một BRK long thứ hai ngay sau cái đầu tiên chỉ là cùng một thông tin lặp lại. Và một cú breakout có giá đóng cửa đã vượt quá 10 phần trăm khoảng cách từ rìa đến POC ra ngoài rìa sẽ bị ẩn vì là đuổi giá quá muộn.

Bước 7: làm cho nó đếm được

Hai điều kiện cảnh báo, flip tăng và flip giảm, kích hoạt khi nến đóng cửa và chỉ cho những cú flip được hiển thị. Giờ mẫu hình tạo ra một danh sách các mốc thời gian. Một danh sách có thể đếm, tính chi phí và so sánh với sự ngẫu nhiên. Một cảm giác thì không.

Những giới hạn thẳng thắn

Profile có độ phân giải theo nến, không theo tick, nên thô hơn một profile dựng từ tick. Trên phần lớn các nguồn dữ liệu forex và CFD, bao gồm vàng, "volume" là tick volume, tức số lần cập nhật giá, không phải số hợp đồng đã khớp, và hai broker có thể cho kết quả khác nhau. Một cú flip chỉ được biết khi cây nến của nó đóng cửa, nên nó luôn in ra sau khi nhịp giá đã bắt đầu.

Và một bài học từ chính nghiên cứu của mình khiến mình bất ngờ. Bộ lọc chống đuổi giá đó làm biểu đồ dễ đọc hơn rất nhiều, nên nó vẫn được giữ trong script miễn phí. Nhưng khi mình kiểm tra một ý tưởng tương tự, từ chối các lệnh vào ở xa điểm bắt đầu của nhịp giá, như một quy tắc giao dịch trong nghiên cứu MasterVP của mình, kết quả là 0 trên 4 cách diễn đạt qua 3 nguồn dữ liệu. Một quy tắc làm sạch biểu đồ và một quy tắc tạo thêm lợi thế là hai việc khác nhau. Chỉ có kiểm tra mới cho bạn biết mình đã viết ra loại nào.

Điều đọng lại

Bạn không cần là lập trình viên để làm từ bước 1 đến bước 6. Bạn cần một cây bút và sự kiên nhẫn để trả lời câu "chính xác thì mình muốn nói gì?" cho đến khi không còn gì mơ hồ. Code là phần dễ. Các định nghĩa mới là công việc thật sự.

Script miễn phí và mã nguồn mở, vậy nên hãy đọc nó, thử phá nó, và chỉ giữ lại những gì xứng đáng có mặt trên biểu đồ của bạn. Câu hỏi của mình dành cho bạn: mẫu hình nào bạn đang giao dịch bằng mắt mà chưa bao giờ viết ra được thành một quy tắc?

Từ giao dịch cảm tính đến giao dịch hệ thống, phần 3/15.
Bài trước: Cùng một biểu đồ, hai quyết định khác nhau: cảm xúc tác động thế nào đến trader giao dịch cảm tính
Bài tiếp: ATR là đơn vị đo: vì sao mọi khoảng cách trong hệ thống của mình đều được đo bằng biến động


Phần 3 của loạt bài Từ giao dịch cảm tính đến giao dịch hệ thống, cũng được đăng dưới dạng X Article. Chỉ nhằm mục đích giáo dục. Không phải lời khuyên tài chính. Các số liệu được trích dẫn là kết quả backtest và nghiên cứu trừ khi ghi rõ là live, và hiệu suất trong quá khứ không đảm bảo kết quả trong tương lai. Mỗi trader tự chịu trách nhiệm về thiết lập rủi ro và các quyết định của chính mình.

← All journal articles

Chat