2つの移動平均値モニタリングモデル

作者: リン・ハーンチャオチャン,日付: 2023年10月17日 16:33:29
タグ:

img

概要

この戦略は,二重指数関数移動平均 (EMA) と移動平均クロスオーバー (MACD) の指標の組み合わせを使用して,短期的に過大評価された株式を特定し,価格低下から利益を得るためにショートポジションを取ります.この戦略は,価格変化に迅速に対応するEMAの能力と,モメントの方向性を監視するMACDの強さを最大限に活用し,牛と熊の間の転換点で短期間の利益機会を把握します.

戦略の論理

  1. 8 日間 EMA と 26 日間 EMA を計算します. 8 日間 EMA が 26 日間 EMA を越えると,それは買い信号とみなされます.

  2. MACD を計算する際には,DEA と呼ばれる差の12日 EMA,26日 EMA,および9日 EMA を使います.MACD が DEA を越えると,それは購入信号とみなされます.

  3. 入場規則: 8 日間 EMA > 26 日間の EMA と MACD は DEA を越えて,両方の条件を満たす場合,長くなります.

  4. 出口ルールは,入場価格の3%でストップロスを設定し,入場価格の1%でストップロスを設定し,いずれかに触れたときに出口します.

この戦略は,価格に対するEMAの迅速な反応とモメント方向に関するMACDの判断の両方を活用し,牛から熊への重要な転換点を特定する.Fast EMAは,より遅いEMAに対する短期内価値の訂正を反映し,MACDは移動平均の方向を予測する取引力の変化を反映し,ダブル指標を使用して取引機会を把握する精度を向上させる.

利点分析

  1. EMAとMACDの組み合わせは,取引信号の把握の精度を向上させる.EMAは価格動向を捉え,MACDはモメンタム方向の変化を判断し,短期的な極端を特定し,偽のブレイクによる損失を回避する.

  2. トレイリングストップ損失はリスクを制御し,タイミングで退出します. 1% トレイリングストップはエントリー後に設定され,損失拡大を回避します.

  3. 戦略は2022年の全熊市で バックテストされます リアルな取引環境をシミュレートします

  4. 柔軟なパラメータ調整 ストップ損失比 ポジションサイズ比は 個人のリスク優先順位に合わせて調整できます

リスク分析

  1. 頻繁な取引は,注意深く追跡する必要があります. 5 分間のタイムフレームは,入口と出口の頻度が高いことを意味し,取引のフォローアップに十分な時間が必要です.

  2. 遅延ストップ損失は早速終了する可能性があります. 遅延ストップ損失が過度に狭くなると早速終了につながる可能性があります.

  3. EMAとMACDはトレンド市場でうまく機能する.

  4. 取引コストは考慮する必要があります.各取引には佣金があり,頻繁な取引はコストを増加させます.

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

  1. EMA 期間パラメータを調整してエントリーと出口を最適化します.EMA 期間を短縮し,最適な組み合わせを見つけるために EMA 間のスプレッドを拡大してテストできます.

  2. 早期ストップリスクを低減するためにストップ損失比を最適化する. 遅延ストップ損失を適切に拡大することで,過度に攻撃的なストップを避ける.

  3. 最適な保持期間を見つけるために異なる保持期間をテストします. 最適な保持期間を特定するために異なる保持期間の収益を評価します.

  4. 他の技術的なフィルターを追加することを評価します.取引決定の有効性を向上させるために波動性指数などを追加することをテストします.

結論

この二重EMAとMACDの取引戦略は,ショートカットと利益を得るための短期的な引き戻し機会を把握することを目的としています.この戦略は,EMAの急速な反応とMACDの動量変化判断力を完全に活用して,二重確認による取引タイミングの精度を向上させます.最適化スペースはパラメータチューニング,スリップ制御,保持期間などにあります.注意深いパラメータ最適化は良いリターンにつながる可能性があります.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule

//@version=5
// strategy('Fast EMA above Slow EMA with MACD (by Coinrule)',
//          overlay=true,
//          initial_capital=1000,
//          process_orders_on_close=true,
//          default_qty_type=strategy.percent_of_equity,
//          default_qty_value=30,
//          commission_type=strategy.commission.percent,
//          commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0

// EMAs 
fastEMA = ta.ema(close, 8)
slowEMA = ta.ema(close, 26)
plot(fastEMA, color = color.blue)
plot(slowEMA, color = color.green)
//buyCondition1 = ta.crossover(fastEMA, slowEMA)
buyCondition1 = fastEMA > slowEMA


// DMI and MACD inputs and calculations
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)
buyCondition2 = ta.crossover(macd, macd_signal)


// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01

// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0

longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999
    

if (buyCondition1 and buyCondition2 and notInTrade and timePeriod)
    strategy.entry(id="Long", direction = strategy.long)

strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)


//if (sellCondition1 and sellCondition2 and notInTrade and timePeriod)
//strategy.close(id="Close", when = sellCondition1 or sellCondition2)

もっと