Strategi Pullback Momentum

Penulis:ChaoZhang, Tarikh: 2024-01-23 15:23:14
Tag:

img

Ringkasan

Strategi ini bertujuan untuk mengenal pasti peluang pulback yang berpotensi di pasaran. Ia menggunakan sistem purata bergerak berganda dengan purata bergerak jangka panjang (MA1) dan purata bergerak jangka pendek (MA2). Matlamat utama adalah untuk pergi lama apabila harga penutupan di bawah MA1 tetapi di atas MA2, menandakan kemungkinan pulback dalam trend keseluruhan.

Logika Strategi

Strategi ini menggunakan dua purata bergerak: MA1 (jangka panjang) dan MA2 (jangka pendek). Logiknya adalah bahawa jika harga menarik kembali seketika untuk menguji sokongan trend jangka panjang, ia mungkin membentangkan peluang yang panjang. Khususnya, jika harga penutupan kekal di atas sokongan jangka panjang (MA1), trend utama tetap utuh. Tetapi jika harga penutupan memecahkan di bawah MA jangka pendek (MA2) tetapi masih memegang di atas MA jangka panjang (MA1), ia menandakan persediaan pullback buku teks. Seseorang boleh pergi lama di sini dengan stop-loss dan bertujuan untuk harga bergerak kembali di atas MA jangka pendek.

Analisis Kelebihan

Kelebihan strategi ini termasuk:

  1. Mudah dilaksanakan dan mudah difahami dengan penyesuaian parameter yang fleksibel
  2. Mengambil pengaruh MAs berganda untuk mengenal pasti trend utama dan mengelakkan perdagangan yang bertentangan dengan trend
  3. Penapis masa yang boleh disesuaikan untuk mengelakkan haid yang tidak normal
  4. Saiz kedudukan yang boleh diselaraskan untuk memenuhi pilihan risiko yang berbeza
  5. Mekanisme stop-loss untuk mengehadkan risiko penurunan

Analisis Risiko

Risiko yang perlu diketahui:

  1. Pemulihan gagal jika harga terus menurun dan stop-loss dicapai
  2. Pembalikan trend utama jika kawasan sokongan utama dilanggar
  3. Whipsaws dan perbezaan dengan tindakan harga yang tidak menentu
  4. Perdagangan yang hilang dari penapis masa sub-optimal

Beberapa cara untuk mengoptimumkan dan mengurangkan risiko:

  1. Mengoptimumkan parameter MA untuk meningkatkan kualiti isyarat
  2. Tingkat stop-loss yang halus untuk memaksimumkan keuntungan sambil meminimumkan risiko
  3. Sesuaikan penapis masa untuk memberi tumpuan kepada tempoh perdagangan terbaik
  4. Ujian di instrument dan persekitaran pasaran yang berbeza

Peluang Peningkatan

Beberapa cara untuk meningkatkan strategi:

  1. Mengoptimumkan parameter MA untuk mencari kombinasi terbaik
  2. Uji mekanisme stop-loss yang berbeza seperti trailing atau stop chandelier
  3. Tambah penapis tambahan seperti jumlah atau turun naik
  4. Menggabungkan peraturan saiz kedudukan seperti menambah di salib emas dan mengurangkan di salib kematian
  5. Membina dalam mekanisme mengambil keuntungan automatik
  6. Backtest untuk menganalisis metrik utama dan memuktamadkan parameter

Kesimpulan

Ringkasnya, ini adalah strategi pulback pembalikan purata yang mudah. Ia mengenal pasti persediaan pulback dengan pendekatan MA berganda dan menguruskan risiko dengan hentian adaptif. Strategi ini mudah difahami dan dilaksanakan dengan penyesuaian fleksibel. Langkah seterusnya adalah pengoptimuman lebih lanjut di sekitar elemen seperti parameter MA, hentian kerugian, penapis untuk menjadikan strategi lebih mantap.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
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/
// © ZenAndTheArtOfTrading / www.PineScriptMastery.com
// @version=5
strategy("Simple Pullback Strategy", 
     overlay=true, 
     initial_capital=50000,
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100, // 100% of balance invested on each trade
     commission_type=strategy.commission.cash_per_contract, 
     commission_value=0.005) // Interactive Brokers rate

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2           = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent   = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose    = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)

// Check filter(s)
f_dateFilter =true

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition   = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance    = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice       = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition   = strategy.position_size > 0 and stopDistance > i_stopPercent

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)

Lebih lanjut