Strategi Perdagangan Ayunan


Tanggal Pembuatan: 2023-10-11 16:29:37 Akhirnya memodifikasi: 2023-10-11 16:29:37
menyalin: 0 Jumlah klik: 647
1
fokus pada
1617
Pengikut

Ringkasan

Ini adalah strategi pelacakan tren yang didasarkan pada crossover moving average, yang menggabungkan manajemen stop loss dan efek leverage, yang bertujuan untuk mengidentifikasi tren di berbagai pasar dan memaksimalkan keuntungan.

Prinsip Strategi

Strategi ini menggunakan persilangan rata-rata bergerak cepat dan rata-rata bergerak lambat sebagai sinyal perdagangan. Bila rata-rata bergerak cepat melewati rata-rata bergerak lambat, mengambil posisi multihead; Bila rata-rata bergerak cepat melewati rata-rata bergerak lambat, mengambil posisi kosong.

Untuk menyaring perdagangan noise dari non-trend utama, strategi ini juga memperkenalkan 200-day moving average sebagai filter tren.

Strategi ini menggunakan strategi stop loss untuk perdagangan interval. Setelah perdagangan, stop loss dan stop loss akan ditetapkan dalam proporsi tetap, misalnya, stop loss akan ditetapkan pada 1%, stop loss akan ditetapkan pada 1%, dan posisi akan dihapus ketika harga mencapai stop loss atau stop loss.

Strategi ini menggunakan efek leverage untuk meningkatkan keuntungan trading. Bergantung pada karakteristik pasar yang berbeda, rasio leverage yang tepat dapat dipilih, misalnya 10 kali lipat.

Analisis Keunggulan

  • Salah satu keuntungan dari strategi ini adalah kemampuan untuk mengidentifikasi tren di berbagai pasar, termasuk cryptocurrency, saham, dan pasar berjangka, untuk memperluas kelayakan strategi.

  • Dengan menggunakan crossover dan filter tren, Anda dapat mengidentifikasi arah tren dengan lebih baik dan mendapatkan tingkat kemenangan yang lebih baik dalam tren.

  • Dengan strategi stop loss interval, kerugian tunggal dapat dikendalikan dalam kisaran yang dapat ditanggung, yang menguntungkan operasi strategi yang stabil.

  • Efek leverage dapat meningkatkan keuntungan perdagangan, sehingga memanfaatkan strategi sepenuhnya.

  • Desain antarmuka visual, menggunakan warna latar belakang yang berbeda untuk mengidentifikasi pasar multihead dan kosong, sehingga pengguna dapat secara intuitif menilai situasi pasar saat ini.

Analisis risiko

  • Strategi ini didasarkan pada ide perdagangan tren, yang mengurangi efek perdagangan di pasar yang bergejolak. Ukuran posisi harus dikontrol dengan tepat.

  • Pembatasan stop loss dalam proporsi tetap berisiko untuk di-arbitrase, dan pembatasan stop loss harus disesuaikan dengan pasar tertentu.

  • Leverage memperbesar skala perdagangan, tetapi juga memperbesar risiko perdagangan. Perlu mengontrol rasio leverage untuk menghindari kerugian di luar batas yang dapat ditanggung.

  • Rata-rata bergerak sendiri memiliki keterlambatan, yang dapat menyebabkan sinyal perdagangan yang terlambat.

Arah optimasi

  • Anda dapat mempelajari kinerja strategi dalam kombinasi parameter yang berbeda, dan memilih panjang garis rata-rata cepat lambat yang lebih baik dalam kombinasi parameter.

  • Dapat digabungkan dengan indikator atau model lain sebagai sinyal penyaringan untuk meningkatkan akurasi strategi. Sebagai contoh, memperkenalkan stop loss ATR, indikator RSI, dll.

  • Dapat mengembangkan indikator identifikasi tren, seperti indikator DC, untuk meningkatkan kemampuan strategi untuk menilai tren.

  • Optimalisasi sinyal strategi dapat dikombinasikan dengan model pembelajaran mesin untuk mengidentifikasi waktu perdagangan yang lebih efektif.

  • Anda dapat mempertimbangkan untuk menyesuaikan stop loss secara dinamis, dan mengatur stop loss yang lebih masuk akal sesuai dengan volatilitas dan kondisi pasar.

Meringkaskan

Strategi ini secara keseluruhan menggunakan metode pelacakan tren yang lebih sistematis dan ilmiah, sekaligus dilengkapi dengan stop loss dan leverage untuk mengontrol risiko dan meningkatkan keuntungan. Strategi ini dapat diterapkan secara luas di berbagai pasar, dan diharapkan untuk mendapatkan keuntungan tambahan yang stabil. Namun, masih perlu memperhatikan aspek optimasi parameter, pengendalian angin, dan pembaruan strategi untuk dapat beroperasi secara efektif dalam jangka panjang.

Kode 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)