黄金の価値の日々の移動平均追跡戦略

作者: リン・ハーンチャオチャン開催日:2024年01月12日 11:54:21
タグ:

img

概要

この戦略は,先日の開閉価格,高速EMA線,遅いEMA線の組み合わせを使用して,ユーザーによって定義された取引時間内に市場価値の方向性を決定し,対応する長または短入りをします.一方,この戦略は,利益をロックまたは損失を制限するためにトライリングストップ損失を使用します.

戦略の論理

この戦略は主に金価の方向性についての判断を2つの側面に基づいています.

  1. 前日の閉店価格の上昇と低下.閉店価格が開店価格より高くなった場合,その日の全体価値が上昇したことを示します.閉店価格が開店価格より低い場合は,その日の全体価値が低下したことを示します.

  2. 50期間の速いEMAラインと200期間の遅いEMAラインの間の位置関係. 速いラインがスローラインよりも高くなった場合,短期的な価値上昇速度が長期的トレンドよりも大きいことを意味します. 速いラインがスローラインよりも低くなった場合,短期的な価値上昇速度が長期的トレンドよりも低いことを意味します.

ロングコンディションが起動すると,前日の閉じる値がオープン値より高く,現在の価格が前日の開ける値より高く,速いEMAがスローEMAより高く,ユーザーが定義した取引時間内であれば,ストラテジーはロングゴールドになります.

ショートコンディションが起動すると,前日の閉じる値がオープン値よりも低く,現在の価格が前日の開ける値よりも低く,速いEMAがスローEMAより低く,ユーザーが定義した取引時間内に,戦略はゴールドをショートします.

さらに,この戦略は,利益をロックまたは損失を制限するためにトライリングストップ損失を使用します.トライリングストップ距離は,最初のユーザー設定と移動ステップに基づいて調整されます.

利点分析

この戦略の利点は次のとおりです.

  1. 複数の指標を使って 金の価値の方向性を判断すると 悪い取引の確率が減ります

  2. トレイリングストップは利益を効果的に確保し,トレンドが逆転すると,リスクを低減して,タイミングで退場することができます.

  3. ユーザは,機関による取引中に閉じ込められないように,自分の取引時間に基づいて適切な取引窓を選択できます.

  4. 市場変化に応じて EMA 期間値を調整し最適化することができ,戦略をより柔軟にします.

リスク分析

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

  1. 突発的な出来事により,手動による介入や,より緩やかなストップ損失距離が必要となる大きな損失が発生する可能性があります.

  2. EMAは市場の騒音を完全にフィルタリングすることはできません. 誤った信号は不要な取引を引き起こす可能性があります. パラメータを最適化したり,より多くのフィルターを追加することができます.

  3. 誤った尾行停止距離設定もリスクを増やす - 太りすぎは早めに停止し,太りすぎは損失を効果的に制御することができない.最適な値を決定するには広範なテストが必要です.

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

戦略は,次の側面でも最適化できます.

  1. 誤ったEMA信号を減らすために,MACD,ボリンジャー帯など,シグナルフィルタリングのための他の技術指標を追加します.

  2. 適応式ストップに切り替える ストップ距離を市場変動に基づいて 賢く調整する

  3. ポジションのサイズの規則を追加し,よりよいリスク管理と単一の取引損失の影響を減らすために部分的な退出を許可します.

  4. マシン学習モデルを追加して 傾向の方向性を決定し より多くの歴史的データを利用して 精度を向上させます

  5. 高戦略参加間隔をターゲットにするために,ガウス分布を使用して取引時間窓選択を最適化します.

結論

トレイルストップは,トレンドフォロー戦略の1つである.複数の指標を組み合わせて上下値トレンドを決定し,強固であると考えられる.トレーリングストップアプリケーションは,効果的な損失制御も可能にします.指標とストップ損失規則のさらなる最適化により,リターンとリスク管理のバランスが向上します.仮想通貨取引に参加したいという投資家の知識に適しています.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("My Strategy", overlay=true)

// Inputs for user to modify
startHour = input(11, title="Start Hour")
endHour = input(16, title="End Hour")
trailingStop = input(100, title="Trailing Stop Start (pips)")
trailingStep = input(10, title="Trailing Step (pips)")

// Define the EMAs
longEma = ema(close, 200)
shortEma = ema(close, 50)

// Calculate daily open, high, low, close
daily_open = security(syminfo.tickerid, "D", open[1])
daily_close = security(syminfo.tickerid, "D", close[1])

// Time conditions
timeAllowed = (hour >= startHour) and (hour <= endHour)

// Define long condition based on your criteria
longCondition = (daily_close > daily_open) and (close > daily_open) and (shortEma > longEma) and timeAllowed

// Define short condition based on your criteria
shortCondition = (daily_close < daily_open) and (close < daily_open) and (shortEma < longEma) and timeAllowed

// Enter the trade
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// Trailing Stop Loss
strategy.exit("Exit Long", "Long", trail_points = trailingStop / syminfo.mintick, trail_offset = trailingStep / syminfo.mintick)
strategy.exit("Exit Short", "Short", trail_points = trailingStop / syminfo.mintick, trail_offset = trailingStep / syminfo.mintick)

// Plotting
plot(daily_open, color=color.red, title="Daily Open")
plot(longEma, color=color.blue, title="200 EMA")
plot(shortEma, color=color.orange, title="50 EMA")


もっと