Golden Cross Death Cross Strategi Perdagangan Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2023-10-30 14:42:09
Tag:

img

Ringkasan: Strategi ini melaksanakan perdagangan salib emas dan salib kematian berdasarkan tiga purata bergerak dengan tempoh yang berbeza. Ia pergi lama apabila MA tempoh pendek melintasi di atas MA tempoh panjang, dan pergi pendek apabila MA tempoh pendek melintasi di bawah MA tempoh panjang. Arah trend ditentukan oleh garis MA trend.

Logik Strategi:

  1. Tentukan tiga MA - MA jangka pendek, MA jangka panjang dan MA trend.

  2. Isyarat beli dihasilkan apabila MA tempoh pendek melintasi di atas MA tempoh panjang. Isyarat jual dihasilkan apabila MA tempoh pendek melintasi di bawah MA tempoh panjang.

  3. Periksa sama ada kedua-dua MA pendek dan panjang berada di atas MA trend. Jika tidak, isyarat disaring untuk mengelakkan perdagangan terhadap trend.

  4. Tetapkan stop loss dan mengambil keuntungan sebagai peratusan daripada harga masuk.

  5. Merangka titik persimpangan MA untuk memvisualisasikan isyarat kemasukan.

Kelebihan:

  1. Logik strategi yang mudah dan intuitif, mudah difahami dan dilaksanakan.

  2. Boleh menangkap trend jangka menengah dengan berkesan dan berdagang dengan momentum.

  3. Menyaring dengan trend MA mengelakkan perdagangan terhadap trend.

  4. Tempoh MA boleh diselaraskan dengan keadaan pasaran yang berbeza.

  5. Stop loss yang boleh disesuaikan dan mengambil keuntungan untuk mengawal risiko.

Risiko:

  1. Pergerakan volatile yang tajam boleh mencetuskan stop loss.

  2. Kerugian yang lebih besar apabila trend berbalik.

  3. Penyesuaian parameter yang tidak betul boleh menyebabkan overtrading atau peluang yang hilang.

  4. Kos transaksi perlu dipertimbangkan.

Peningkatan:

  1. Tambah penapis volatiliti seperti ATR untuk mengelakkan isyarat palsu.

  2. Gunakan pembelajaran mesin untuk mengoptimumkan parameter secara dinamik.

  3. Tambah lebih banyak penunjuk seperti MACD untuk menentukan trend.

  4. Melaksanakan stop loss untuk mengunci keuntungan.

  5. Uji balik untuk mencari tahap stop loss dan mengambil keuntungan yang optimum.

Kesimpulan:

Strategi ini menangkap trend dengan berkesan dengan logik yang jelas dan pelaksanaan yang mudah. Mengendalikan risiko dengan penapis trend, menghentikan kerugian dan mengambil keuntungan. Penyesuaian parameter memerlukan pengoptimuman untuk keadaan pasaran. Lebih banyak penunjuk dapat meningkatkan prestasi. Sesuai untuk perdagangan trend jangka menengah. Berprestasi baik dalam perdagangan backtest dan demo. Dalam perdagangan langsung, berhati-hati dengan risiko whipsaws dan risiko pembalikan trend.


/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("XAU M15", overlay=true)

// Define input parameters
long_length = input.int(64, title="Long MA Length")
short_length = input.int(1, title="Short MA Length")
trend_length = input.int(200, title="Trend MA Length")

// Calculate moving averages
long_ma = ta.sma(close, long_length)
short_ma = ta.sma(close, short_length)
trend_ma = ta.sma(close, trend_length)

// Plot moving averages on chart
plot(long_ma, color=color.blue, title="Long MA")
plot(short_ma, color=color.red, title="Short MA")
plot(trend_ma, color=color.green, title="Trend MA")

// Entry conditions
enterLong = ta.crossover(long_ma, short_ma) and long_ma > trend_ma and short_ma > trend_ma
enterShort = ta.crossunder(long_ma, short_ma) and long_ma < trend_ma and short_ma < trend_ma

if (enterLong)
    strategy.entry("Long", strategy.long)

if (enterShort)
    strategy.entry("Short", strategy.short)

// Exit conditions
exitLong = ta.crossunder(long_ma, short_ma)
exitShort = ta.crossover(long_ma, short_ma)

if (exitLong)
    strategy.close("Long")

if (exitShort)
    strategy.close("Short")

// Set stop loss and take profit levels
long_stop_loss_percentage = input(1, title="Long Stop Loss (%)") / 100
long_take_profit_percentage = input(3, title="Long Take Profit (%)") / 100

short_stop_loss_percentage = input(1, title="Short Stop Loss (%)") / 100
short_take_profit_percentage = input(3, title="Short Take Profit (%)") / 100

strategy.exit("Take Profit/Stop Loss", "Long", stop=close * (1 - long_stop_loss_percentage), limit=close * (1 + long_take_profit_percentage))
strategy.exit("Take Profit/Stop Loss", "Short", stop=close * (1 + short_stop_loss_percentage), limit=close * (1 - short_take_profit_percentage))

plotshape(series=enterLong, title="Buy Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny)
plotshape(series=enterShort, title="Sell Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)


Lebih lanjut