この戦略は,2つの異なるパラメータセットの超トレンド指標とCCI指標に基づいている.この指標は,短線価格変動を捕捉し,高周波取引を実現することを目的としている.超トレンド指標は,動的ATRを計算して価格の傾向方向を判断する.CCI指標は,市場が超買い超売なのか判断する.この戦略は両方を組み合わせて取引信号を形成する.
14サイクルATRを使用して高速超トレンドを計算し,因子3を設定する. 14サイクルATRを使用して遅速超トレンドを計算し,因子6を設定する. 急速超トレンドはより敏感で,短期間の変化を捉えることができる. 遅速超トレンドは主要なトレンドの方向性を判断する.
急速超トレンドの下での価格穿戴,そして遅い超トレンドはまだ価格の上にあるとき,可能な逆転信号として判断し,多くを行う.高速超トレンドの下での価格穿戴,そして遅い超トレンドはまだ価格の下にあるとき,可能な逆転信号として判断し,空にする.
同時に,CCIを利用して市場オーバーバイオーバーセール状態を判断する.CCIが100時以上になると市場オーバーバイ,100時以下になると市場オーバーセールとなる.CCIの信号を組み合わせたフィルター偽突破である.
超買い・超売りの場合,超トレンド指標は反転信号を発する可能性が高く,これは戦略の核心論理である.
超トレンド判断のトレンドリバーサンスポイントとCCI判断の超買い超売状態が組み合わせることで,偽突破を効果的にフィルタリングし,信号品質を向上させることができる.
超トレンドが急激に交差して取引信号を形成し,高周波の出入を実現する.
CCIパラメータと超トレンドのパラメータは,異なる市場状況に適応するために柔軟に調整できます.
戦略は明確で,パラメータの調整も簡単です.
超トレンド自体は遅延があり,最初の逆転機会を逃す可能性があります. ATRサイクルの短縮を試みることができます.
CCIには回転リスクがあり,過度に波動すると重複取引が起こる可能性がある.CCIのパラメータを拡大したり境界を調整したりすることは試みることができる.
高周波取引は取引頻度と手続費負担を容易に増加させる.持有時間を調整し,平衡率を減らすことが推奨される.
最大回帰または損益比などの指標に基づいて参数組み合わせを駆け巡り最適化して最適な参数を見つけることができる.
機械学習方法,例えばランダムフォレストなどの組み合わせにより,パラメータに対する特徴選択を行い,パラメータの自動最適化を実現できる.
リスクをコントロールするために,特定のサイクルで最大取引数を制限することを探すことができます.
この戦略は,超トレンド指標を充分活用し,CCI指標のフィルタリング信号を補完し,短期トレンド転換点を判断する.パラメータを合理的に設定すると,高効率のショートトレードを実現できる.しかし,過度に頻繁に取引するあらゆる種類のリスクに対して注意を払い,パラメータ調整とアルゴリズム最適化によって常に改善し,より良い戦略パフォーマンスを得ることができる.
/*backtest start: 2023-02-25 00:00:00 end: 2024-02-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Stochastic RSI Strategy", shorttitle="StochRSI", overlay=true) rsiLength = input.int(14, title="RSI Length") stochLength = input.int(14, title="Stochastic Length") kSmooth = input.int(3, title="K Smooth") dSmooth = input.int(3, title="D Smooth") oversoldLevel = input(10, title="Oversold Level") overboughtLevel = input(90, title="Overbought Level") rsi = ta.rsi(close, rsiLength) stochRsi = ta.stoch(rsi, rsi, rsi, stochLength) longCondition = stochRsi < oversoldLevel shortCondition = stochRsi > overboughtLevel if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (shortCondition) strategy.close("Long") if (longCondition) strategy.close("Short") plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)