Chiến lược này xây dựng các tín hiệu giao dịch dựa trên đường trung bình động, đường trung bình động Hull và chỉ số sức mạnh tương đối (RSI). Nó thuộc về một chiến lược theo dõi cơ hội điển hình có thể tự động xác định cơ hội thị trường và chuyển đổi giữa các vị trí dài và ngắn. Nó phù hợp với giao dịch trung và ngắn hạn.
Chiến lược này sử dụng sự kết hợp của EMA, Hull và RSI trên các khung thời gian để nắm bắt các cơ hội giao dịch trung hạn và ngắn hạn. Các tín hiệu đầu vào phải đáp ứng các tiêu chí trong xu hướng, động lực và kích thước mua quá mức / bán quá mức đồng thời để lọc ra các tín hiệu sai. Chiến lược có thể được tăng cường hơn nữa thông qua tối ưu hóa tham số và giới thiệu nhiều chỉ số phụ để cải thiện sự ổn định và hiệu suất giao dịch.
/*backtest start: 2023-01-11 00:00:00 end: 2024-01-17 00:00:00 period: 1d basePeriod: 1h 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/ // © Bitduke //@version=4 strategy(shorttitle="EHR", title="Simple EMA_Hull_RSI", overlay=false, calc_on_every_tick=false, pyramiding=0, default_qty_type=strategy.cash, default_qty_value=1000, currency=currency.USD, initial_capital=1000, commission_type=strategy.commission.percent, commission_value=0.075) // EMA len = input(minval=1, title="EMA Length", defval=50) src = input(close, title="EMA Source") final_ema = ema(src, len) plot(final_ema, color=color.red, title="EMA") overbought = input(60, title="overbought value") oversold = input(45, title="oversold value") overbought_signal = rsi(close, 14) > overbought oversold_signal = rsi(close, 14) < oversold barcolor(overbought_signal ? color.black : na) barcolor(oversold_signal ? color.blue : na) // Hull MA n = input(title="Hull Length", defval=7) n2ma=2*wma(close,round(n/2)) nma=wma(close,n) diff=n2ma-nma sqn=round(sqrt(n)) n2ma1=2*wma(close[1],round(n/2)) nma1=wma(close[1],n) diff1=n2ma1-nma1 sqn1=round(sqrt(n)) n1=wma(diff,sqn) n2=wma(diff1,sqn) c=n1>n2?color.green:color.red ma=plot(n1,color=c) // Strategy Logic longCondition = overbought_signal and crossover(n1,final_ema) shortCondition = oversold_signal and crossover(final_ema,n1) strategy.entry("EHR_Long", strategy.long, when=longCondition) strategy.entry("EHR_Short", strategy.short, when=shortCondition)