Strategi Dagangan Breakout Songsang


Tarikh penciptaan: 2023-10-25 12:09:40 Akhirnya diubah suai: 2023-10-25 12:38:23
Salin: 0 Bilangan klik: 678
1
fokus pada
1617
Pengikut

Strategi Dagangan Breakout Songsang

Gambaran keseluruhan

Strategi perdagangan terbalik adalah strategi perdagangan yang berdasarkan pada kenaikan atau penurunan harga secara berturut-turut. Strategi ini dilakukan dengan menetapkan kitaran kenaikan atau penurunan harga secara berturut-turut, dan setelah harga membentuk trend tertentu, ia dilakukan untuk mendapatkan keuntungan.

Prinsip Strategi

Strategi ini dijalankan melalui beberapa bahagian:

  1. Tetapkan panjang kitaran kenaikan dan penurunan harga berturut-turut, iaitu consecutiveBarsUp dan consecutiveBarsDown, untuk mencetuskan isyarat perdagangan setelah trend harga kitaran semasa mencapai panjang yang ditetapkan.

  2. Mengira kenaikan harga semasa berbanding turunnya harga pada kitaran sebelumnya. Mengira panjang kitaran kenaikan atau penurunan berturut-turut pada kitaran semasa ups dan dns.

  3. Tetapkan julat masa pengembalian, dengan menggunakan time_cond untuk mengehadkan strategi hanya beroperasi dalam masa pengembalian.

  4. Tetapkan masa dagangan setiap hari dan hadkan isyarat dagangan hanya dalam tempoh masa yang ditetapkan melaluitimetobuy.

  5. Apabila harga naik secara berturut-turut mencapai jangka masa yang ditetapkan, ia akan memberi isyarat lebih, melalui strategi.long; apabila harga turun secara berturut-turut mencapai jangka masa yang ditetapkan, ia akan memberi isyarat lebih, melalui strategi.short

  6. Anda boleh menetapkan harga hentian dan hentian. Apabila anda melakukan lebih banyak, anda boleh menetapkan hentian jangka pendek dan hentian jangka panjang; apabila anda melakukan lebih banyak, anda boleh menetapkan hentian jangka panjang dan hentian jangka pendek.

  7. Anda boleh menetapkan isyarat semasa menghantar isyarat perdagangan.

  8. Berdasarkan parameter dan harga di atas, isyarat melakukan lebih banyak atau melakukan lebih sedikit apabila ia sesuai.

Analisis kelebihan

Strategi terbalik ini mempunyai beberapa kelebihan:

  1. Menangkap titik perubahan harga, operasi terbalik dapat memperoleh keuntungan yang lebih baik. Apabila harga membentuk trend, melakukan operasi terbalik, dapat memperoleh keuntungan apabila harga berbalik.

  2. Parameter yang boleh dikonfigurasi adalah fleksibel, parameter boleh disesuaikan mengikut pasaran. Jumlah kitaran kenaikan dan penurunan berturut-turut boleh disesuaikan, titik berhenti berhenti boleh disesuaikan, tempoh masa perdagangan terhad, parameter boleh dioptimumkan mengikut keadaan sebenar.

  3. Anda boleh menambah stop loss dan mengawal risiko. Anda boleh menetapkan stop loss dan stop loss terlebih dahulu setelah melakukan penutupan tambahan untuk membantu mengawal risiko perdagangan.

  4. Mesej isyarat dagangan boleh ditetapkan untuk memudahkan perdagangan automatik. Isyarat isyarat boleh ditetapkan untuk menghantar isyarat dagangan, dengan menggunakan sistem perdagangan automatik.

  5. Tempoh jangka masa yang boleh ditetapkan untuk menguji strategi. Tempoh jangka masa yang boleh ditetapkan untuk melihat kesan strategi dalam keadaan pasaran yang berbeza.

Analisis risiko

Strategi ini juga mempunyai risiko yang perlu diperhatikan:

  1. Perlu mengelakkan peristiwa berita penting. Tidak dapat menentukan pergerakan harga ketika berita penting dikeluarkan, strategi akan mengeluarkan banyak isyarat shorting pada masa yang sama, menyebabkan kerugian. Perlu mengelakkan waktu penerbitan berita kewangan penting.

  2. Apabila pembalikan tidak jelas, ia tidak berfungsi dengan baik. Apabila trend tidak jelas, operasi pembalikan tidak berkesan dan perlu digunakan dengan berhati-hati.

  3. Risiko penyesuaian data retesting. Strategi pengoptimuman untuk mengelakkan ketergantungan berlebihan pada data retesting, data retesting tidak mewakili trend masa depan. Parameter harus disesuaikan dengan betul semasa hidup.

  4. Frekuensi dagangan yang terlalu tinggi mudah tergesa-gesa. Jika kitaran yang ditetapkan terlalu pendek, frekuensi dagangan terlalu tinggi, tidak menguntungkan keuntungan yang stabil dalam jangka panjang.

  5. Anda boleh mengoptimumkan strategi hentian kerugian yang sesuai untuk mengurangkan risiko. Hentian kerugian tetap yang sedia ada dapat dioptimumkan lebih lanjut sebagai hentian trend dan sebagainya.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan cara berikut:

  1. Menambah mekanisme penilaian trend, mengelakkan pembalikan pasaran yang tidak trend. Anda boleh mengesan indikator seperti kadar turun naik harga, saluran, menilai tahap trend, dan mengelakkan kehilangan titik pembalikan harga.

  2. Mengoptimumkan strategi hentian kerugian sehingga dapat disesuaikan secara automatik dengan turun naik pasaran. Metode seperti hentian peratusan baki dan hentian ATR boleh digunakan untuk membuat pengaturan hentian kerugian lebih pintar.

  3. Menambah penunjuk kapasiti kuantitatif untuk menilai. Menggabungkan penunjuk seperti perubahan jumlah urus niaga, untuk mengelakkan isyarat salah yang dihasilkan semata-mata berdasarkan bentuk K-line.

  4. Kombinasi pelbagai jenis. Menggunakan strategi untuk pelbagai jenis, melakukan kombinasi, dapat menyebarkan risiko untuk satu jenis.

  5. Pengoptimuman parameter dan pembelajaran mesin. Mengumpul lebih banyak data sejarah, mengoptimumkan parameter secara automatik menggunakan kaedah pembelajaran mesin, menjadikan strategi lebih stabil.

ringkaskan

Strategi perdagangan terbalik menerusi operasi terbalik dengan menangkap titik perubahan harga, dapat memperoleh isyarat perdagangan yang baik. Kelebihan strategi ini adalah konfigurasi yang fleksibel, boleh mengawal risiko, sesuai untuk perdagangan automatik. Tetapi ada juga risiko tertentu, perlu terus mengoptimumkan dan menyempurnakan parameter dan strategi untuk mendapatkan keuntungan yang stabil dalam jangka panjang.

Kod sumber strategi
/*backtest
start: 2023-10-17 00:00:00
end: 2023-10-24 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

// Strategy
strategy("Up/Down Strategy - Contrarian", overlay=true, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash)

consecutiveBarsUp = input(1, title='Consecutive Bars Up')
consecutiveBarsDown = input(1, title='Consecutive Bars Down')

price = close

ups = 0.0
ups := price > price[1] ? nz(ups[1]) + 1 : 0

dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0

// Strategy Backtesting
startDate  = input(timestamp("2021-01-01T00:00:00"), type = input.time, title='Backtesting Start Date')
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time, title='Backtesting End Date')

time_cond  = true

//Time Restriction Settings
startendtime = input("", title='Time Frame To Enter Trades')
enableclose = input(false, title='Enable Close Trade At End Of Time Frame')
timetobuy = true
timetoclose = true

// Stop Loss & Take Profit Tick Based
enablesltp = input(false, title='Enable Take Profit & Stop Loss')
stopTick = input(5.0, title='Stop Loss Ticks', type=input.float) / 100
takeTick = input(10.0, title='Take Profit Ticks', type=input.float) / 100

longStop = strategy.position_avg_price - stopTick
shortStop = strategy.position_avg_price + stopTick
shortTake = strategy.position_avg_price - takeTick
longTake = strategy.position_avg_price + takeTick

plot(strategy.position_size > 0 and enablesltp ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 and enablesltp ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 and enablesltp ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 and enablesltp ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")

// Alert messages
message_enterlong  = input("", title="Long Entry message")
message_entershort = input("", title="Short Entry message")
message_closelong = input("", title="Close Long message")
message_closeshort = input("", title="Close Short message")

// Strategy Execution
if (dns >= consecutiveBarsDown) and time_cond and timetobuy
    strategy.entry("Long", strategy.long, stop = high + syminfo.mintick, alert_message = message_enterlong)
    
if (ups >= consecutiveBarsUp) and time_cond and timetobuy
    strategy.entry("Short", strategy.short, stop = low + syminfo.mintick, alert_message = message_entershort)
    
if strategy.position_size < 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closelong)
if strategy.position_size > 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closeshort)
    
if strategy.position_size < 0 and enablesltp and time_cond
    strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size > 0 and enablesltp and time_cond
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)