Strategi kemasukan tarik balik berdasarkan crossover purata bergerak berganda


Tarikh penciptaan: 2024-01-15 14:04:54 Akhirnya diubah suai: 2024-01-15 14:04:54
Salin: 3 Bilangan klik: 520
1
fokus pada
1617
Pengikut

Strategi kemasukan tarik balik berdasarkan crossover purata bergerak berganda

Gambaran keseluruhan

EintSimple Pullback Strategy adalah strategi penarikan balik masuk berdasarkan dua purata bergerak yang bersilang. Strategi ini menggunakan kedua-dua purata bergerak jangka panjang dan jangka pendek terlebih dahulu, menghasilkan isyarat beli apabila purata bergerak jangka pendek menembusi purata bergerak jangka panjang dari bawah.

Selepas masuk, BTC akan memberi isyarat keluar jika harga jatuh ke bawah purata bergerak jangka pendek sekali lagi. Selain itu, strategi ini juga menetapkan stop loss keluar dari medan dan keluar dari kedudukan jika paras stop loss yang ditetapkan dicapai dari titik paling tinggi.

Strategi Logik

Strategi ini adalah berdasarkan kepada crossover emas dengan purata bergerak berganda untuk menentukan masa masuk. Secara khusus, anda perlu memenuhi syarat berikut untuk membuka lebih banyak kedudukan:

  1. Harga penutupan lebih besar daripada purata bergerak jangka panjang ma1
  2. Harga penutupan lebih rendah daripada purata bergerak jangka pendek ma2
  3. Tiada pegangan

Apabila syarat-syarat di atas dipenuhi, strategi ini akan berfungsi sepenuhnya.

Isyarat keluar berdasarkan dua syarat, satu adalah harga jatuh kembali ke bawah purata bergerak jangka pendek, dan yang lain adalah peratusan stop loss yang ditetapkan dari titik tertinggi untuk menarik balik. Syarat keluar khusus adalah sebagai berikut:

  1. Harga penutupan lebih besar daripada purata bergerak jangka pendek ma2
  2. Peratusan Stop Loss Set Dari Titik Kemunduran Tertinggi

Strategi ini akan menghapuskan semua petikan tambahan apabila mana-mana syarat keluar terpenuhi.

Analisis kelebihan

  1. Penggunaan purata bergerak dua kali bersalin dan digabungkan dengan penilaian harga penutupan sebenar, dapat menyaring penembusan palsu dengan berkesan.

  2. Dengan menggunakan penarikan balik, anda boleh memasuki saham selepas harga saham membentuk tikungan pendek.

  3. Ia mempunyai tetapan stop loss yang boleh mengehadkan jumlah maksimum yang boleh ditarik balik.

Analisis risiko

  1. Strategi crossover rata-rata bergerak berganda mudah menghasilkan banyak isyarat perdagangan dan mungkin mengejar kenaikan dan penurunan.

  2. Pengaturan parameter purata bergerak yang tidak betul boleh menyebabkan kurva terlalu licin atau terlalu sensitif.

  3. Ia juga boleh menyebabkan kerugian yang lebih besar.

Arah pengoptimuman

  1. Uji kombinasi parameter purata bergerak jangka pendek dan panjang yang berbeza untuk mencari parameter yang optimum.

  2. Perbandingan menguji kesan persilangan purata bergerak menggunakan harga penutupan dan harga tipikal.

  3. Uji penapis tambahan seperti jumlah dagangan atau indikator turun naik.

  4. Pengukuran dan pengoptimuman stop loss untuk mencari tetapan terbaik.

Ringkasan

EintSimple Pullback Strategy adalah strategi pengulangan purata bergerak ganda yang mudah dan praktikal. Ia menggunakan fungsi petunjuk purata bergerak dengan berkesan, sambil menggabungkan penilaian harga penutupan entiti untuk menyaring isyarat palsu. Walaupun strategi ini mudah menimbulkan masalah perdagangan yang kerap dan mengejar kenaikan dan penurunan, ia dapat diperbaiki lagi dengan pengoptimuman parameter dan penapis tambahan.

Kod sumber strategi
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © 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

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=75, step=1, group="Strategy Parameters", tooltip="Long-term EMA")
i_ma2           = input.int(title="MA 2 Length", defval=9, step=1, group="Strategy Parameters", tooltip="Short-term EMA")
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=true, 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.ema(close, i_ma1)
ma2 = ta.ema(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.fuchsia)