動的ポジション利益追跡取引戦略


作成日: 2024-02-27 14:43:17 最終変更日: 2024-02-27 14:43:17
コピー: 0 クリック数: 882
1
フォロー
1617
フォロワー

動的ポジション利益追跡取引戦略

概要

この記事では,ダイナミック・ホールディング・ポジション・利益を追跡するトレード戦略であるという定量取引戦略を紹介する.この戦略は,ATR指標に基づくダイナミック・アウト・ストップ・ストップラインを設定し,価格が突然有利な状況に現れた後,1〜2Kライン内での急速なストップを実現し,価格が再び調節されても損失を防ぐ.

戦略原則

この戦略の取引の論理はシンプルで明快です.具体的には,以下のステップが含まれています.

  1. 14期SMAと28期SMAの形式の均線交差を用いて,多買と空売りの信号である.14期平均線上を通過する28期平均線を,多買する.14期平均線下を通過する28期平均線を,空売りする.

  2. ATR指標を計算し,それを乗数で掛けると,動的な出場の停止位置が得られます.例えば,ATR長さを7で掛けると1.5で,動的な停止通路の幅が7期ATRの1.5倍が得られます.

  3. ポジション方向が多頭であれば,高点を加えて動的な止通路の幅を足し,多止線が得られる.ポジション方向が空頭であれば,低点を除いて動的な止通路の幅を足し,空止線が得られる.

  4. 価格がこの動的ストップラインを超えるとすぐにストップオフが行われます.これは,価格が突然の超強の動きの後,1〜2のKラインで利益を捕捉することができます.

上記のステップにより,この戦略は,簡潔で効率的なポジション保持利潤追跡と迅速な停止の効果を実現する.ATR通路は,止線まで動的調整の能力を提供し,新しい1BAR条件は,止線が突然の市場利好の状況でのみ起動することを保証する.これは,止線が早めに終了する状況を効果的に減らすことができる.

優位分析

ダイナミック・ポジション・リターン・トレード戦略は,以下の利点があります.

  1. シンプルでわかりやすく,理解しやすく,初心者向けに.

  2. 動的なATRの停止により,ポジションの利潤を自動的に追跡し,利潤のノードリストを回避できます.

  3. 1BAR高低点条件を追加し,超強行が起きた後にのみ停止が起動し,偽動作を減らす.

  4. 異なるATR長と倍数を設定し,停止力を調整できます.

  5. 速やかに立ち止まり, 動きを把握する.

  6. 拡張性があり,このフレームワークに基づいて他のストップ・ストップ・ストラスト戦略を容易に実装できます.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. ATRの突然の増幅は,早退を妨害する可能性がある.

  2. 市場騒音を効率的にフィルターできず,偽の突破によって誤解されやすい.

  3. 複雑な状況を判断するには,均等な交差点だけで意思決定をすることができません.

  4. ストップ・ロスの仕組みがなく,損失を効果的にコントロールできない.

  5. デフォルトのリスクパラメータ設定は,すべての品種に適していない可能性があり,最適化が必要である.

上記のリスクを低減するために,以下の点で最適化することができます.

  1. フィルタリングメカニズムが追加され,偽信号をフィルタリングする他の指標と組み合わせます.

  2. 単一損失を厳格に管理する.

  3. ウォーク・フォワード・アナリシス (Walk Forward Analysis) を使ってパラメータを最適化する.

  4. 異なる品種ごとに最適化パラメータの組み合わせ.

  5. 機械学習のアルゴリズムを導入し,よりスマートな意思決定を実現する.

最適化の方向

リスク分析によると,この戦略の最適化方向は以下の通りです.

  1. シグナルフィルターを追加: 信号が入った後,MACD,ブリン帯などの指標を組み合わせた他の指標のフィルタを追加して,ノイズによる誤導を避けることができる.

  2. ストップラインを追加: 単一損失を制御するためにATRまたは移動停止に基づくストップラインの設定を追加します.

  3. パラメータ最適化: 機械学習などの方法により,ATR長さ,ATR倍数などのパラメータの設定を最適化します.

  4. リスク調整: 各種取引の特徴に応じてポジション管理とリスクパラメータを調整する.

  5. モデル融合戦略を機械学習やニューラルネットワークなどの他のモデルと融合させ,意思決定の正確性を向上させる.

  6. 外部からの介入:人工介入ノードを追加し,重要な瞬間に人工的に停止停止の位置を決定する.

この戦略の収益安定性を向上させるには,上記のいくつかの方向を最適化することが必要です.

要約する

ダイナミック・ポジション・リターン・トラッキング・トレード・ストラトジーは,全体的に非常に実用的で効率的なストラトジック・ストラトジックである.その考え方は明確で分かりやすい.ダイナミック・ストラトジックは,利潤を自動的に追跡し,超強の状況で迅速にストラトジックすることができる.しかしながら,この戦略にはいくつかのリスクがあり,信号フィルタリングを追加し,ストップ・ロスを追加し,パラメータ・最適化などで改善でき,より複雑な市場環境に適応させることができる.全体的に,この戦略は,私たちに非常に良い戦略の枠組みを提供し,さらなる研究と応用に値する.

ストラテジーソースコード
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Peter_O

//@version=5
strategy("TrailingTakeProfit example", overlay=true, margin_long=100, margin_short=100, default_qty_value = 1, initial_capital = 100)

longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))

if longCondition
    strategy.entry("Long", strategy.long, comment="long", alert_message="long")
if shortCondition
    strategy.entry("Short", strategy.short, comment="short", alert_message="short")

atr_length=input.int(7, title="ATR Length")
atr_multiplier = input.float(1.5, title="ATR Multiplier")
atr_multiplied = atr_multiplier * ta.atr(atr_length)
ttp_top_bracket = strategy.position_size>0 ? high[1]+atr_multiplied : na
ttp_bottom_bracket = strategy.position_size<0 ? low[1]-atr_multiplied : na

plot(ttp_top_bracket, title="ttp_top_bracket", color=color.lime, style=plot.style_linebr, offset=1)
plot(ttp_bottom_bracket, title="ttp_bottom_bracket", color=color.red, style=plot.style_linebr, offset=1)

strategy.exit("closelong", from_entry="Long", limit=ttp_top_bracket, alert_message = "closelong")
strategy.exit("closeshort", from_entry="Short", limit=ttp_bottom_bracket, alert_message = "closeshort")

// var table alertsDisplayTable = table.new(position.top_right, 1, 5, color.black)
// if barstate.islastconfirmedhistory
//     table.cell(alertsDisplayTable, 0, 0, "TradingConnector-compatible alerts sent", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 1, "at Long Entry: long", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 2, "at Short Entry: short", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 3, "at Long Exit: closelong", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 4, "at Short Exit: closeshort", text_color=color.white)