
Chiến lược này là một hệ thống giao dịch tự điều chỉnh dựa trên đường trung bình và biến động, xây dựng một kênh giao dịch động bằng cách kết hợp chỉ số trung bình di chuyển ((EMA) và sóng thực trung bình ((ATR) để giao dịch khi giá chạm vào kênh lên xuống. Ý tưởng cốt lõi của chiến lược là nắm bắt sự biến động tự nhiên của thị trường và làm tốt trong việc sắp xếp theo chiều ngang.
Chiến lược sử dụng ba chỉ số kỹ thuật quan trọng:
Các kênh giao dịch được tính như sau:
Hệ thống bắt đầu tháo lỗ khi giá chạm đường lên và bắt đầu tháo lỗ khi chạm đường xuống, nên sử dụng tỷ lệ lợi nhuận rủi ro 2: 1.
Đây là một hệ thống giao dịch quay trở về giá trị trung bình được thiết kế hợp lý để nắm bắt cơ hội biến động thị trường thông qua các chỉ số kỹ thuật. Ưu điểm của chiến lược là khả năng thích ứng và khách quan, nhưng khi áp dụng, cần chú ý đến tác động của môi trường xu hướng và tối ưu hóa tham số.
/*backtest
start: 2022-02-11 00:00:00
end: 2025-02-08 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © rolguergf34585
//@version=5
strategy("Grupo ROG - Cash Bands", overlay=true)
PeriodoATR = input.int(defval=14,title="Período ATR")
PeriodoMedia = input.int(defval=10,title="Período Média Móvel")
PeriodoFiltro = input.int(defval=30,title="Período Média Filtro")
Mult = input.float(defval=0.5,title="Multiplicador",step=0.1)
Casas_Decimais = input.int(defval=5,title="Casas Decimais")
ema = ta.ema(close,PeriodoMedia)
filtro = ta.ema(close,PeriodoFiltro)
atr = ta.atr(PeriodoATR)
upper = math.round(ema+atr*Mult,Casas_Decimais)
basis = ema
lower = math.round(ema-atr*Mult,Casas_Decimais)
tendencia = lower>filtro?1:upper<filtro?-1:0
plot(upper,color=color.red)
plot(lower,color=color.green)
//plot(filtro,color=color.white)
barcolor(tendencia==1?color.green:tendencia==-1?color.red:color.white)
longCondition = true//tendencia==1 //and close < lower[1]
shortCondition = true//tendencia==-1 //and close > upper[1]
// if (strategy.position_size>0)
// strategy.exit("Long", limit=upper[0])
// if (strategy.position_size<0)
// strategy.exit("Short", limit=lower[0])
if (longCondition)
strategy.entry("Long", strategy.long, limit=lower[0])
if (shortCondition)
strategy.entry("Short", strategy.short, limit=upper[0])