Strategi keseimbangan dinamis intraday long-short yang menggabungkan moving average dan super trend


Tanggal Pembuatan: 2024-03-11 11:33:47 Akhirnya memodifikasi: 2024-03-11 11:33:47
menyalin: 0 Jumlah klik: 692
1
fokus pada
1617
Pengikut

Strategi keseimbangan dinamis intraday long-short yang menggabungkan moving average dan super trend

Tinjauan Strategi

Strategi keseimbangan dinamis multi-ruang harian yang digabungkan dengan tren rata-rata dan super adalah strategi perdagangan kuantitatif yang ditulis berdasarkan Pine Script TM 5. Strategi ini menggunakan indikator MACD dan indikator super trend untuk menangkap peluang tren di pasar, sekaligus mengendalikan risiko dengan beralih dinamis multi-ruang dan stop loss.

Prinsip Strategi

Inti dari strategi ini adalah menggabungkan indikator MACD dan indikator supertrend untuk menilai arah tren pasar.

  1. Menggunakan indikator supertrend untuk menilai arah tren saat ini. Ketika indikator supertrend berubah, menunjukkan bahwa tren telah berbalik.
  2. Garis pilar menggunakan indikator MACD untuk menilai perubahan momentum. Garis pilar MACD menunjukkan peningkatan energi geser ke atas ketika bergeser ke bawah. Garis pilar MACD menunjukkan peningkatan energi geser ke atas ketika bergeser ke bawah.
  3. Ketika indikator supertrend dan indikator MACD secara bersamaan mengirimkan sinyal melakukan banyak, buka posisi lebih banyak; Ketika indikator supertrend dan indikator MACD secara bersamaan mengirimkan sinyal melakukan sedikit, buka posisi kosong.
  4. Pada waktu yang tetap setiap hari perdagangan (misalnya 15:15), tutup semua posisi Anda untuk menghindari risiko overnight.
  5. Pada hari perdagangan baru (misalnya 9:30), buka kembali posisi berdasarkan petunjuk dari indikator supertrend dan MACD.

Strategi ini dapat beradaptasi dengan perubahan pasar dan menangkap peluang tren melalui pertukaran multi-saluran yang dinamis. Selain itu, desain posisi kosong waktu tetap juga membantu mengendalikan risiko.

Keunggulan Strategis

  1. Pelacakan tren: Dengan menggabungkan indikator supertrend dan MACD, strategi ini dapat secara efektif menangkap peluang tren di pasar.
  2. Dynamic Multi-Switch: Strategi ini akan menyesuaikan arah posisi berdasarkan perubahan dinamika indikator, sesuai dengan perubahan pasar.
  3. Pengendalian risiko: Strategi ini dapat mengontrol risiko dengan lebih baik dengan posisi kosong tetap dan pertukaran dinamis multi-ruang.
  4. Fleksibilitas parameter: Parameter strategi (seperti siklus ATR, faktor, dll.) dapat disesuaikan dengan karakteristik pasar dan preferensi pribadi, dengan fleksibilitas tertentu.

Risiko Strategis

  1. Risiko kegagalan indikator: Dalam beberapa kondisi pasar, indikator MACD dan indikator supertrend dapat mengirimkan sinyal yang salah, yang menyebabkan kegagalan strategi.
  2. Risiko optimasi parameter: Kinerja strategi tergantung pada pilihan parameter, dan parameter yang tidak tepat dapat menyebabkan kinerja strategi yang buruk.
  3. Stop loss risk: Strategi ini tidak memiliki logika stop loss yang jelas, yang dapat menyebabkan kerugian yang lebih besar dalam kondisi pasar yang ekstrim.
  4. Risiko Overnight: Meskipun strategi ini menutup posisi di siang hari, namun ada risiko untuk membuka posisi di malam hari.

Arah optimasi

  1. Meningkatkan Stop Loss Logic: Menambahkan Stop Loss Logic yang jelas ke dalam strategi, seperti Stop Loss Persentase Tetap atau Stop Loss ATR, untuk mengendalikan risiko lebih lanjut.
  2. Optimasi parameter: Optimasi parameter utama strategi, seperti siklus ATR, faktor, parameter MACD, dan lain-lain, untuk meningkatkan stabilitas dan keuntungan strategi.
  3. Filter sinyal: Tambahkan lebih banyak kondisi filter sinyal, seperti harga terobosan, volume transaksi, dan sebagainya, untuk meningkatkan keandalan sinyal.
  4. Uji coba multi-pasar: Uji coba strategi di berbagai pasar dan varietas untuk menilai kelayakan dan stabilitasnya.

Meringkaskan

Strategi keseimbangan dinamis multi-ruang dalam satu hari yang digabungkan dengan tren super adalah strategi perdagangan yang didasarkan pada pelacakan tren dan penilaian dinamis. Dengan menggabungkan indikator tren super dan indikator MACD, strategi ini dapat menyesuaikan arah posisi secara dinamis untuk menangkap peluang tren yang berubah di pasar.

Namun, strategi ini juga memiliki beberapa risiko dan kekurangan, seperti risiko kegagalan indikator, risiko optimasi parameter, risiko stop loss, dan lain-lain. Untuk lebih menyempurnakan strategi ini, dapat dipertimbangkan untuk menambahkan logika stop loss, optimasi parameter, menambahkan lebih banyak kondisi filter sinyal, dan pengujian di beberapa pasar.

Secara keseluruhan, strategi keseimbangan dinamis multi-ruang dalam satu hari yang digabungkan dengan tren super memberikan pemikiran untuk melacak tren dan mengendalikan risiko. Dalam aplikasi praktis, pedagang harus menggabungkan preferensi risiko dan karakteristik pasar mereka sendiri, untuk melakukan penyesuaian dan pengoptimalan strategi yang tepat, penggunaan yang bijaksana. Strategi perdagangan kuantitatif dapat memberikan pemikiran perdagangan, tetapi pasar berubah secepat dan cepat, dan tidak ada strategi yang dapat menjamin investasi yang menguntungkan.

Kode Sumber Strategi
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © smj31071995

//@version=5
strategy("EQ - INTRA - Samsuga supertrend prod", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_every_tick = false)


atrPeriod = input.int(7,    "ATR Length", minval = 1)
factor =    input.float(1.0, "Factor",     minval = 0.01, step = 0.01)
st_tf = "3"
macd_tf="30"

[supertrend, direction] =request.security(symbol = syminfo.tickerid, timeframe = st_tf,expression =  ta.supertrend(factor, atrPeriod),lookahead=barmerge.lookahead_on)

supertrend := barstate.isfirst ? na : supertrend
upTrend =    plot(direction <= 0 ? supertrend : na, "Up Trend",   color = color.green, style = plot.style_linebr)
downTrend =  plot(direction <= 0 ? na : supertrend, "Down Trend", color = color.red,   style = plot.style_linebr)
bodyMiddle = plot(barstate.isfirst ? na : (open + close) / 2, "Body Middle",display = display.none)
longcondition = direction[1] > direction 
shortCondition = direction[1] < direction 

macdp1 = 2
macdp2=8
macdp3=4

[macdLine, signalLine, histLine] =request.security(symbol = syminfo.tickerid, timeframe = macd_tf,expression = ta.macd(close,macdp1,macdp2,macdp3),lookahead=barmerge.lookahead_on)
// log.info(str.tostring(syminfo.tickerid)+str.tostring(histLine[0]))
timezone_input = input("Asia/Kolkata", title="Timezone")
// log.info(timezone_input)
if(hour==15 and minute==15)
    strategy.close_all(comment = "DAY EXIT",alert_message = "X-D")
else if(hour==9 and minute==30)
    if(longcondition or histLine[1]>0)
        strategy.entry(id= "Long", direction=strategy.long,  comment = "DL",alert_message = "L")
    else if(shortCondition or histLine[1]<0) 
        strategy.entry(id= "Short", direction=strategy.short,  comment = "DS",alert_message = "S")
else
    if(longcondition)
        strategy.close("Short",comment = "X-S", alert_message = "X-S")
        if(histLine[1]>0)    
            strategy.entry(id= "Long", direction=strategy.long,  comment = "L",alert_message = "L")
    else if(shortCondition) 
        strategy.close("Long",comment = "X-L",alert_message = "X-L")
        if(histLine[1]<0)    
            strategy.entry(id= "Short", direction=strategy.short,  comment = "S",alert_message = "S")


// plot(macdLine,   title = "MACD",   color = #2962FF)
// plot(signalLine, title = "Signal", color = #FF6D00)
// 8, 21, 5
// 8,13,9
// 12,26,9
//  1--> 3, 17, 5
// 3, 10, 16
// log.info(str.tostring(syminfo.tickerid)+str.tostring(histLine[0]))
//  /////////----------------METHOD 1-----------------////////////////
// if(longcondition)
//     if(strategy.opentrades>0)
//         strategy.close("Long","Prev Exit", immediately = true)
//     if( histLine[0] > 0.1)
//         strategy.entry(id= "Long", direction=strategy.long,  comment = "update long")

    
// else if(shortCondition and strategy.openprofit<=0.1) 
//     strategy.close("Long",comment = "Close",immediately = true)
//  /////////----------------METHOD 2-----------------////////////////
// if(longcondition)
//     if(histLine[0] > 0)
//         strategy.entry(id= "Long", direction=strategy.long,  comment = "update long" )
//         strategy.exit("Long", loss = close*0.2)


    
// else if(shortCondition ) 
//     strategy.close("Long",comment = "Close",immediately = true)
//  /////////----------------METHOD 3-----------------////////////////