5日移動平均ゴールデンクロス追跡戦略


作成日: 2023-09-21 12:16:22 最終変更日: 2023-09-21 12:16:22
コピー: 0 クリック数: 694
1
フォロー
1617
フォロワー

概要

この戦略は5日と78日移動平均金線叉形成の追尾信号に基づいており,ショートライン価格のMomentum突破によってもたらされる機会を捉えることを目的としている.

戦略原則

  1. 3日目,78日目,195日目の加重移動平均を計算します.

  2. 3日線で195日線を横切ると,買取信号を発する.

  3. 3日線が78日線上,78日線が195日線上であるとき,上昇トレンドの通路にあると考えられ,買い信号を発する.

  4. 6ATRダイナミックストップラインを設定し,ストップラインの下からストップ信号を発する.

  5. 3日線が195日線を再び下下する時に停止信号を発する.

優位分析

  1. 多重均線交差組合せで,偽突破を有効にフィルタリングする.

  2. ダイナミック・ストップは,反転停止を回避する設定である.

  3. 回帰は,各取引の平均保有周期が2時間しかなく,短線 Momentum 取引に適している.

  4. 引き戻しの最大値は20%程度です.

リスク分析

  1. 固定平均線パラメータは,市場の変化に適応できない.

  2. 試料の有効期間は1年で,試料の検証戦略を拡張する必要があります.

  3. ストップ・ストップ・損失のパラメータは最適化され,リスクを制御する必要があります.

  4. 価格の上昇に耐えられない

  5. 料金やスライドポイントのコストが高くなる可能性があります.

最適化の方向

  1. 異なる均線パラメータをテストし,組み合わせを最適化する.

  2. ストップ・ストップ・損失パラメータを最適化し,利益リスクを均衡させる.

  3. 刑務所に入ることを制限する条件を設定する.

  4. ポジション管理を最適化し,トレンドに応じて徐々にポジションを増やす.

  5. 種を違うものにして 長い期間をかけて

  6. モンテ・カルロ模擬評価の最大撤退.

要約する

この戦略は均線多重金叉を用いて株価の上昇傾向を判断し,動的ストップ・ローズルを設定し,反測がうまく行っている。しかし,この戦略のサンプリング期間は短く,パラメータの安定性は検証を待っており,空飛ぶ状況を処理できない。サンプル区間の反測をさらに拡大し,誤信号率を減らすためにより多くのフィルタリング条件を導入し,同時にもストップ・ローズパラメータを最適化し,手続費などの取引コストの影響を評価する必要がある。この戦略は,全面的に検査と最適化することができれば,安定したショートライン追尾システムになることができる。

ストラテジーソースコード
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// © FinTasticTrading 2021/2/14
// This is a 5 day moving average crossing long strategy, used in short term momentum trading strategy.
// Momentum trading Strategy: When S&P 500 index is at up trend (or above 60 sma), buy 10+ stocks in top 20% stock RS ranking at equal weight using this MA5X_L strategy. Change stocks when any stock exited by algorithm.  
// Back test start since 2020/7/1, each long entry for condition 1 is $30000, condition 2 is $20000, with max of 2 long positions.
// Setup: 10 minutes chart
// Buy condition 1) 3 wma cross up 180 wma (5day) 2) 3wma > 60wma > 180wma UP Trend Arrangement (UTA)
// Exit condition 1) 3 wma cross under 180 wma 2) position profit > 20% and 3 wma cross under 6 ATRs line (green)
//@version=4

strategy("MA5X_L", overlay=true, pyramiding=2,default_qty_type=strategy.cash, default_qty_value=100000)
s_len = input( 3 )
m_len = input( 78 )  // 2 day moving average
l_len = input( 195)  // equal to 5 Day moving average
xl_len = input(390)  // 10 day moving average
//Draw WMAs
s_ma = wma(close,s_len)
m_ma = wma(close,m_len)
l_ma = wma(close,l_len)
xl_ma = sma(close,xl_len)
plot(s_ma, color=color.yellow, linewidth=2)
plot(m_ma, color=color.fuchsia, linewidth=2)
plot(l_ma, color=color.blue, linewidth=2)
plot(xl_ma, color = color.gray, linewidth=2)

//ATR Stop Profit , length = 40 or 1 day
Periods = input(title="ATR Period", type=input.integer, defval=40)
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=6.0)
sl=hl2-(Multiplier*atr(Periods))
sl1 = nz(sl[1], sl)
sl := s_ma[1] > sl1 ? max(sl, sl1) : sl
plot(strategy.position_size > 0 ? sl:na, title="Stop Loss", style=plot.style_linebr, linewidth=2, color=color.green)

//Backtest since
condition100 = time>=timestamp(2020, 07, 01, 00, 00) 

//Long Entry Condition 1 : s_ma Cross UP l_ma
if crossover(s_ma, l_ma) and condition100
    strategy.entry("X Up", strategy.long, qty = 30000/close, comment="X Up")

//Long Entry Condition 2 : s_ma > m_ma > l_ma
condition31 = s_ma>m_ma and m_ma>l_ma
condition32 = condition31[1]==false and condition31 == true and condition100
strategy.entry("UTA", strategy.long, qty = 20000/close, when = condition32, comment="UTA")

//Long Exit Condition 1 :  3 wma cross under 180 wma
condition50 = crossunder(s_ma, l_ma)
strategy.close_all(when = condition50, comment="X Dn")

//Long Exit Condition 2 : position profit > 20% and 3 wma cross under 6 ATRs line (green)
strategy.close_all(when = crossunder(close,sl) and strategy.openprofit>30000*0.2, comment="Stop")