移動平均パーセンテージバンド戦略


作成日: 2023-12-12 17:47:02 最終変更日: 2023-12-12 17:47:02
コピー: 1 クリック数: 655
1
フォロー
1621
フォロワー

移動平均パーセンテージバンド戦略

概要

移動平均比率波段戦略は,トレンド追跡戦略である.移動平均を基準として使用し,価格の比率に基づいて上下を計算する.価格が上下を突破すると空き;価格が下下を突破すると多めにする.この戦略の最大の利点は,波動範囲を自動的に調整でき,異なる市場環境でトレンドを効果的に捉えることができる点である.

戦略原則

この戦略の核心指標は移動平均であり,中線は単純なN日移動平均である.上線と下線は価格のパーセントの変化に基づいて計算される.具体的計算式は次のとおりである.

上軌道線 = 中軌道線 + 価格 * 上軌道線パーセント 下線 = 中線 - 価格 * 下線パーセント

上線線比と下線比は調整可能なパラメータで,デフォルトは2で,価格の2%を表します.

価格が上昇すると,上線と下線は同時に上方へ拡大し,価格が下がると,上線と下線は同時に下方へ縮小する.これは,市場の波動程度に応じて自動的に通路幅を調整する効果を実現する.

取引戦略では,価格が上位線を突破すると空白し,価格が下位線を突破すると多めにします. さらに,この戦略は,特定の月にのみ取引する条件を設定し,主要なトレンドではない月に誤った信号を発生させないようにします.

優位分析

この戦略の最大の利点は,波動範囲は価格の百分比の変化に基づいて計算され,異なるトレンド環境に適応して自動的に調整でき,揺動的なトレンドの状況で偽信号を減らすだけでなく,トレンドの状況でタイムリーに転換を捉えることができるということです.さらに,月と日付のフィルタリング条件が設定され,境界の月のノイズをフィルターすることができ,主要なトレンドでない月の誤信号を防ぐことができます.

リスク分析

この戦略の主なリスクは,移動平均が遅滞しており,突発的な出来事に対して即座に反応することができないことである.さらに,パーセント範囲の設定は,戦略のパフォーマンスにも影響を及ぼし,もし設定が低すぎれば,移動平均の遅滞の問題が悪化し,もし設定が高すぎれば,偽信号の確率が増加する.

もう一つの潜在的なリスクは,日付と月間条件に過度に依存することであり,主要な動きが設定された月間以外で起こると,この戦略はチャンスを逃してしまう.したがって,これらの前提条件も,異なる品種と市場環境に応じて調整する必要がある.

最適化の方向

この戦略の最適化の余地はまだ十分にある.第一に,移動平均の時間長さ,パーセントパラメータなど,異なるパラメータの組み合わせをテストして,最適なパラメータを見つけることができる.第二に,移動平均信号の信頼性を高めるために,交差量など,移動平均信号を確認するために,他の指標を追加することを考えることができる.最後に,日付と月のフィルタリング条件は,異なる品種と市場環境に応じて調整され,より柔軟性がある.

例えば,歴史データに基づいてどの月が主要トレンド月であるかを判断し,その後自動的に値を計算することができる.価格が異常突破した場合,月間条件を一時的に無視して,全面的に参加することもできる.機械学習などの手段を導入して,動的にこれらのパラメータを最適化することも可能である.

要約する

移動平均比率波段戦略は,全体として非常に実用的なトレンド追跡戦略である.その最大の優点は,市場の変化に合わせて波動範囲を自動的に調整できる点である.同時に,パラメータ最適化,信号フィルタリングなど,一定の改善の余地がある.合理的に使用できれば,多種多様な市場環境で安定した利益を上げることができる.

ストラテジーソースコード
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy(title = "Percentage Band", overlay = true)


//////////////// BAND  ////////////////////////////
price=close
bandlength = input(50)
bbupmult =input(2,step=0.1,title="Multiplier for Percent upper Band")
bblowmult = input(2,step=0.1,title="Multiplier for Percent Lower  Band")

basis =  sma(close,bandlength)

devup =  (bbupmult*price)/100
devlow = (bblowmult*price)/100

upper = basis + devup
lower = basis - devlow
plot(basis, color=red)
p1 = plot(upper, color=blue)
p2 = plot(lower, color=blue)
fill(p1, p2)



/////////////////////////BAND  //////////////////////////


// Conditions



longCond = na
sellCond = na
longCond :=  crossover(price,lower)
sellCond :=  crossunder(price,upper)




monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  longCond  ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( sellCond   ) 

    strategy.close("BUY")