Strategi Dagangan Swing


Tarikh penciptaan: 2023-10-11 16:29:37 Akhirnya diubah suai: 2023-10-11 16:29:37
Salin: 0 Bilangan klik: 647
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Ini adalah strategi pemantauan trend yang berasaskan purata bergerak bersilang, digabungkan dengan pengurusan hentian hentian dan pengaruh pengaruh, yang bertujuan untuk mengenal pasti trend di pelbagai pasaran dan memaksimumkan keuntungan.

Prinsip Strategi

Strategi ini menggunakan persilangan purata bergerak cepat dan purata bergerak perlahan sebagai isyarat dagangan. Apabila bergerak perlahan melintasi purata bergerak cepat, mengambil kedudukan multihead; apabila bergerak perlahan melintasi purata bergerak cepat, mengambil kedudukan kosong.

Untuk menyaring perdagangan bunyi bising dari bukan trend utama, strategi ini juga memperkenalkan purata bergerak 200 hari sebagai penapis trend. Isyarat perdagangan hanya akan dikeluarkan apabila harga lebih tinggi atau lebih rendah daripada purata bergerak 200 hari.

Strategi ini menggunakan strategi berhenti-rugi perdagangan dalam jangka masa. Selepas perdagangan, titik berhenti dan berhenti ditetapkan dalam perkadaran tetap, misalnya, berhenti-rugi ditetapkan pada 1%, berhenti-rugi adalah 1%, dan apabila harga menyentuh harga berhenti-rugi atau berhenti-rugi, ia akan ditutup.

Untuk meningkatkan keuntungan perdagangan, strategi menggunakan kesan pengaruh. Bergantung pada ciri-ciri pasaran yang berbeza, nisbah pengaruh yang sesuai boleh dipilih, seperti pengaruh 10 kali ganda.

Analisis kelebihan

  • Salah satu kelebihan strategi ini adalah keupayaan untuk mengenal pasti trend dalam pelbagai pasaran, termasuk cryptocurrency, pasaran saham dan niaga hadapan, untuk memperluaskan kebolehgunaan strategi.

  • Penggunaan penyeberangan garis rata-rata dan penapis trend, dapat mengenal pasti arah trend dengan lebih baik, dan memperoleh kadar kemenangan yang lebih baik dalam keadaan trend.

  • Dengan menggunakan strategi stop loss dalam jangka masa, kerugian tunggal dapat dikawal dalam julat yang boleh diterima, yang membantu operasi strategi yang stabil.

  • Leverage boleh meningkatkan keuntungan perdagangan, sehingga memanfaatkan kelebihan strategi.

  • Reka bentuk antara muka visual, menggunakan warna latar belakang yang berbeza untuk menandakan pasaran multihead dan kosong, pengguna dapat menilai keadaan pasaran semasa secara intuitif.

Analisis risiko

  • Strategi ini adalah berdasarkan kepada pemikiran perdagangan trend, dan kesan perdagangan akan diskaun dalam pasaran yang bergolak.

  • Pembatasan kerugian yang ditetapkan dalam peratusan tetap mempunyai risiko untuk dirundingkan, dan pembatasan kerugian harus disesuaikan dengan pasaran tertentu.

  • Leverage meningkatkan skala perdagangan, tetapi juga meningkatkan risiko perdagangan. Perlu mengawal nisbah leverage untuk mengelakkan kehilangan melebihi batas yang boleh diterima.

  • Rata-rata bergerak itu sendiri mempunyai kemunduran, dan ia boleh menyebabkan masalah kelewatan isyarat perdagangan.

Arah pengoptimuman

  • Anda boleh mengkaji prestasi strategi di bawah kombinasi parameter yang berbeza, memilih panjang garis rata-rata perlahan yang lebih baik dalam kombinasi parameter.

  • Indikator atau model lain boleh digabungkan sebagai isyarat penapisan untuk meningkatkan ketepatan strategi. Contohnya, pengenalan ATR Stop Loss, RSI Indikator dan sebagainya.

  • Ia boleh digunakan untuk mengenalpasti trend, seperti DC, dan lain-lain untuk meningkatkan keupayaan strategi untuk menilai trend.

  • Ia boleh digabungkan dengan model pembelajaran mesin untuk mengoptimumkan isyarat strategi dan mengenal pasti masa perdagangan yang lebih berkesan.

  • Anda boleh pertimbangkan untuk menyesuaikan margin stop loss secara dinamik dan menetapkan stop loss yang lebih munasabah berdasarkan turun naik dan keadaan pasaran.

ringkaskan

Strategi ini secara keseluruhannya menggunakan pendekatan trend-tracking yang lebih saintifik sistem, dan dibantu dengan hentian kerugian dan leverage untuk mengawal risiko dan meningkatkan keuntungan. Strategi ini boleh digunakan secara meluas dalam pelbagai pasaran, diharapkan untuk mendapatkan keuntungan tambahan yang stabil.

Kod sumber strategi
/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

////////////////////////////////////////////////////////////////////////////////
// Bozz Strategy
// Developed for Godstime
// Version 1.1
// 11/28/2021
////////////////////////////////////////////////////////////////////////////////

//@version=4
// strategy("Bozz Strategy", "", true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, margin_long=0, margin_short=0)

// ----------------------------- Inputs ------------------------------------- //
source_ma_type = input("EMA", "Source MA Type", options=["SMA", "EMA"])
source_ma_length = input(50, "Source MA Length")
fast_ma_length = input(20, "Fast MA Length")
slow_ma_length = input(50, "Slow MA Length")
use_trend_filter = input(true, "Trend Filter")
trend_filter_ma_type = input("EMA", "Trend Filter MA Type", options=["SMA", "EMA"])
trend_filter_ma_length = input(200, "Trend Filter MA Period")
show_mas = input(true, "Show MAs")
swing_trading_mode = input(false, "Swing Trading")

// -------------------------- Calculations ---------------------------------- //
fast_ma = ema(close, fast_ma_length)
slow_ma = ema(close, slow_ma_length)
source_ma = source_ma_type == "EMA"? ema(close, source_ma_length): 
                                     sma(close, source_ma_length)
trend_filter_ma = trend_filter_ma_type == "EMA"? ema(close, trend_filter_ma_length): 
                                                 sma(close, trend_filter_ma_length)

// --------------------------- Conditions ----------------------------------- //
uptrend = not use_trend_filter or close > trend_filter_ma
buy_cond = crossover(fast_ma, slow_ma) and uptrend

downtrend = not use_trend_filter or close < trend_filter_ma
sell_cond = crossunder(fast_ma, slow_ma) and downtrend

// ---------------------------- Plotting ------------------------------------ //
bgcolor(use_trend_filter and downtrend? color.red: use_trend_filter? color.green: na)
plot(show_mas? fast_ma: na, "Fast MA", color.green)
plot(show_mas? slow_ma: na, "Slow MA", color.red)
plot(show_mas? source_ma: na, "Source MA", color.purple)
plot(show_mas? trend_filter_ma: na, "Trend Filter MA", color.blue)


// ---------------------------- Trading  ------------------------------------ //
// Inputs
sl_perc = input(1.0, "Stop Loss (in %)", group="Backtest Control")/100
tp_perc = input(1.0, "Take Profit (in %)", group="Backtest Control")/100
leverage = input(10, "Leverage", maxval=100, group="Backtest Control")
bt_start_time = input(timestamp("2021 01 01"), "Backtest Start Time", input.time, group="Backtest Control")
bt_end_time = input(timestamp("2021 12 31"), "Backtest End Time", input.time, group="Backtest Control")

// Trading Window
in_trading_window = true
trade_qty = (strategy.equity * leverage) / close 

// Long Side
strategy.entry("Long Entry", strategy.long,  when=buy_cond and in_trading_window)
long_tp = strategy.position_avg_price * (1 + tp_perc)
long_sl = strategy.position_avg_price * (1 - sl_perc)
if not swing_trading_mode
    strategy.exit("Long Exit", "Long Entry", limit=long_tp, stop=long_sl)

// Short Side
strategy.entry("Short Entry", strategy.short, when=sell_cond and in_trading_window)
short_tp = strategy.position_avg_price * (1 - tp_perc)
short_sl = strategy.position_avg_price * (1 + sl_perc)
if not swing_trading_mode
    strategy.exit("Short Exit", "Short Entry", limit=short_tp, stop=short_sl)

// End of trading window close
strategy.close_all(when=not in_trading_window)