移動平均チャネルブレイク戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-29 10:26:25
タグ:

img

概要

この戦略は,ケルトナーチャンネルの中央,上部,下部レールを計算します. 中部と下部レールの上部に色を埋めます. チャンネルの方向を決定した後,突破して購入し販売します. これはトレンド追跡戦略の一種です.

戦略原則

基本指標はケルトナー・チャネルである.チャネルのミドルレールは,典型的な価格 (最高価格+最低価格+閉店価格) のN日重量移動平均値である/3.チャネルの上下鉄道線は,それぞれ中間鉄道線から1取引範囲N日重量移動平均線である.取引範囲は,真の変動ATRを選択するか,または直接振幅 (最高価格 - 最低価格) を取ることができる.後者はこの戦略で採用される.

ストラテジーは,価格が上線線または下線を突破するかどうかを判断し,中間線を境界線として長期または短期間決定する.閉じる価格が上線よりも大きい場合は,ロング;閉じる価格が下線よりも低い場合は,ショート.ストップ損失線は中間線のMA値である.

利点分析

  1. ケルトナー・チャネル・インディケーターを使って 価格変動範囲を判断し 誤った突破を回避します
  2. 中間線移動平均を支柱として使うことで損失を減らすことができます
  3. 上回線を長回線と下回線を短回線に突破することは,ほとんどの株式の価格変動法則に沿ったトレンド追跡戦略に属します.

リスク分析

  1. 突破チャネル戦略はパラメータに非常に敏感で,最適なパラメータ組み合わせを見つけるために繰り返しテストが必要です.
  2. 短期的に株価が急激に変動すると,取引リスクが増加します.誤った取引のリスクを減らすために,チャネル幅を適切に緩和してください.
  3. この効果は,パラメータ設定と品種との高い相関性があり,異なる品種に適応するために調整が必要です.

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

  1. 他の指標を組み合わせてシグナルをフィルタリングし,誤った取引を避ける.例えばモメント指標,波動指標など.
  2. 最適なパラメータの組み合わせを見つけるためにパラメータを最適化します.主に移動平均パラメータとチャネル倍数を調整します.
  3. 異なる品種のパラメータ設定には大きな違いがあり,個別に最適化する必要があります.

概要

一般的には,この戦略は比較的シンプルで直接的で,一般的な価格突破戦略です.利点は,アイデアが明確で,理解し,実行するのが簡単で,初心者が学ぶのに適しています.しかし,一定の制限もあります.パラメータに敏感であり,結果は不均等で,繰り返しテストと最適化が必要です.より複雑な判断指標と組み合わせることができれば,より強力な取引戦略を形成することができます.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © WMX_Q_System_Trading
//@version=3

strategy(title = "WMX Keltner Channels strategy", shorttitle = "WMX Keltner Channels strategy", overlay = true)

useTrueRange = input(true)
length = input(20, minval=5)
mult = input(2.618, minval=0.1)
mah =ema(ema( ema(high, length),length),length)
mal =ema(ema( ema(low, length),length),length)
range = useTrueRange ? tr : high - low
rangema =ema(ema( ema(range, length),length),length)
upper = mah + rangema * mult
lower = mal - rangema * mult
ma=(upper+lower)/2
uc = red
lc=green
u = plot(upper, color=uc, title="Upper")
basis=plot(ma, color=yellow, title="Basis")
l = plot(lower, color=lc, title="Lower")
fill(u, basis, color=uc, transp=95)
fill(l, basis, color=lc, transp=95)


strategy.entry("Long", strategy.long,  stop = upper, when = strategy.position_size <= 0 and close >upper)
strategy.entry("Short", strategy.short,  stop = lower, when = strategy.position_size >= 0 and close<lower)
if strategy.position_size > 0 
    strategy.exit("Stop Long", "Long", stop = ma)

if strategy.position_size < 0 
    strategy.exit("Stop Short", "Short", stop = ma)





もっと