
この戦略は,流動性駆動トレンド戦略 (Liquidity Driven Trend Strategy) と呼ばれる.この戦略は,異なる時間周期における価格トレンドの方向を識別し,それに応じて買いまたは販売の決定を行うことを目的としています.この戦略は,二均線システムの判断を適用し,多時間フレーム上の差値相対強度指数 (RSI) を利用して,トレンドが変化する時に迅速に反応します.
この戦略のコアロジックは,CHOP指標に基づいています. 移動平均システムは,大トレンドの方向を判断します.具体的には,戦略は,高周期の時間枠で,快線 (Length=20) と慢線 (Length=50) のRSI値を計算し,その差を計算します. 快線 (RSI) 上での慢線 (RSI) を通過すると,看板と判断され,多信号を形成します.
この戦略はまた,複数のタイムフレームの判断を導入します. 高いレベルの周期 (日線など) でRSIの差値を計算して,全体的なトレンドの方向性を判断します. 高いレベルの周期の判断の結果に基づいて,低いレベルの周期 (5分線など) で特定の買い物や販売を実行します. この複数のタイムフレームの組み合わせは,高周期のトレンド判断を考慮するとともに,低周期の操作の柔軟性も考慮します.
解決策は
この戦略は,潜在的トレンド変化を判断するためにRSI差値を使用し,敏感な転換点を捉えます.複数の時間枠の使用は,大きなトレンドの判断を保証するとともに,特定の取引操作をより柔軟にします.他のトレンド追跡戦略と比較して,この戦略は,よりシンプルで直接で,パラメータの設定は直感的で,調整しやすく最適化されます.全体的に,この戦略は,高効率で実用的なトレンド取引システムを作り,適用をさらに探索する価値があります.
/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Flow Trend Indicator Strategy", "FlowTI", overlay=true, calc_on_every_tick=true)
isTimeFrame(timeFrame) =>
timeFrame == timeframe.period ? true : false
Htf() =>
isTimeFrame("12") ? "60" : isTimeFrame("60") ? "300" : isTimeFrame("300") ? "D" : isTimeFrame("D") ? "W" : isTimeFrame("W") ? "M" : isTimeFrame("M") ? "5M" : "D"
TrendIndication() =>
trendFastLength = 20
trendSlowLength = 50
upFastHtf = request.security(syminfo.tickerid, Htf(), rma(max(change(close), 0), trendFastLength), barmerge.gaps_off, barmerge.lookahead_on)
downFastHtf = request.security(syminfo.tickerid, Htf(), rma(-min(change(close), 0), trendFastLength), barmerge.gaps_off, barmerge.lookahead_on)
rsiFastHtf = downFastHtf == 0 ? 100 : upFastHtf == 0 ? 0 : 100 - (100 / (1 + upFastHtf / downFastHtf))
upSlowHtf = request.security(syminfo.tickerid, Htf(), rma(max(change(close), 0), trendSlowLength), barmerge.gaps_off, barmerge.lookahead_on)
downSlowHtf = request.security(syminfo.tickerid, Htf(), rma(-min(change(close), 0), trendSlowLength), barmerge.gaps_off, barmerge.lookahead_on)
rsiSlowHtf = downSlowHtf == 0 ? 100 : upSlowHtf == 0 ? 0 : 100 - (100 / (1 + upSlowHtf / downSlowHtf))
rsiDiff = rsiFastHtf - rsiSlowHtf
crossover(rsiDiff, 0) ? true : crossunder(rsiDiff, 0) ? false : na
if (TrendIndication() == true)
strategy.entry("Long", strategy.long)
if (TrendIndication() == false)
strategy.entry("Short", strategy.short)