モメントキャプチャチャネル戦略

作者: リン・ハーンチャオチャン開催日:2023年12月20日 15:46:40
タグ:

img

概要

モメントキャプチャーチャネル戦略は,ドンチアンチャネル取引戦略の変種である.最高高帯,最低低帯,最高高帯と最低低帯を平均するベースラインで構成される.この戦略は,週間の時間枠と日々のトレンドインストルーメントで非常にうまく機能する.これはQuantCTアプリで使用されている実装である.

操作モードを Long/Short または Long-only に設定できます

ストップ・ロスを設定したり無視したりできます ストラテジーはエントリーとアウトシグナルのみをベースに動作します

戦略の論理

この戦略のコア論理は,ドンキアン・チャネル指標に基づいている.ドンキアン・チャネルは,過去20日間の最高高,最低低,閉じる価格平均から構成される.トレンド方向と潜在的な逆転は,チャネルの上下帯を突破する価格によって判断される.

この戦略はドンチアン運河の変形である.最も高い帯,最も低い帯,最も高い帯と最も低い帯を平均するベースラインで構成される.具体的な論理は:

  1. チャネルの上下帯として,特定の期間で最も高い高値と最も低い低値を計算
  2. ベースラインとして上部と下部帯の平均を計算する.
  3. 価格が上位帯を突破すると長引く
  4. 価格がベースラインを下回るとロングポジションを閉じる
  5. 価格が下帯を下回るとショート (ショート可能なら)
  6. 価格がベースラインに戻るとショートポジションを閉じる

この戦略の利点は,価格動向の勢いを効果的に捉えることができることです.価格がトレンドの実際の開始を決定するために上/下帯を突破するのを待つことで,偽造による不必要な損失を回避できます.

利点分析

  1. 利益増加の価格動向の勢いを把握する
  2. 偽の脱出に巻き込まれることから不必要な損失を避けます
  3. 柔軟なパラメータ調整により,異なる製品に適しています
  4. 異なるニーズに合わせて,ロングのみまたは完全に取引を選択できます.
  5. 統合ストップ・ロスのメカニズムは,取引毎の損失を効果的に制御します.

リスク分析

  1. 失敗したブレイクアウトは 傾向を捉えながら 損失も増幅します
  2. ストップ・ロスの設定が幅が大きすぎる場合,取引損失額が増加する可能性があります.
  3. パラメータの設定が正しくない場合,過剰取引と取引コストの増加につながる可能性があります.
  4. 突破信号判断は少し遅れている 最良のエントリーポイントを見逃すかもしれない

解決策:

  1. 損失を制御するために注意深くストップ損失パーセントを選択し,まだトレンドに十分なスペースを与える
  2. 取引頻度を減らすためにパラメータ期間値を増加させる
  3. 信号の信頼性を判断するための他の指標を組み込む,よりよいエントリータイミングを選択する

オプティマイゼーションの方向性

  1. 入力タイミングを決定するために他の指標を組み込む
  2. ストップ・ロスの配置を動的に調整する
  3. 計器の特性に基づいてパラメータ設定を最適化
  4. breakout の成功率を判断するために機械学習を組み込む
  5. 位置サイズロジックを追加する

結論

モメントカプチャーチャネル戦略は,価格動向を把握することで,かなりの利益機会を提供します.同時に,パラメータを適切に調整することで制御する必要がある特定のリスクもあります.エントリータイム選択とストップロスのロジックを継続的に最適化することで,この戦略は優れたトレンドフォローシステムになることができます. 簡単な取引規則と明確な信号判断により,理解し実行しやすく,初心者向けに非常に適しています.


/*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"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © QuantCT

//@version=4
strategy("Donchian Channel Strategy Idea",
         shorttitle="Donchian", 
         overlay=true,
         pyramiding=0,     
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=100, 
         initial_capital=1000,           
         commission_type=strategy.commission.percent, 
         commission_value=0.075)

// ____ Inputs

high_period = input(title="High Period", defval=10) 
low_period = input(title="Low Period", defval=10)
long_only = input(title="Long Only", defval=false)
slp = input(title="Stop-loss (%)", minval=1.0, maxval=25.0, defval=5.0)
use_sl = input(title="Use Stop-Loss", defval=false)

// ____ Logic

highest_high = highest(high, high_period)
lowest_low = lowest(low, low_period)
base_line = (highest_high + lowest_low) / 2
    
enter_long = (close > highest_high[1])
exit_long = (close < base_line)
enter_short = (close < lowest_low[1])
exit_short = (close > base_line)

strategy.entry("Long", strategy.long, when=enter_long)
strategy.close("Long", when=exit_long) 
if (not long_only)
    strategy.entry("Short", strategy.short, when=enter_short)
    strategy.close("Short", when=exit_short) 
   
// ____ SL

sl_long = strategy.position_avg_price * (1- (slp/100))
sl_short = strategy.position_avg_price * (1 + (slp/100))
if (use_sl)
    strategy.exit(id="SL", from_entry="Long", stop=sl_long)
    strategy.exit(id="SL", from_entry="Short", stop=sl_short)
    
// ____ Plots

colors = 
 strategy.position_size > 0 ? #27D600 :
 strategy.position_size < 0 ? #E30202 :
 color.orange

highest_high_plot = plot(highest_high, color=colors)
lowest_low_plot = plot(lowest_low, color=colors)
plot(base_line, color=color.silver)
fill(highest_high_plot, lowest_low_plot, color=colors, transp=90)








もっと