トレンドフォロー型移動平均戦略


作成日: 2024-02-29 14:00:35 最終変更日: 2024-02-29 14:00:35
コピー: 0 クリック数: 599
1
フォロー
1617
フォロワー

トレンドフォロー型移動平均戦略

概要

この戦略は,チャネル平均線を計算し,価格がチャネル平均線を破るときに多頭または空頭ポジションを確立し,株価のトレンドを追跡する.これはトレンドを追跡する戦略の類である.

戦略原則

この戦略は,まず20日目の高点平均を通道上位,20日目の低点平均を通道下位として計算し,通道中線を計算する.通道中線は,近期価格平均のトレンドを表している.上位が通道中線を突破すると,多頭ポジションを確立し,下位が通道中線を突破すると,空頭ポジションを確立する.価格トレンドを追跡し,価格が通道区間逆転に再び戻るまで,平仓ポジションを確立する.

優位分析

  • 経路を利用して価格の動向を追跡し,横軸市場から資金のロックを回避する.
  • 取引先や取引先を判断する通路の上下線で,入場を簡単に制御できます.
  • 経路の範囲は部分的な騒音をフィルターし,利益の確率を高めます.
  • 経路のパラメータを設定し,戦略の敏感性を調整できます.

リスク分析

  • 大幅に突破通路の中線を通過すると,回調テスト中線が発生する可能性があり,このとき,套装される.
  • 波動型株は戦略に適せず,高頻度で取引されやすい.
  • 参数設定を間違えた場合も, 策略の効果に影響を及ぼす可能性があります.

最適化の方向

  • 経路周期のパラメータを最適化し,異なるパラメータが戦略の効果に与える影響をテストする.
  • ストップ・ストップ・ストラトジーを強化し,単発的損失と総損失を抑制する.
  • 誤った信号を避けるために,他の指標と組み合わせて判断を補助する.
  • 段階的に倉庫を建設し,反調テスト中線を突破する被套の可能性を低減する.

要約する

この戦略は,全体的に比較してシンプルで直接的なもので,基本的価格通路を通して株式価格の動向を判断し,トレンド追跡型の戦略に属している.優点は操作が簡単で,価格動向がもたらす投資機会を充分に活用し,資金がロックされないことである.欠点は,パラメータを正しく設定しないことが効果に影響を与える可能性があり,一定の調整テストのリスクがあることである.合理的な最適化により,戦略の安定性を高め,実盤のパフォーマンスを強化することができる.

ストラテジーソースコード
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2)
//stock strategy
strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=20)


testStartYear = input(2000, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2019, "Backtest Start Year")
testEndMonth = input(3)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = 20

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=close > dcAverage)
strategy.close("simpleBuy",when=close < dcLower)
    
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)