ダイナミックホールディングス 収益を追跡する取引戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-27 14:43:17
タグ:

动态持仓盈利追踪交易策略

概要

本文は,主に動的持股利潤追跡取引戦略と呼ばれる動的持股利潤追跡取引戦略の定量化取引戦略について説明する.この戦略は,ATR指標に基づく動的出場停止線を設定することで,急激に有利な市場が発生した後の1-2K線内で迅速な停止を図り,再び価格を動かすことを防ぐ.

戦略の原理

この戦略の取引論理は非常にシンプルで明確です.具体的には,以下のステップを含みます.

  1. 14期SMAと28期SMAの形式の平均線交差が多売りと空売りの信号として用いられる. 14期SMAが28期平均線を横切ると多買い,14期SMAが28期平均線を横切ると空売りされる.

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

  3. 保持方向が多頭である場合,高点を加えて動的停止通路の幅を合計すると,多止線が得られる.保持方向が空頭である場合,低点を減算して動的停止通路の幅を合計すると,空止線が得られる.

  4. 価格がこのダイナミックストップラインを突破すると,即座にストップアウトする.これは急激な超強市場発生後の1-2Kライン内に利益を捕獲する.

上記のステップにより,この戦略は簡単かつ効率的な持株利潤追跡と迅速な停止の効果を実現する.ATRチャネルは,シールドラインを動的に調整する能力を提供し,新しい1BAR条件は,シールドラインが急激な市場利好条件でのみ起動することを保証する.これは,シールドラインの早期離脱を効果的に減らすことができる.

優位性分析

ダイナミックホールディングの利潤を追跡する取引戦略は,以下のいくつかの利点があります.

  1. シンプルでわかりやすいアイデアで,初心者向けに最適です.

  2. ダイナミックATR停止により,自動的に持株収益を追跡し,収益ノードリストを回避できます.

  3. 1BARの高低条件を追加し,超強市場が発生した後にのみ停止が開始され,偽動が減少します.

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

  5. 広報の報道によると,この事件は10日後に行われた.

  6. 拡張性があり,この枠組みに基づいて他の防災戦略を容易に実現できます.

リスク分析

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

  1. ATRは急激に増強し,早期離脱を阻害する可能性があります.

  2. 市場騒音を効果的にフィルタリングできず,偽の突破によって誤導されやすい.

  3. 複雑な業界を効果的に判断することは不可能です.

  4. 損失を効果的に制御する手段がない.

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

これらのリスクを軽減するために,以下のいくつかの側面から最適化することができます:

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

  2. 損失を止める戦略を増やし,単一損失を厳しく管理する.

  3. ウォーク・フォワード・アナリティスの方法を使ってパラメータを最適化します.

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

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

優化方向

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

  1. 信号フィルタリングを拡張する:信号が入った後,他の指標のフィルタリングを追加することができます.例えば,MACDやブリンバンドなどの指標を組み合わせて,ノイズによる誤導を避ける.

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

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

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

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

  6. 外部の介入■人工介入ノードを増やし,重要な瞬間に人工的に停止停止位置を決定する.

この戦略の収益安定性は,上記の2つの方向性を最適化することで大幅に向上します.

概要

ダイナミックストップ・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレード・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ・トレ


/*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)


もっと見る