EVWMAに基づくボリンジャーバンド戦略


作成日: 2023-11-02 15:27:28 最終変更日: 2023-11-02 15:27:28
コピー: 0 クリック数: 572
1
フォロー
1617
フォロワー

EVWMAに基づくボリンジャーバンド戦略

概要

この戦略は,ブリン帯のベースラインとしてEVWMAを利用し,価格がブリン帯を突破すると,上昇し,下落すると空きを取って,価格の傾向的な動きを捕捉する.

戦略原則

この戦略は,まず,最新の30サイクルにおける総取引量vol_periodを計算し,次にEVWMAを計算し,公式は: ((前日のEVWMA x (vol_period - 今日の取引量) + 今日の取引量 x 閉店価格) / vol_period。

ブリン帯の中線ベースはEVWMAで,上下線はベース ±2倍stdev (閉盤価格の標準差) である. 上線が上線に突入するときは多し,下線が下線に突入する時は空きである. 止損点はbasisである.

優位分析

  1. EVWMAは価格の変化の傾向をよりよく反映し,平均線よりも滑らかである.

  2. ブリン帯は,価格変動の上下界を明確に識別し,価格突破を捉えるのに役立ちます.

  3. トレンド指数EVWMAと波動指数ブリン帯を組み合わせて,入場時間をより正確に判断できます.

  4. ストップポイントはベースで,リスク管理に役立ちます.

リスク分析

  1. 価格の変動をタイムリーに反映できず,入場機会を逃す可能性がある.

  2. ブリン帯は横盤の反復震動によって誘発されやすい.

  3. ポジションの規模と保有期間を考慮しない管理では,不適切な利益と損失の拡大の危険性がある.

  4. 停止点が設定されていない場合,合理的な目標を超えて継続するリスクがあります.

最適化の方向

  1. 異なるパラメータをテストして,より適切な期間長さを見つけることができます.

  2. MACDなどの他の指標と組み合わせた入場信号のフィルタリングを検討することができます.

  3. 固定保有周期の設定など,保有時間管理を設定できます.

  4. 値が設定され,合理的な収益目標を事前に設定できます.

  5. 市場状況に応じてポジションの規模を調整できます.

要約する

この戦略は,EVWMAとブリン帯の2つの指標の優位性を統合し,価格突破の上下を捕捉してトレンド追跡を実現する.指標のポートフォリオが合理的で,入場精度があり,リスクを効果的に制御できるという利点がある.しかし,パラメータの設定が不適切で,ポジション管理が不完全であるなどの問題もある.パラメータの最適化,ストップ・ロスの設定,およびポジション管理の強化により,戦略の安定性と収益性をさらに向上させることができる.全体的に言えば,この戦略は合理的な考え方で,一定の実用価値と開発の可能性がある.

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

//@version=4
strategy("EVWBB Strategy [QuantNomad]", shorttitle="EVWBB Strategy [QN]", overlay=true)

// Inputs
sum_length = input(30,  title = "Length", type = input.integer)
mult       = input(2.0, minval=0.001, maxval=50)
 
// Calculate Volume Period
vol_period = sum(volume, sum_length)

// Calculate EVWMA
evwma = 0.0
evwma := ((vol_period - volume) * nz(evwma[1], close) + volume * close) / (vol_period)

basis = evwma
dev = mult * stdev(close, sum_length)

upper = basis + dev
lower = basis - dev

plot(basis, color=color.red)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)

buyEntry = crossover(close, lower)
sellEntry = crossunder(close, upper)

strategy.entry("BBandLE", strategy.long,  stop = upper , oca_name = "BollingerBands",  comment="BBandLE")
strategy.entry("BBandSE", strategy.short, stop = lower,  oca_name = "BollingerBands", comment="BBandSE")

strategy.exit("BBand L SL", "BBandLE", stop = basis)
strategy.exit("BBand S SL", "BBandSE", stop = basis)