ストキャスティクス指標のクロスオーバーに基づく双方向のストッププロフィットおよびストップロス戦略


作成日: 2024-03-08 15:12:42 最終変更日: 2024-03-08 15:12:42
コピー: 1 クリック数: 568
1
フォロー
1617
フォロワー

ストキャスティクス指標のクロスオーバーに基づく双方向のストッププロフィットおよびストップロス戦略

概要

この戦略は,ランダムな指標 (((Stochastic Oscillator)) の交差信号を利用して,買賣操作を誘発する.ランダムな指標の%K線が,下から上へ%D線を横切って,%K値が20を下回ると,ポジションを開く.%K線が,上から下へ%D線を横切って,%K値が80を超えると,ポジションを開く.同時に,戦略は,ストップ (((Take Profit) とストップ (((Stop Loss) の距離を設定して,損失を拡大しないようにポジションを管理する.さらに,この戦略は,ポジションを平らげるための論理的条件を設定します.

戦略原則

  1. 14周期ランダムな指標の%K値と%D値を計算し,単純移動平均を使用してそれらを平滑に処理する.
  2. %K線と%D線が交差するかどうかを判断する:
    • %K線が%D線を下から上へと横断し,%K値が20を下回ると,買入シグナルを誘発し,ポジションを開く.
    • %K線が%D線を上から下へと横切り,%K値が80を超えると,セールシグナルをトリガーして,空調を打開する.
  3. ストップとストップダストの距離を設定する (Ticks単位で),開いたポジションを管理するために:
    • 多頭ポジションの場合は,ストップ価格を,開設価格の上のTPのTicks,ストップ価格を,開設価格の下のSLのTicksとして設定します.
    • 空頭ポジションの場合は,ストップ価格を,開設価格より下にあるTPのTicks,ストップ価格を,開設価格より上にあるSLのTicksとして設定します.
    • 価格がストップ・ストップ・価格に達すると,対応するポジションをクリアします.
  4. 論理条件の平仓設定:
    • %K線が%D線を上から下へと横断し,%K値が80より小さいとき,すべての多頭ポジションを平らにする.
    • %K線が%D線を下から上へと横断し,%Kの値が20より大きいときは,すべての空頭ポジションを平らにする.

優位分析

  1. この戦略は,ランダムな指標を主要取引シグナル指標として使用し,ランダムな指標は量的な取引で広く使用され,市場の超買超売状態をよりよく捉えることができる.
  2. ストップ・ストップ・損失と論理条件の平仓を同時に設定した戦略は,ある程度リスクをコントロールし,損失拡大を防ぐことができます.
  3. 戦略の論理は明確で,理解しやすく,実行しやすく,初心者の学習と使用に適しています.

リスク分析

  1. ランダムな指標は,波動的な市場において,誤差信号を多く発信し,取引頻度が高くなり,取引コストが増加する可能性があります.
  2. この戦略はポジションに動的調整を施さないため,市場が激しく波動すると,固定ストップ・ストップ・損失距離はリスクを効果的にコントロールできない可能性がある.
  3. 戦略のパラメータ (例えば,ランダムな指標周期,ストップ・ストップ・ダスト・ディスタンスなど) は固定であり,異なる市場状況に最適化されていないため,戦略の適応性に影響を与える可能性があります.

最適化の方向

  1. 他の技術指標または市場情緒指標を導入し,ランダムな指標と組み合わせて使用することで,取引信号の信頼性を高め,誤差信号を減らすことができます.
  2. ポジション管理を最適化して,市場の変動状況に応じてストップ・ストップ・損失距離を動的に調整するか,またはケリー公式などのより高度な資金管理方法を採用する.
  3. 遺伝的アルゴリズム,格子検索などの最適化方法を使用して,戦略パラメータを最適化し,異なる市場状況に適した最適なパラメータの組み合わせを見つけます.
  4. 取引の時間帯や取引品種の変動率などのフィルター条件を追加することを検討し,不利な市場環境下で取引を減らす.

要約する

ランダム指標の交差に基づく二方向ストップ・ストップ・ストラップ戦略は,ランダム指標の交差信号によって買取り操作を誘発し,ストップ・ストラップと論理条件平仓を設定してリスクを管理する簡単な,わかりやすい量化取引戦略である.この戦略の優点は,論理的に明確であり,初心者向けに学習・使用するものである.しかしながら,同時に,いくつかのリスクもある.例えば,ランダム指標は,波動的な市場でエラー信号を多く発信し,固定されたポジション管理方法は,異なる市場状況に適応できない.

ストラテジーソースコード
/*backtest
start: 2024-02-29 00:00:00
end: 2024-03-07 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("How to force strategies fire exit alerts not reversals", initial_capital = 1000, slippage=1, commission_type = strategy.commission.cash_per_contract, commission_value = 0.0001, overlay=true) 
// disclaimer: this content is purely educational, especially please don't pay attention to backtest results on any timeframe/ticker

// Entries logic: based on Stochastic crossover
k = ta.sma(ta.stoch(close, high, low, 14), 3)
d = ta.sma(k, 3)
crossover = ta.crossover(k,d)
crossunder = ta.crossunder(k,d)

if (crossover and k < 20)
	strategy.entry("Buy", strategy.long, alert_message="buy")
if (crossunder and k > 80)
	strategy.entry("Sell", strategy.short, alert_message="sell")

// StopLoss / TakeProfit exits:
SL = input.int(600, title="StopLoss Distance from entry price (in Ticks)")
TP = input.int(1200, title="TakeProfit Distance from entry price (in Ticks)")
strategy.exit("xl", from_entry="Buy", loss=SL, profit=TP, alert_message="closebuy")
strategy.exit("xs", from_entry="Sell", loss=SL, profit=TP, alert_message="closesell")

// logical conditions exits:
if (crossunder and k <= 80)
	strategy.close("Buy", alert_message="closebuy")
if (crossover and k >= 20)
	strategy.close("Sell", alert_message="closesell")