Sumber daya yang dimuat... Pemuatan...

Strategi leverage crossover rata-rata bergerak eksponensial

Penulis:ChaoZhang, Tanggal: 2024-04-30 16:26:37
Tag:MATICEMAMA

img

Gambaran umum

Strategi ini menggunakan crossover dari 20 hari dan 55 hari eksponensial bergerak rata-rata (EMA) untuk menghasilkan sinyal perdagangan. sinyal beli dipicu ketika EMA jangka pendek melintasi di atas EMA jangka panjang, dan sinyal jual dipicu ketika sebaliknya terjadi. Strategi ini juga memperkenalkan perdagangan leverage, yang memperkuat kedua potensi pengembalian dan risiko. Selain itu, strategi ini mencakup pembatasan bersyarat yang hanya memungkinkan memasuki posisi ketika harga menyentuh EMA jangka pendek setelah crossover, untuk mengurangi risiko sinyal palsu.

Prinsip Strategi

  1. Menghitung EMA 20 hari dan 55 hari (atau SMA).
  2. Tentukan apakah EMA jangka pendek melintasi di atas EMA jangka panjang. Jika benar, atur variabel readyToEnter menjadi benar, yang menunjukkan kesiapan untuk memasuki posisi.
  3. Jika readyToEnter benar dan harga menyentuh EMA jangka pendek, eksekusi pesanan beli dan reset readyToEnter ke false.
  4. Jika EMA jangka pendek melintasi di bawah EMA jangka panjang, tutup posisi.
  5. Atur ukuran posisi berdasarkan parameter leverage.
  6. Melakukan strategi hanya dalam periode backtesting yang ditentukan pengguna.

Keuntungan Strategi

  1. Crossover rata-rata bergerak adalah metode sederhana dan mudah digunakan untuk menentukan tren, cocok untuk sebagian besar pasar.
  2. Memperkenalkan perdagangan leverage dapat memperkuat pengembalian.
  3. Menambahkan pembatasan bersyarat mengurangi risiko sinyal palsu.
  4. Memberikan pilihan antara EMA dan SMA sesuai dengan preferensi pengguna yang berbeda.
  5. Struktur kode jelas dan mudah dipahami dan dimodifikasi.

Risiko Strategi

  1. Perdagangan leverage memperkuat risiko. Jika penilaian salah, itu dapat menyebabkan kerugian yang signifikan.
  2. Moving average crossover memiliki efek lag dan mungkin kehilangan peluang masuk terbaik.
  3. Hanya cocok untuk pasar dengan tren yang jelas. Jika pasar tidak stabil, perdagangan sering dapat terjadi, menghasilkan biaya transaksi yang tinggi.

Arah Optimasi Strategi

  1. Cobalah mengoptimalkan periode rata-rata bergerak untuk menemukan parameter yang paling cocok untuk pasar saat ini.
  2. Memperkenalkan indikator lain, seperti RSI dan MACD, untuk menilai tren secara komprehensif dan meningkatkan tingkat kemenangan.
  3. Menetapkan tingkat stop loss dan take profit untuk mengendalikan risiko perdagangan tunggal.
  4. Mengatur secara dinamis ukuran leverage berdasarkan volatilitas pasar, meningkatkan leverage ketika volatilitas rendah dan mengurangi leverage ketika volatilitas tinggi.
  5. Memperkenalkan algoritma pembelajaran mesin untuk mengoptimalkan parameter secara adaptif.

Ringkasan

Strategi ini menggabungkan crossover rata-rata bergerak dan perdagangan leverage untuk menangkap tren pasar sambil memperkuat pengembalian. Namun, leverage juga membawa risiko tinggi dan perlu digunakan dengan hati-hati. Selain itu, ada ruang untuk optimasi dalam strategi ini, yang dapat dicapai dengan memperkenalkan lebih banyak indikator, menyesuaikan parameter secara dinamis, dll. Secara keseluruhan, strategi ini cocok untuk pedagang yang mengejar pengembalian tinggi dan dapat menanggung risiko tinggi.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover Strategy with Leverage, Conditional Entry, and MA Option", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Inputs for backtesting period
startDate = input(defval=timestamp("2023-01-01"), title="Start Date")
endDate = input(defval=timestamp("2024-04-028"), title="End Date")

// Input for leverage multiplier
leverage = input.float(3.0, title="Leverage Multiplier", minval=1.0, maxval=10.0, step=0.1)

// Input for choosing between EMA and MA
useEMA = input.bool(true, title="Use EMA (true) or MA (false)?")

// Input source and lengths for MAs
src = close
ema1_length = input.int(20, title='EMA/MA-1 Length')
ema2_length = input.int(55, title='EMA/MA-2 Length')

// Calculate the MAs based on user selection
pema1 = useEMA ? ta.ema(src, ema1_length) : ta.sma(src, ema1_length)
pema2 = useEMA ? ta.ema(src, ema2_length) : ta.sma(src, ema2_length)

// Tracking the crossover condition for strategy entry
crossedAbove = ta.crossover(pema1, pema2)

// Define a variable to track if a valid entry condition has been met
var bool readyToEnter = false

// Check for MA crossover and update readyToEnter
if (crossedAbove)
    readyToEnter := true

// Entry condition: Enter when price touches MA-1 after the crossover // and (low <= pema1 and high >= pema1)
entryCondition = readyToEnter

// Reset readyToEnter after entry
if (entryCondition)
    readyToEnter := false

// Exit condition: Price crosses under MA-1
exitCondition = ta.crossunder(pema1, pema2)

// Check if the current bar's time is within the specified period
inBacktestPeriod = true

// Execute trade logic only within the specified date range and apply leverage to position sizing
if (inBacktestPeriod)
    if (entryCondition)
        strategy.entry("Long", strategy.long, qty=strategy.equity * leverage / close)
    if (exitCondition)
        strategy.close("Long")


// Plotting the MAs for visual reference
ema1_color = pema1 > pema2 ? color.red : color.green
ema2_color = pema1 > pema2 ? color.red : color.green
plot(pema1, color=ema1_color, style=plot.style_line, linewidth=1, title='EMA/MA-1')
plot(pema2, color=ema2_color, style=plot.style_line, linewidth=1, title='EMA/MA-2')


Berkaitan

Lebih banyak