Strategi Mengikuti Trend Saluran Golden Cross Celtic


Tarikh penciptaan: 2023-11-02 14:31:10 Akhirnya diubah suai: 2023-11-02 14:31:10
Salin: 1 Bilangan klik: 691
1
fokus pada
1617
Pengikut

Strategi Mengikuti Trend Saluran Golden Cross Celtic

Gambaran keseluruhan

Strategi penelusuran trend saluran Celtic Gold Cross adalah strategi yang hanya berdagang di arah trend. Ia menggabungkan Golden Cross dan saluran Celtic Moving Average sebagai isyarat masuk ke pasaran untuk menangkap arah trend.

Prinsip

Strategi ini menggunakan dua purata bergerak, iaitu purata bergerak jangka pendek dan purata bergerak jangka panjang, untuk membentuk persilangan emas dan persilangan kematian untuk menentukan arah trend. Pada masa yang sama, ia menggunakan kelipatan yang ditentukan oleh pengguna untuk memetakan naik dan turun saluran Keltic dan menghasilkan isyarat perdagangan apabila harga menembusi saluran.

Secara khusus, strategi pertama menilai sama ada purata bergerak jangka panjang berada di atas purata bergerak jangka pendek, dan jika ya, ia akan disilangkan untuk emas, dan ia akan ditakrifkan sebagai tren ke atas; jika purata bergerak jangka pendek berada di bawah purata bergerak jangka panjang, ia akan disilangkan untuk kematian, dan ia akan ditakrifkan sebagai tren ke bawah.

Berdasarkan penghakiman trend, jika harga menembusi ke arah atas, menghasilkan isyarat melakukan lebih banyak; jika harga jatuh ke arah bawah, menghasilkan isyarat melakukan lebih sedikit. Pengguna boleh menyesuaikan sendiri tempoh purata bergerak dan lebar saluran, untuk menyesuaikan parameter strategi.

Selepas masuk, strategi menggunakan pengganda ATR Stop Loss Stop Loss yang ditentukan oleh pengguna untuk menetapkan tahap Stop Loss Stop Loss. Pada masa yang sama, strategi juga menyediakan syarat-syarat Stop Loss dan Stop Loss tambahan yang dapat mengawal kedudukan dengan lebih fleksibel.

Analisis kelebihan

Strategi ini menggabungkan kelebihan trend tracking dan penembusan saluran untuk menilai pergerakan pasaran dan peluang untuk menangkap trend. Kelebihan spesifiknya adalah sebagai berikut:

  1. Menggunakan golden cross untuk menilai arah trend, ia boleh menyaring dengan berkesan perdagangan bising yang tidak sesuai dengan trend besar.

  2. Penembusan saluran keltik yang digabungkan dengan penilaian arah trend dapat meningkatkan ketepatan masa masuk ke pasaran.

  3. Mekanisme Stop Loss boleh mengunci keuntungan dan mengawal risiko secara aktif.

  4. Parameter strategi boleh disesuaikan secara fleksibel untuk pelbagai jenis dan keadaan pasaran.

  5. Anda boleh melakukan lebih banyak kerosakan pada masa yang sama untuk memperluaskan ruang lingkup strategi.

Analisis risiko

Walaupun terdapat banyak kelebihan, strategi ini mempunyai risiko yang perlu diperhatikan:

  1. Ini adalah satu peluang yang tidak dapat dilupakan.

  2. Jika trend besar berubah, ia boleh membawa kepada risiko kerugian.

  3. Tetapan parameter yang tidak betul boleh menyebabkan perdagangan yang terlalu longgar atau terlalu kerap.

  4. Ia memerlukan risiko untuk bermalam di rumah.

  5. Terdapat risiko tertentu untuk kecocokan kurva.

Untuk ini, risiko boleh dikurangkan dengan mengoptimumkan parameter, menyesuaikan kitaran purata bergerak pada masa yang sesuai, atau mengurangkan saiz kedudukan yang sesuai.

Optimum idea

Strategi ini masih boleh dioptimumkan lagi:

  1. Anda boleh mempertimbangkan untuk menambah lebih banyak petunjuk penghakiman, membentuk model pelbagai faktor, meningkatkan ketepatan strategi. Sebagai contoh, masukkan MACD, RSI, dan sebagainya.

  2. Parameter boleh dioptimumkan berdasarkan pembelajaran mesin untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.

  3. Anda boleh mempertimbangkan untuk menyesuaikan keadaan hentian hentian secara dinamik untuk mendapatkan keuntungan yang lebih besar dengan jaminan keuntungan.

  4. Saiz kedudukan boleh disesuaikan mengikut dinamika perubahan kadar turun naik.

  5. Kajian keutamaan parameter untuk pelbagai jenis, membuat kombinasi parameter yang sesuai untuk pelbagai jenis.

  6. Menambah mekanisme untuk mengurangkan frekuensi urus niaga untuk mengurangkan kesan yuran urus niaga.

ringkaskan

Strategi penjejakan trend saluran Celtic Gold Cross adalah strategi penjejakan trend yang lebih stabil dan boleh dipercayai secara keseluruhan. Ia menggabungkan kelebihan penghakiman trend dan penembusan saluran untuk mengenal pasti arah trend pasaran dengan berkesan dan memilih peluang perdagangan dengan kebarangkalian tinggi. Dengan pengoptimuman parameter dan peningkatan mekanisme, strategi ini dapat menjadi alat perdagangan kuantitatif yang kuat.

Kod sumber strategi
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 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/
// © OversoldPOS

//@version=5
// strategy("Keltner Channel Strategy by OversoldPOS", overlay=true,initial_capital = 100000,default_qty_type = strategy.percent_of_equity,default_qty_value = 10, commission_type = strategy.commission.cash_per_order, commission_value = 7)

// Parameters
length = input(21, title="MA Length")
Entrymult = input(1, title="Entry ATR")
profit_mult = input(4, title="Profit Taker")
exit_mult = input(-1, title="Exit ATR")

// Moving Average Type Input
ma_type = input.string("SMA", title="Moving Average Type", options=["SMA", "EMA", "WMA"])

// Calculate Keltner Channels for different ATR multiples
atr_value = ta.atr(length)

basis = switch ma_type
    "SMA" => ta.sma(close, length)
    "EMA" => ta.ema(close, length)
    "WMA" => ta.wma(close, length)
 

//
EntryKeltLong = basis + Entrymult * ta.atr(10)
EntryKeltShort = basis - Entrymult * ta.atr(10)
upper_channel1 = basis + 1 * ta.atr(10)
lower_channel1 = basis - 1 * ta.atr(10)
upper_channel2 = basis + 2 * ta.atr(10)
lower_channel2 = basis - 2 * ta.atr(10)
upper_channel3 = basis + 3 * ta.atr(10)
lower_channel3 = basis - 3 * ta.atr(10)
upper_channel4 = basis + 4 * ta.atr(10)
lower_channel4 = basis - 4 * ta.atr(10)

// Entry condition parameters
long_entry_condition = input(true, title="Long Positions")
short_entry_condition = input(true, title="Enable Short Positions")

// Additional conditions for long and short entries
is_long_entry = ta.ema(close, 20) > ta.ema(close, 50)
is_short_entry = ta.ema(close, 20) < ta.ema(close, 50)

// Additional conditions for long and short entries
MAShort =  input(50, title="Short MA for Golden Cross")
MALong =  input(200, title="Long MA for Golden Cross")
is_long_entry2 = ta.ema(close, MAShort) > ta.ema(close, MALong)
is_short_entry2 = ta.ema(close, MAShort) < ta.ema(close, MALong)

// Exit condition parameters
long_exit_condition1_enabled = input(true, title="Enable Long Profit Taker")
long_exit_condition2_enabled = input(true, title="Enable Long Stop")
short_exit_condition1_enabled = input(true, title="Enable Short Profit Taker")
short_exit_condition2_enabled = input(true, title="Enable Short Stop")

// Take Profit condition parameters
take_profit_enabled = input(true, title="Enable Take Profit Condition")

Takeprofit = basis + profit_mult * atr_value
STakeprofit = basis - profit_mult * atr_value

// Long entry condition
long_condition = long_entry_condition and ta.crossover(close, EntryKeltLong) and is_long_entry2

// Short entry condition
short_condition = short_entry_condition and ta.crossunder(close, EntryKeltShort) and is_short_entry2

// Exit conditions
long_exit_condition1 = long_exit_condition1_enabled and close > Takeprofit
long_exit_condition2 = long_exit_condition2_enabled and close < basis + exit_mult * atr_value
short_exit_condition1 = short_exit_condition1_enabled and close < STakeprofit
short_exit_condition2 = short_exit_condition2_enabled and close > basis - exit_mult * atr_value

// Strategy logic
if (long_condition)
    strategy.entry("Long", strategy.long)
if (short_condition)
    strategy.entry("Short", strategy.short)

if (long_exit_condition1 or long_exit_condition2)
    strategy.close("Long")

if (short_exit_condition1 or short_exit_condition2)
    strategy.close("Short")

// Moving Averages
var float MA1 = na
var float MA2 = na

if (ma_type == "SMA")
    MA1 := ta.sma(close, MAShort)
    MA2 := ta.sma(close, MALong)
else if (ma_type == "EMA")
    MA1 := ta.ema(close, MAShort)
    MA2 := ta.ema(close, MALong)
else if (ma_type == "WMA")
    MA1 := ta.wma(close, MAShort)
    MA2 := ta.wma(close, MALong)

// Plotting Keltner Channels with adjusted transparency
transparentColor = color.rgb(255, 255, 255, 56)

plot(upper_channel1, color=transparentColor, title="Upper Channel 1")
plot(lower_channel1, color=transparentColor, title="Lower Channel 1")
plot(upper_channel2, color=transparentColor, title="Upper Channel 2")
plot(lower_channel2, color=transparentColor, title="Lower Channel 2")
plot(upper_channel3, color=transparentColor, title="Upper Channel 3")
plot(lower_channel3, color=transparentColor, title="Lower Channel 3")
plot(upper_channel4, color=transparentColor, title="Upper Channel 4")
plot(lower_channel4, color=transparentColor, title="Lower Channel 4")
plot(basis, color=color.white, title="Basis")
plot(MA1, color=color.rgb(4, 248, 216), linewidth=2, title="Middle MA")
plot(MA2, color=color.rgb(220, 7, 248), linewidth=2, title="Long MA")