
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.
Inti dari strategi ini adalah menggabungkan indikator MACD dan indikator supertrend untuk menilai arah tren pasar.
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.
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.
/*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-----------------////////////////