チャンネルトレンド戦略

作者: リン・ハーンチャオチャン開催日:2023年12月18日 12:35:42
タグ:

img

概要

チャンネルのトレンド戦略は,オープニング価格とドンチアンチャネルをベースとしたトレンドフォロー戦略である.現在の価格からオープニング価格でベンチマークされたトレンドラインへの線を描き,ドンチアンチャネルによって形成された価格チャネルと組み合わせることでトレンド方向を特定する.価格がチャネルを突破すると取引信号が生成される.

戦略の論理

  1. 時間枠 (日,週,など) を選択し,その開場価格を基準価格として取得します.

  2. ドンキアン・チャネル指標を使用して,最高価格と最低価格のN日移動平均を計算し,価格チャネルを形成します.

  3. 傾向基準線として,現在の終了価格から,その時間枠の開始価格に直線を引く.

  4. 閉じる価格がドンチアンチャネル上部帯を突破すると,買い信号が生成されます.閉じる価格が下部帯を突破すると,売り信号が生成されます.

  5. ストップ・ロストと 利益戦略を設定します

ベンチマークラインとチャネルラインの組み合わせは,トレンド方向にロックされ,トレンドが存在するときに持続的な信号を生成し,一部のノイズをフィルタリングします.

利点分析

  1. スタート価格を戦略の基準線として使うことは,異なる時間枠内で価格動向の変化を効果的に決定することができます.

  2. ドンチアン・チャネル指標は,短期変動がベンチマークラインに与える影響を効果的に排除できる.

  3. ベンチマークラインとドンキアンチャネルの組み合わせは,トレンドが明確であるときに信号を生成し,偽のブレイクを回避します.

  4. 自動ストップ・ロストと利益の設定は,一部の利益をロックし,リスクを制御します.

  5. この戦略にはパラメータが少なく,実行が簡単です.

リスク分析

  1. 範囲限定市場では より多くの無効な信号を生成する可能性があります

  2. パラメータが正しく設定されていない場合,ストップ・ロスは早めに起動する可能性があります.

  3. この戦略は市場動向により依存しており,平均逆転戦略には適していません.

  4. 異常な市場状態では 価格がストップ・ロストラインを突破して 大きな損失を直接引き起こす可能性があります

最適化方向

  1. 異なるタイムフレームのパラメータをテストし,信号生成に最もスムーズなパラメータを選択します.

  2. ドンチアンチャネルのパラメータを調整して,より適切なチャネル幅を設定します.

  3. ストップ・ロスの最適化と 利益率の改善

  4. 異常な市場条件で発生する信号を避けるために他の指標フィルターを追加します.

概要

チャネルトレンド戦略は,開通価格とドンチアンチャネルによって形成されたチャネルラインを利用して価格トレンド方向性を特定する. 簡単に読み取れる持続的なシグナル,利益のロック,ストップ損失と利益の設定を通じてリスクを制御する. 継続的なテストとパラメータ最適化によって,この戦略はさまざまな製品に適用され,トレンド市場で良いリターンを得ることができます.


/*backtest
start: 2023-11-17 00:00:00
end: 2023-12-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//
strategy("STR-TREND", overlay=true)

emax = ta.ema(close,1)
plot(emax,title="X-EMA",color=color.black,linewidth=2)

XDX = input.string(title="TIMELINE", defval="M")
xdaily = request.security(syminfo.tickerid, XDX, open,barmerge.gaps_off, barmerge.lookahead_on)
length = input.int(21, minval=1)
lower = ta.lowest(xdaily,length)
upper = ta.highest(xdaily,length)
XXX = close>upper?lower:upper
plot(XXX,title="STR-X",color=color.red,linewidth=4)

TAKEPROFIT = input.int(15,title="Take Profit %", minval=1)
SELLTAKEPROFIT = XXX * (1-(TAKEPROFIT/100))
BUYTAKEPROFIT = XXX * (1+(TAKEPROFIT/100))
TAKEPROFITX = close<XXX?SELLTAKEPROFIT:BUYTAKEPROFIT
plot(TAKEPROFITX,title="TAKE PROFIT",color=color.black,linewidth=1)


//////////////STRATEGY ///////////////////

buystat= ta.crossover(close,XXX) 
sellstat = ta.crossunder(close,XXX) 

plotshape(buystat==true, title='long', text='BUY', textcolor=color.new(color.white, 0), style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), size=size.tiny) 
plotshape(sellstat==true, title='short', text='SELL', textcolor=color.new(color.white, 0), style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), size=size.tiny) 

//////////////STRATEGY ///////////////////

strategy.entry("LONG", strategy.long, when = buystat==true, comment="")
strategy.exit("BUY TP", "LONG", qty_percent = 50 ,limit = BUYTAKEPROFIT)
strategy.close("LONG", when = sellstat==true, comment="")

strategy.entry("SHORT", strategy.short, when = sellstat==true, comment="")
strategy.exit("SELL TP", "SHORT", qty_percent = 50 ,limit = SELLTAKEPROFIT)
strategy.close("SHORT", when = buystat==true , comment="")








もっと