初期利益率移動平均 オープニングベル・エグジット戦略

作者: リン・ハーンチャオチャン, 日付: 2023-12-01 14:32:48
タグ:

img

概要

この戦略は,移動平均のクロスオーバーに基づいて,長期と短期を展開し,高開拓波動に囚われないように,早期の収益統計に基づいて午後のみ終了します.

戦略の論理

この戦略は,異なるパラメータを持つ3つの移動平均値を使用します: 14 日,28 日,56 日線. 14 日線が56 日線を横切ると長行し,下を横切ると短行します.この基本的なアプローチは長期トレンドを追跡します.いくつかのノイズをフィルタリングするために,28 日線を基準として追加し,14 日線も28 日線の上または下にある場合にのみ信号が起動します.

鍵となるイノベーションは,損失を停止し,午後4時から午後5時までのみ利益を得ることである.統計によると,開業後最初の1時間で日々の高低の70%の確率がある.高開業変動の影響を避けるため,通常午後取引時間のみ出口が有効である.

利点分析

この戦略の利点は以下の通りです.

  1. 中長期の傾向を追跡し,過剰な騒音を避ける
  2. 誤ったブレイクを避けるため,ストップ・ロスの論理のために,オープニング・ボラティリティの統計を使用する.
  3. シンプルで直感的な論理,理解し,変更しやすい

リスク と 解決策

リスクもあります:

  1. 特定の株との互換性をテストすることができます.
  2. 休業後も 閉じ込められる危険性がある
  3. バックテスト期間設定が悪くて オーバーフィッティングになる

増進 の 機会

戦略をさらに最適化する方法:

  1. 最適パラメータを見つけるために異なる移動平均の組み合わせをテストする
  2. 特定の株の変動パターンに基づく,精細調整ストップ損失範囲
  3. 罠を避けるために音量フィルターを追加します.
  4. ブレイクアウト後にトライル・プルバックに動的ストップを追加する

結論

ストラテジーは明確でシンプルなロジックを持ち,変動の罠を避けるためにストップロスの開設機能を効果的に使用します.しかし,機会を逃して罠にかかるリスクがあります.パラメータは株ごとに調整する必要があります.全体的に,初心者のためのシンプルで効果的なアイデアです.


/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MAC 1st Trading Hour Walkover", overlay=true)

// Setting up timeperiod for testing
startPeriodYear = input(2014, "Backtest Start Year")
startPeriodMonth = input(1, "Backtest Start Month")
startPeriodDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(startPeriodYear, startPeriodMonth, startPeriodDay, 0, 0)

stopPeriodYear = input(2025, "Backtest Stop Year")
stopPeriodMonth = input(12, "Backtest Stop Month")
stopPeriodDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(stopPeriodYear, stopPeriodMonth, stopPeriodDay, 0, 0)

// Moving Averages
ema14 = ema(close, 14)
ema28 = ema(close, 28)
sma56 = sma(close, 56)

// Plot
plot(ema14, title="ema14", linewidth=2, color=green)
plot(ema28, title="ema28", linewidth=2, color=red)
plot(sma56, title="sma56", linewidth=3, color=blue)

// Strategy
goLong = cross(ema14, sma56) and ema14 > ema28
goShort = cross(ema14, sma56) and ema14 < ema28

// Strategy.When to enter
if time >= testPeriodStart
    if time <= testPeriodStop
        strategy.entry("Go Long", strategy.long, 1.0, when=goLong)
        strategy.entry("Go Short", strategy.short, 1.0, when=goShort)

// Strategy.When to take profit 
if time >= testPeriodStart 
    if time <= testPeriodStop 
        strategy.exit("Close Long", "Go Long", profit=2000) 
        strategy.exit("Close Short", "Go Short", profit=2000) 

// Strategy.When to stop out 
// Some studies show that 70% of the days high low happen in the first hour 
// of trading. To avoid having that volatility fire our loss stop we 
// ignore price action in the morning, but allow stops to fire in the afternoon. 
if time("60", "1000-1600") 
    strategy.exit("Close Long", "Go Long", loss=500) 
    strategy.exit("Close Short", "Go Short", loss=500)

もっと