ストップ・ロストとテイク・プロフィートと2重移動平均クロスオーバー戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-22 17:30:38
タグ:

img

概要

ストップ・ロスとテイク・プロフィートの二重移動平均クロスオーバー戦略は,トレンドフォローする戦略である.ストキャスト指標から入口と出口信号を決定するために2つの移動平均線KとDの黄金十字と死亡十字を使用する.また,リスクを管理するためにストップ・ロスとテイク・プロフィートを利用する.

戦略の論理

この戦略のコア指標はストコスタスティックの高速線KとスローラインDである.高速線Kは原始ストコスタスティック値の3期間の単純な移動平均線である.スローラインDは高速線Kの3期間の単純な移動平均線である.K線がD線上を横切ると,上向きトレンドとロングエントリを示す黄金十字が生成される.K線がD線下を横切ると,ダウントレンドとショートエントリを示す死亡十字が生成される.

さらに,この戦略は,ストカストティック値が過売れ (20以下) または過買い (80以上) の領域内にいるときにのみ取引信号が起動する条件を設定します.これはいくつかの誤った信号をフィルタリングするのに役立ちます.

この戦略は,市場に入ると,リスクを制御するためにストップ・ロストとテイク・プロフィートを使用する.テイク・プロフィートはエントリー価格から120ティック,ストップ・ロスはエントリー価格から60ティック離れた場所に設定される.価格がいずれかのレベルに達すると,ポジションは閉鎖される.

利点

  • トレンド方向を正確に決定するためにストカスティック指標を使用
  • 過剰販売と過剰購入状態は 誤った信号をフィルタリングします
  • ストップ・ロスト・アンド・テイク・プロフィート・レミット 単一の取引損失と総リスク管理

リスク

  • ストキャスティックは,範囲限定市場において誤った信号を生成する可能性があります.
  • 固定ストップ・ロストと得益は 市場の動的変化に適応できない
  • 最大引き上げを制限できない

リスク対策

  • コンボの確認のためにMACD,KDJなどの他の指標を追加
  • ダイナミックストップ・ロスト・レベルを設定し,利益を取ります.
  • 最大引き上げ出口メカニズムを追加する

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

  • MACD,KDJ などと組み合わせることで信号の精度が向上します
  • 動的ストップ・ロース/得益ベースをATRに設定する
  • 最大抽出終了基準を追加する
  • 最適なパラメータのためにストップ損失/取利益係数を最適化する

概要

ストップ・ロストとテイク・プロフィートのダブル・ムービング・平均クロスオーバー戦略は,シンプルで実践的なトレンドフォロー戦略である.リスク制御のためにエントリータイムリングとストップ・ロスト/テイク・プロフィートのダブル・ムービング・平均システムをストコハスティックで利用する.この効果的で実行が簡単な戦略は,アルゴリズム取引に適している.さらなる最適化は,安定した収益性の高い取引戦略に変えることができる.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Strategy alerts workaround", 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(60, title="StopLoss Distance from entry price (in Ticks)")
TP = input.int(120, 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")

もっと