Golden Cross Trend Mengikuti Strategi

Penulis:ChaoZhang, Tarikh: 2023-11-01 17:02:14
Tag:

img

Ringkasan

Strategi ini menghasilkan isyarat perdagangan berdasarkan salib emas purata bergerak jangka pendek dan jangka panjang untuk menentukan titik masuk, dan menetapkan titik stop loss untuk kedudukan keluar.

Logika Strategi

Strategi ini terutamanya menggunakan persilangan purata bergerak jangka pendek dan jangka panjang untuk menentukan trend pasaran.

  1. Mengira purata bergerak mudah 3 hari short_ma sebagai purata bergerak jangka pendek.

  2. Mengira purata bergerak mudah 19 hari long_ma sebagai purata bergerak jangka panjang.

  3. Apabila short_ma melintasi di atas long_ma, isyarat panjang dihasilkan.

  4. Apabila harga meningkat di atas harga kemasukan * (1 + stop loss %), tutup semua kedudukan.

  5. Apabila short_ma melintasi di bawah long_ma, isyarat pendek dihasilkan.

  6. Ujian belakang dalam julat tarikh tertentu untuk mengehadkan tempoh operasi strategi.

  7. Perdagangan hanya apabila trend_ma purata bergerak 100 hari menunjukkan trend menaik.

Strategi ini menggunakan salib emas purata bergerak. Semasa trend menaik yang berterusan, isyarat panjang yang dihasilkan apabila short_ma melintasi di atas long_ma membolehkan ia menangkap peluang. Isyarat pendek apabila short_ma melintasi di bawah long_ma membantu menguruskan risiko.

Analisis Kelebihan

Kelebihan strategi ini:

  1. Logik yang mudah dan mudah difahami berdasarkan persilangan purata bergerak.

  2. Peraturan kemasukan dan keluar yang jelas yang mengikuti trend dan menguruskan risiko.

  3. Hentikan kerugian untuk mengunci keuntungan apabila trend berbalik.

  4. Hanya berdagang apabila trend keseluruhan naik untuk mengelakkan isyarat palsu.

  5. Tempoh purata bergerak yang boleh disesuaikan dengan pasaran yang berbeza.

  6. Ujian belakang dalam tempoh tertentu membolehkan pengesahan.

Analisis Risiko

Risiko strategi ini:

  1. Sensitif terhadap penyusunan parameter, tetapan yang berbeza mempengaruhi prestasi.

  2. Kurva yang disesuaikan dengan data sejarah, tidak berkesan dalam anomali.

  3. Tidak dapat mengendalikan jurang harga, risiko melebihi stop loss.

  4. Rendah untuk dipukul di pasaran yang berbeza.

  5. Hanya berfungsi dalam pasaran yang jelas, bukan untuk sisi.

  6. Pilihan tempoh backtest mempengaruhi hasil.

Peluang Peningkatan

Strategi ini boleh ditingkatkan dalam aspek berikut:

  1. Uji set parameter yang berbeza untuk mencari nilai optimum.

  2. Masukkan penunjuk lain seperti MACD, Bollinger Bands untuk meningkatkan keputusan.

  3. Gunakan stop loss yang dinamik untuk mengawal risiko dengan lebih baik.

  4. Optimumkan masuk, logik keluar, seperti masuk melarikan diri.

  5. Uji ketahanan dalam keadaan pasaran yang berbeza.

  6. Meneroka pembelajaran mesin untuk penyesuaian parameter dan penjanaan isyarat.

  7. Tambah pengendalian jurang harga dan senario stop loss whipsaw.

Kesimpulan

Strategi yang mudah dan berkesan ini menangkap trend menaik menggunakan persilangan purata bergerak dan menguruskan risiko melalui stop loss. Ia berfungsi dengan baik di pasaran trend yang kuat tetapi mempunyai batasan. Pengoptimuman dan pengujian lanjut diperlukan untuk meningkatkan ketahanan. Secara keseluruhan ia mempunyai logika yang jelas, mudah difahami dan dilaksanakan, sesuai untuk pemula untuk belajar.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 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/
// © Ta3MooChi
//@version=5
strategy("전략", overlay=true,process_orders_on_close = true, pyramiding = 100)

short_ma = ta.sma(close,input.int(3, "단기 이평", minval = 1))
long_ma = ta.sma(close, input.int(19,"장기 이평", minval = 1))

trend_ma = ta.sma(close, input.int(100," 추세 이평", minval = 20, group = "추세 이평"))
up_trend = (trend_ma > trend_ma[1])
use_trend_ma = input.bool(true, title = "추세용 이평 사용", group = "추세 이평" )
inTrendMa = not use_trend_ma or up_trend

useDateFilter = input.bool(true, title = "특정 기간 백테스트", group = "기간 백테스트")
backtestStartDate = input(timestamp("1 Jan 2021"), title = "시작날짜", group = "기간 백테스트")
backtestEndDate = input(timestamp("1 Jan 2022"), title = "종료날짜", group = "기간 백테스트")
inTradeWindow = true

longStopPerc = 1 + input.float(3, "최소수익률%", minval = 1)*0.01

longcondition = ta.crossover(short_ma, long_ma)
shortcondition = ta.crossunder(short_ma, long_ma)

if (longcondition) and inTradeWindow and inTrendMa
    strategy.entry("long", strategy.long)

if (shortcondition) and (close > strategy.position_avg_price*longStopPerc) and inTradeWindow
    strategy.close_all()

if not inTradeWindow and inTradeWindow[1]
    strategy.cancel_all()
    strategy.close_all(comment = "매매 종료")

plot(short_ma,color = color.yellow)
plot(long_ma,color = color.blue)
plot(trend_ma,color = color.gray)
    



Lebih lanjut