ストコスタスティック・ヴォルテックス戦略は,ストコスタスティック・オシレーターのK線がD線を越えて,ポジティブなVIがマイナスVIより高いときに買い信号を生成する戦略である.この戦略は,ストコスタスティック・オシレーター指標とヴォルテックス指標の利点を組み合わせて,株価が逆転したときの機会を把握する.
この戦略は主に2つの指標に基づいています.
ストカスティックオシレーター:この指標は,市場の過売量または過買い量を反映するために,一日の閉店価格を特定の期間中の最高値と最低値と比較します.ストカスティックオシレーターの高速線KがスローラインDを超えると,それは購入信号とみなされます.
渦輪指標:この指標は,一定の期間の変動を比較することによって,市場の渦輪のような上下運動を反映しています. ポジティブな渦輪指標がマイナス渦輪指標よりも高いとき,それは株式価格の上昇勢力が下落勢力のより強いことを意味します.
この戦略の買い信号は,ストカスティックオシレータのスローラインDの上の高速線Kの横断から来ていて,過剰販売領域から株価が反転することを示しています.そして,負の渦線指標よりも高いポジティブな渦線指標は,株価の強い上昇勢いを意味します.したがって,これらの2つの信号の組み合わせは最終的な購入決定を生成します.
この戦略の主な特徴は以下の通りである.
株価のリバウンドをタイムリーに把握する.D線上のK線を横切るのは,価格の逆転を反映する.
ヴォルテックスインデックスは 偽のブレイクを避けるために 上昇勢力を決定します
戦略を最適化するために調整可能なパラメータ
直感的な判断のために購入信号を視覚化します.
ストカスティックとヴォルテックスには 内蔵されたメカニズムがあり 歴史的なデータも多くありません
この戦略にはいくつかのリスクがあります:
購入シグナルにはエラーがあり 損失は完全に回避できません
不適切なパラメータ設定が戦略のパフォーマンスに影響を与える可能性があります.
株価が急激に変動すると指標の失敗の確率は高まります
市場動向を判断できず,熊市でも買い信号を生む.
これらのリスクは,パラメータを調整し,ストップ・ロスを設定し,市場の動向を考慮し,等により軽減できます.しかし,定量戦略は完全に損失を回避することはできません.特定のリスクは負わなければなりません.
戦略は,次の側面でも最適化できます.
他の技術指標を組み合わせて全体的な傾向を決定し,高いレベルでのポジション開設を避ける.
ストップ・ロスのメカニズムを増やして 最大のシングル・ロスを制御する.
最適なパラメータを見つけるために,異なる指標パラメータの組み合わせをテストする.
誤った正の確率を減らすために オープニング条件を増やします
取引コストを考慮し 最低利益目標を設定します
これらの最適化は 戦略の安定性を向上させ 損失を軽減し 戦略の価値を最大化することができます
ストーカスティック・ヴォルテックス戦略は,価格逆転信号と上昇勢力の信号を考慮する.これは典型的な逆転戦略である.株式価格が過売り地域から反転するときに機会を掴み,虚偽のブレイクアウトを避けるために上向きの勢いを決定するためにヴォルテックス指数を使用する.この柔軟で実行しやすい戦略には制御可能なリスクがあり,良い定量戦略である.しかし,どの戦略も市場リスクを完全に回避することはできません.我々は慎重に扱って,戦略のより大きな価値を発見するために可能な最適化スペースに注意を払うべきです.
/*backtest start: 2022-12-14 00:00:00 end: 2023-12-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Stochastic and Vortex Strategy", overlay=true) // Stochastic Oscillator settings kPeriod = input(14, title="K Period") dPeriod = input(3, title="D Period") slowing = input(3, title="Slowing") k = sma(stoch(close, high, low, kPeriod), slowing) d = sma(k, dPeriod) // Vortex Indicator settings lengthVI = input(14, title="Vortex Length") tr = max(max(high - low, abs(high - close[1])), abs(low - close[1])) vmPlus = abs(high - low[1]) vmMinus = abs(low - high[1]) viPlus = sum(vmPlus, lengthVI) / sum(tr, lengthVI) viMinus = sum(vmMinus, lengthVI) / sum(tr, lengthVI) // Buy condition buyCondition = crossover(k, d) and viPlus > viMinus if (buyCondition) strategy.entry("Buy", strategy.long) plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plot(k, title="%K", color=color.blue) plot(d, title="%D", color=color.orange) hline(80, "Overbought", color=color.red) hline(20, "Oversold", color=color.green) plot(viPlus, title="VI+", color=color.purple) plot(viMinus, title="VI-", color=color.red)