VSTOCHASTIC RSI EMA CROSSOVER VMACD ウェーブファインダー戦略と組み合わせた

作者: リン・ハーンチャオチャン,日付: 2023-11-21 17:12:06
タグ:

img

概要

これは,ストカスティックRSI,EMAクロスオーバーとVMACDを組み込み,市場の逆転点を特定する戦略であり,下向きの逆転が迫っているときに最もうまく機能します.条件が満たされると購入信号を生成します.

戦略の論理

この戦略は主に以下の指標の組み合わせに基づいています.

  1. ストカスティック・RSI: 過買い・過売の条件を特定する
  2. EMAのクロスオーバー 急速なEMAと遅いEMA: 傾向の方向性と潜在的な逆転を決定する
  3. VMACD:逆転信号の確認

ストカスティックRSIがoversold領域から反転すると,高速EMAがスローEMAの上を横断し,同時にVMACDが上昇し始めると,購入信号が生成されます. さらに,短期価格が10期SMAを超えると,購入するための補助信号としても機能します.

この戦略は,これらの指標の変化をリアルタイムで追跡し,固定されたバックバック期間にわたってSMA,EMAおよびその他の情報を計算する. 購入条件が起動すると,一定の数の契約で購入し,ポジションを開く. その後,5%引き下げまたはSMAライン以下の価格などのストップ損失条件が起動した場合,ストップ損失のためにポジションが閉鎖されます.

利点分析

この戦略は複数の指標を組み合わせ,市場の逆転の機会を効果的に特定することができます.主な利点は以下の通りです.

  1. ストカスティック・RSIは過買い・過売の条件を把握する力があります
  2. EMAクロスオーバーは逆転信号の決定に高い精度を持っています
  3. VMACD は 偽信号 を 効果的に フィルタリング する こと に 役立ち ます
  4. 複数の指標を組み合わせることで信号の質が向上します
  5. ストップ・ロスの方法として短期SMAを使用することは合理的です.

要するに,この戦略は,逆転信号を効果的に捉え,一定程度下落した後にロングポジションを確立し,利益を得ることができます.

リスク分析

この戦略にはいくつかの利点はありますが,注意すべきリスクもあります.

  1. 市場が逆転しない可能性があり,減少を続けます - 体系的なリスク
  2. 複数のインジケーターが共同購入を誘発する確率は高くない - 信号は少ない
  3. SMAストップロスは主観的すぎるため,引き上げ制御が不十分になる可能性があります.
  4. 高い変動の市場環境を考慮しない

リスクを軽減する方法:

  1. より良いコンボ効果のためにより多くの逆転指標を追加
  2. ストップ・ロスは,金額に基づくストップ・ロスと組み合わせた時間付きストップ・ロスを使用する
  3. 市場 の 状況 を 判断 し,不安定 な 環境 で ポジション を 取る こと を 避ける
  4. ストップ・ロスのロジックを最適化し,過剰に攻撃的なストップ・ロスの停止を防ぐ

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

戦略に最適化できる主な分野:

  1. インディケーター・クラスタを形成するためにより多くのインディケーターを追加し,信号品質を改善します
  2. 異なる資産クラスの特徴に基づいて最適なパラメータを選択する
  3. 機械学習モデルを組み込み,過去のデータに基づく逆転確率を推定する
  4. バックテストの際に滑り込みを加え,結果がライブパフォーマンスに近い
  5. ストップ・ロスの方法論を改良し,よりスムーズで合理的になる
  6. 盲目的にポジションに入る前に,範囲とトレンド環境を区別するためにトレンド条件を検出

結論

VMACD Wavefinder ストラテジーのこのVRSI-EMAクロスオーバーは,ダウントレンド逆転の機会を捉えることができる.逆転の最適なタイミングを決定するために複数の指標を組み合わせて効果的に購入信号を生成する.しかし,改善のためのいくつかの領域が残っています.さらに最適化されれば,ライブ取引での戦略のパフォーマンスはさらに向上する可能性があります.これは複数の指標の融合に基づいた定量戦略の典型的な例です.


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Wavefinder+", overlay=true)
length = input(20)
confirmBars = input(2)
price = close

slow = input(12, "Short period")
fast = input(26, "Long period")
signal = input(9, "Smoothing period")


maFast = ema( volume * close, fast ) / ema( volume, fast ) 
maSlow = ema( volume * close, slow ) / ema( volume, slow ) 
da = maSlow - maFast 
maSignal = ema( da, signal ) 
dm=da-maSignal


source = close
lengthRSI = input(14, minval=8), lengthStoch = input(14, minval=5)
smoothK = input(3,minval=3), smoothD = input(3,minval=3)
OverSold = input(25), OverBought = input(75)
rsi1 = rsi(source, lengthRSI)
rsi2= rsi(low, 20)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
k1= sma(stoch(rsi2, rsi2, rsi2, lengthStoch), smoothK)
d1= sma(k1, smoothD)
delta=k-d1
ma = ema(low, length)
ema5= ema(price,20)
sma= sma(price,10)
bcond = price < ma
lcond = price> ema5
bcount = 0
lcount= 0
bcount := bcond ? nz(bcount[1]) + 1 : 0
lcount := lcond ? nz(lcount[1]) + 1 : 0

if (lcount>1 and change(k)>3 and k>d and k<55 and rising(dm,1)) or ( k[1]-k[2]<-2 and k-k[1]>5 and k>35 and k<80) or (ma-sma>0.05*sma and rising(sma,3) and rising(dm,2)) 
    strategy.entry("Long", strategy.long, qty=10000/close)

if (bcount == confirmBars)
    strategy.close("Long")
if close<0.99*sma
    strategy.close("Long")

plot(0.99*sma)
plot(ma)

//hline(OverSold,color=blue)
//hline(OverBought,color=blue)

//plot(d, color=red)
//plot(k, color=green,title="k-line")
    
//(close-close[3]<-0.05*close[3]) or (close-close[2]<-0.05*close[2]) or (close-close[2]<-0.05*close[2]) or (close-close[4]<-0.05*close[4]) or
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

もっと