Strategi Pemeliharaan Posisi SMA yang Kuat dan Stabil

Penulis:ChaoZhang, Tanggal: 2023-12-18 17:44:16
Tag:

img

Gambaran umum

Strategi ini adalah strategi kepemilikan posisi sederhana berdasarkan garis SMA. Ini akan panjang ketika garis SMA jangka pendek melintasi garis SMA jangka panjang, dan menutup posisi ketika garis SMA jangka pendek melintasi di bawah garis SMA jangka panjang.

Prinsip Strategi

Strategi ini menggunakan dua garis SMA, satu garis jangka pendek 20 hari dan satu garis jangka panjang 50 hari. Garis jangka pendek dapat menangkap perubahan tren harga lebih cepat, sementara garis jangka panjang menyaring kebisingan jangka pendek. Ketika garis jangka pendek naik dengan cepat di atas garis jangka panjang, itu menunjukkan tren mungkin telah memulai kenaikan jangka panjang, jadi kita pergi panjang di sini. Ketika garis jangka pendek turun di bawah garis jangka panjang, itu menunjukkan tren naik mungkin telah berakhir, jadi kita menutup posisi di sini.

Singkatnya, strategi ini memanfaatkan fitur kurva garis SMA untuk menentukan tren pergerakan harga pada dua dimensi waktu, dan menghasilkan keuntungan yang stabil dengan memegang posisi yang relatif stabil.

Analisis Keuntungan

Keuntungan dari strategi ini meliputi:

  1. Mudah dioperasikan, mudah dimengerti, penghalang rendah untuk digunakan
  2. Relatif stabil dengan memanfaatkan kekuatan lini SMA
  3. Periode penyimpanan yang panjang, kurang dipengaruhi oleh kebisingan pasar jangka pendek
  4. Beberapa parameter yang dapat dikonfigurasi, mudah untuk menemukan kombinasi parameter yang optimal

Analisis Risiko

Risiko dari strategi ini meliputi:

  1. Lebih banyak stop loss yang mungkin terjadi ketika pasar yang terikat jangkauan berkepanjangan
  2. Garis SMA memiliki efek keterlambatan, tidak dapat menangkap perubahan harga segera
  3. Tidak dapat memanfaatkan pola penurunan lonjakan jangka pendek
  4. Tidak dapat mengontrol ukuran kerugian perdagangan tunggal

Arahan Optimasi

Strategi ini dapat dioptimalkan lebih lanjut dalam aspek berikut:

  1. Tambahkan indikator MACD untuk mengidentifikasi waktu rebound bawah untuk kerugian lebih sedikit selama pasar yang terikat rentang
  2. Uji kombinasi parameter garis SMA yang berbeda untuk menemukan optimal
  3. Mengintegrasikan indikator domestik untuk menemukan divergensi tren, meningkatkan akurasi entri
  4. Menambahkan mekanisme pengambilan keuntungan dan menghentikan kerugian untuk mengendalikan keuntungan/kerugian per perdagangan

Ringkasan

Singkatnya, strategi kepemilikan posisi SMA ini stabil, sederhana dan mudah dioperasikan, cocok untuk pemula perdagangan langsung.


/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Zlema Strateg Long 5m', overlay=true )

// FUNCTIONS

Atr(p) =>
    atr = 0.
    Tr = math.max(high - low, math.max(math.abs(high - close[1]), math.abs(low - close[1])))
    atr := nz(atr[1] + (Tr - atr[1]) / p, Tr)
    atr

// ZLEMA
length = input(title='Length', defval=14)
highlightMovements = input(title='Highlight Movements ?', defval=true)
src = input(title='Source', defval=close)

lag = math.floor((length - 1) / 2)

zlema = ta.ema(src + src - src[lag], length)

zlemaColor = highlightMovements ? zlema > zlema[1] ? color.green : color.red : #6d1e7f
plot(zlema, title='ZLEMA', linewidth=2, color=zlemaColor, transp=0)


// TAKE PROFIT AND STOP LOSS
long_tp1_inp = input.float(1, title='Long Take Profit 1 %', step=0.1) / 100
long_tp1_qty = input.int(10, title='Long Take Profit 1 Qty', step=1)

long_tp2_inp = input.float(5, title='Long Take Profit 2%', step=0.1) / 100
long_tp2_qty = input.int(50, title='Long Take Profit 2 Qty', step=1)

long_take_level_1 = strategy.position_avg_price * (1 + long_tp1_inp)
long_take_level_2 = strategy.position_avg_price * (1 + long_tp2_inp)




// Stop Loss
multiplier = input.float(2.2, 'SL Mutiplier', minval=1, step=0.1)
ATR_period = input.int(17, 'ATR period', minval=1, step=1)

// Strategy
entry_long = zlema > zlema[1]
entry_price_long = ta.valuewhen(entry_long, close, 0)
SL_floating_long = entry_price_long - multiplier * Atr(ATR_period)
exit_long = zlema < zlema[1]

///// BACKTEST PERIOD ///////
testStartYear = input(2022, 'Backtest Start Year')
testStartMonth = input(1, 'Backtest Start Month')
testStartDay = input(1, 'Backtest Start Day')
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(9999, 'Backtest Stop Year')
testStopMonth = input(12, 'Backtest Stop Month')
testStopDay = input(31, 'Backtest Stop Day')
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

if testPeriod()
    strategy.entry('long', strategy.long, comment='Long', when=entry_long)
    strategy.exit('TP1', 'long', qty_percent=long_tp1_qty, limit=long_take_level_1)  //, trail_points=entry_price_long * long_trailing / syminfo.mintick, trail_offset=entry_price_long * long_trailing / syminfo.mintick)
    strategy.exit('TP2', qty_percent=long_tp2_qty, limit=long_take_level_2)  //, trail_points=entry_price_long * long_trailing / syminfo.mintick, trail_offset=entry_price_long * long_trailing / syminfo.mintick)
    strategy.close('long', when=exit_long, comment='exit long')


// LONG POSITION
plot(strategy.position_size > 0 ? long_take_level_1 : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='1st Long Take Profit')
plot(strategy.position_size > 0 ? long_take_level_2 : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='2nd Long Take Profit')
plot(strategy.position_size > 0 ? SL_floating_long : na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Long Stop Loss')


if testPeriod()
    strategy.entry('long', strategy.long, comment='Long', when=entry_long)


// LONG POSITIONplot(strategy.position_size > 0 ? SL_floating_long : na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Long Stop Loss')



Lebih banyak