
Chiến lược này là một chiến lược giao dịch hai đường ngang dựa trên chỉ số động lực giá Chandre động lực biến động ((CMO) và trung bình di chuyển có trọng lượng của nó ((WMA)).
Chiến lược này bắt đầu bằng cách tính toán CMO, một chỉ số đo lường sự thay đổi động lực trực tuyến của giá. Một giá trị tích cực cho thấy nhịp độ tăng và giá trị âm cho thấy nhịp độ giảm. Sau đó tính toán WMA của CMO.
Các bước quan trọng trong việc tính toán CMO là:
Lợi thế của chiến lược này là nắm bắt các điểm biến của xu hướng giá trung bình. Kích thước tuyệt đối của CMO phản ánh cường độ của xu hướng giá, WMA có lợi cho sự phá vỡ giả định của đợt sóng.
Ưu điểm lớn nhất của chiến lược này là sử dụng giá trị tuyệt đối của chỉ số CMO để đánh giá cảm xúc của thị trường, WMA filtering để xác định điểm chuyển đổi của xu hướng trung hạn. Chiến lược trung hạn có thể nắm bắt được xu hướng trung hạn có nhiều tính linh hoạt hơn so với chiến lược trung bình di chuyển đơn lẻ.
CMO tiêu chuẩn hóa sự thay đổi giá, vẽ nó trong khoảng từ -100 đến -100 để đánh giá tâm trạng của thị trường; kích thước tuyệt đối đại diện cho mức độ mạnh của xu hướng hiện tại. WMA đã làm thêm các bước điều khiển cho CMO để tránh quá nhiều tín hiệu giả.
Những rủi ro chính mà chiến lược này có thể gây ra là:
Các phương pháp tối ưu hóa tương ứng có:
Các hướng tối ưu hóa của chiến lược này tập trung vào tối ưu hóa tham số, lọc tín hiệu và dừng lỗ:
Tối ưu hóa tham số của CMO và WMA: Tìm các tham số tối ưu bằng cách đi qua
Hình thức lọc tín hiệu kết hợp với các chỉ số hỗ trợ như khối lượng giao dịch, chỉ số mạnh và yếu để tránh phá vỡ giả
Thêm cơ chế dừng động để dừng lỗ khi giá giảm xuống CMO và WMA
Mô hình Breakout Failure có thể được coi là một tín hiệu đầu vào, đó là CMO và WMA đã phá vỡ ngưỡng quan trọng trước nhưng nhanh chóng giảm trở lại
Có thể kết hợp các chỉ số chu kỳ dài hơn để đánh giá xu hướng lớn, tránh giao dịch ngược
Chiến lược tổng thể sử dụng chỉ số CMO để đánh giá cường độ và điểm chuyển hướng của xu hướng, kết hợp với WMA để tạo tín hiệu giao dịch, thuộc hệ thống song phương song phương điển hình. So với chiến lược MA đơn lẻ, có lợi thế trong việc nắm bắt xu hướng trung bình với tính linh hoạt mạnh mẽ hơn. Tuy nhiên, vẫn còn không gian tối ưu hóa về cài đặt tham số và đòn bẩy, kiểm soát đúng tần suất giao dịch và giới thiệu dừng động, có thể làm tăng thêm sự ổn định của hệ thống.
/*backtest
start: 2023-12-25 00:00:00
end: 2024-01-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 18/10/2018
// This indicator plots Chandre Momentum Oscillator and its WMA on the
// same chart. This indicator plots the absolute value of CMO.
// The CMO is closely related to, yet unique from, other momentum oriented
// indicators such as Relative Strength Index, Stochastic, Rate-of-Change,
// etc. It is most closely related to Welles Wilder?s RSI, yet it differs
// in several ways:
// - It uses data for both up days and down days in the numerator, thereby
// directly measuring momentum;
// - The calculations are applied on unsmoothed data. Therefore, short-term
// extreme movements in price are not hidden. Once calculated, smoothing
// can be applied to the CMO, if desired;
// - The scale is bounded between +100 and -100, thereby allowing you to clearly
// see changes in net momentum using the 0 level. The bounded scale also allows
// you to conveniently compare values across different securities.
////////////////////////////////////////////////////////////
strategy(title="CMO & WMA Backtest ver 2.0", shorttitle="CMO & WMA")
Length = input(9, minval=1)
LengthWMA = input(9, minval=1)
BuyZone = input(60, step = 0.01)
SellZone = input(-60, step = 0.01)
reverse = input(false, title="Trade reverse")
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
hline(0, color=gray, linestyle=line)
xMom = abs(close - close[1])
xSMA_mom = sma(xMom, Length)
xMomLength = close - close[Length]
nRes = 100 * (xMomLength / (xSMA_mom * Length))
xWMACMO = wma(nRes, LengthWMA)
pos = 0.0
pos := iff(xWMACMO > BuyZone, 1,
iff(xWMACMO < SellZone, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue, title="CMO")
plot(xWMACMO, color=red, title="WMA")