ストカスティック・クロスオーバーに基づいた双方向ストップ・ロス・テイク・プロフィート戦略

作者: リン・ハーンチャオチャン,日付: 2024-03-08 15:12:42
タグ:

img

概要

この戦略は,ストコスタスティックオシレーターのクロスオーバー信号を利用し,買い売り操作を誘発する. %K線が%D線上を横切ると,%K値が20以下になると,ロングポジションを開く. %K線が%D線下を横切ると,%K値が80以上になると,ショートポジションを開く.また,戦略セットは,ポジションを管理し,損失の拡大を防ぐために利益とストップ損失距離を取ります.さらに,戦略は,ポジションを閉じるために論理的条件も設定します.ストコスタスティックオシレーターが開示信号の反対のクロスオーバー信号を示したとき,利益を得たりストップ損失価格に達しなかったとしても,対応するロングまたはショートポジションを閉じる.

戦略原則

  1. 14 期間のストカスティックオシレーターの %K と %D の値を計算し,単純な移動平均を用いて均等化します.
  2. 線 %K と線 %D が交差しているかどうかを決定する:
    • %K線が %D線の上を横切って,%K値が 20未満になると,買い信号が起動し,ロングポジションが開きます.
    • %K線が %D線以下を横切って,%K値が80を超えると,売り信号が起動し,ショートポジションが開きます.
  3. オープンポジションの管理のために,取利益とストップ・ロスの距離を (ティックスで) 設定する:
    • ロングポジションでは,取利益価格 TP をエントリー価格より高く,ストップ・ロスの価格 SL をエントリー価格より低く設定します.
    • ショートポジションでは,取利益価格 TPをエントリー価格を下回し,ストップ・ロスの価格 SLをエントリー価格上回します.
    • 価格が利得またはストップ・ロスの値に達すると,対応するポジションを閉じる.
  4. ポジションを閉じるための論理条件を設定する:
    • %K 線が %D 線を下に横切って,%K 値が 80 未満または 80 未満である場合,すべてのロングポジションを閉じる.
    • %K 線が %D 線を横切って,%K 値が 20 以上または 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")

もっと