この戦略は,OBVとCCI指標に基づくトレンドフォロー戦略である.市場動向と資本流動を判断するためにOBV指標を使用し,その後,トレーディング信号を生成するためにCCI指標をフィルタリングに使用する.OBVとCCI指標の両方が現在の上昇傾向を確認すると,ロング;両指標が現在の下落傾向を確認すると,ショート.
戦略は主にOBVとCCIの2つの指標に依存する.OBV指標は市場の資本流を反映することができる.OBVが緑色であるとき,現在の傾向は資本流入であり,OBVが赤色であるとき,現在の傾向は資本流出であることを意味します.CCI指標はフィルターとして使用されます.
入力シグナルについては,最後の期間のOBV値が緑色 (資本流入) で,CCIが
エクジット・シグナルでは,最後の期間のOBV値が赤色 (資本流出) で,CCIが
つまり,主要トレンドをOBVを用いて判断し,CCI指標でフィルタリングし,EMAクロスオーバーを用いて組み合わせて具体的な取引信号を生成することで,戦略はトレンドフォローを実現します.
この戦略の主な利点は以下の通りです.
短期間の市場騒音の干渉を回避し,市場資本の流れと傾向の方向性を決定するために OBV を使用する.
フィルタリングのためのCCI指標を活用し,取引信号をより信頼性のあるものにします.
高品質のコンクリート取引所を作る EMAのクロスオーバーを使用する.
規則は明確でシンプルで 分かりやすく 実行できます
この戦略にはいくつかの潜在的なリスクもあります.
OBVとCCIの指示が誤った信号を生成する可能性
頻繁に取引信号が送られていて 過剰取引が容易です
引き戻し時に捕まる可能性があります.
パラメータの調節が悪ければ 戦略の性能が悪くなる
これらのリスクを制御するために,パラメータの最適化,取引頻度の調整,ストップ・ロスの設定,フィルターの使用などの方法が適用できます.
戦略は以下の側面から最適化できます.
異なるパラメータの影響を評価し,最適なパラメータの組み合わせを見つけます.
取引頻度制限を設定し,過剰な取引を避ける.
単一の取引損失を制御するためのストップ損失メカニズムを追加する.
信号の質を改善するために,フィルターとして他の指標を追加します.
入口と出口ロジックを最適化して取引信号をより信頼性のあるものにします
概要すると,これは価格動向を効果的に追跡し,ノイズ干渉を回避できる基本的なトレンドフォロー戦略です.しかし,パラメータ最適化,ストップ損失,取引頻度制御などの改善を必要とするいくつかのリスクがあります.パラメータが科学的に設定されれば,重要なバックテストパフォーマンス改善を達成できます.この戦略は,学習と練習のためのより高度な量子トレーダーに適しています.
/*backtest start: 2023-02-14 00:00:00 end: 2024-02-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //author: SudeepBisht //@version=3 strategy("SB_CCI coded OBV Strategy", overlay=true) src = close length = input(20, minval=1, title="CCI Length") threshold=input(0, title="CCI threshold for OBV coding") lengthema=input(13, title="EMA length") obv(src) => cum(change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume) o=obv(src) c=cci(src, length) col=c>=threshold?green:red chk=col==green?1:0 ema_line=ema(o,lengthema) //plot(o, color=c>=threshold?green:red, title="OBV_CCI coded", linewidth=2) //plot(ema(o,lengthema), color=orange, linewidth=2) if (not na(ema_line)) if (crossover(o, ema_line) and chk[1]==1) strategy.entry("RsiLE", strategy.long, comment="RsiLE") if (crossunder(o, ema_line) and chk[1]==0) strategy.entry("RsiSE", strategy.short, comment="RsiSE")