Chiến lược này dựa trên chỉ số phân tán chuyển đổi đường trung bình ((CMO) để đánh giá giao dịch. Giá trị tuyệt đối của CMO đại diện cho mức độ phân tán giá, chiến lược đánh giá giá trị trung bình của ba chu kỳ giá trị tuyệt đối của CMO để đánh giá quá mua quá bán, thuộc chiến lược giao dịch chỉ số xung đột điển hình.
Chiến lược này chủ yếu sử dụng logic sau:
Chỉ số CMO phản ánh động lực của sự thay đổi giá. Kích thước tuyệt đối của nó đại diện cho mức độ phân tán giá, vượt quá một mức độ nhất định sẽ đi vào khu vực mua quá mức. Chiến lược này sử dụng tính năng này của CMO, sử dụng trung bình nhiều chu kỳ để làm phẳng đường cong, để đánh giá tình trạng mua quá mức, thuộc về chiến lược giao dịch xung đột điển hình.
Phản ứng:
Chiến lược này có thể mở rộng từ các khía cạnh sau:
Chiến lược này sử dụng CMO để xác định quá mua quá bán để giao dịch đảo ngược, do sử dụng trung bình nhiều chu kỳ, có thể làm mịn đường cong một cách hiệu quả, tránh tín hiệu sai. Chỉ số CMO tự nó có nền tảng lý thuyết vững chắc, xác định đáng tin cậy tình trạng phân tán giá. Bằng cách tối ưu hóa tham số, chiến lược dừng lỗ, v.v., có thể tối ưu hóa nó thành một chiến lược giao dịch chỉ số dao động ổn định hơn.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-14 07:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////7////////////
// Copyright by HPotter v1.0 21/02/2017
// This indicator plots the absolute value of CMO averaged over three
// different lengths. This indicator plots a classical-looking oscillator,
// which is really an averaged value based on three different periods.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="CMOabsav", shorttitle="CMOabsav")
Length1 = input(5, minval=1)
Length2 = input(10, minval=1)
Length3 = input(20, minval=1)
TopBand = input(58, minval=1)
LowBand = input(5, minval=0)
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=hline.style_dashed)
hline(TopBand, color=purple, linestyle=hline.style_solid)
hline(LowBand, color=red, linestyle=hline.style_solid)
xMom = close - close[1]
xMomabs = abs(close - close[1])
nSum1 = sum(xMom, Length1)
nSumAbs1 = sum(xMomabs, Length1)
nSum2 = sum(xMom, Length2)
nSumAbs2 = sum(xMomabs, Length2)
nSum3 = sum(xMom, Length3)
nSumAbs3 = sum(xMomabs, Length3)
nRes = abs(100 * (nSum1 / nSumAbs1 + nSum2 / nSumAbs2 + nSum3 / nSumAbs3 ) / 3)
pos = iff(nRes > TopBand, 1,
iff(nRes < LowBand, -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="CMOabsav")