Strategi Pengimbangan Pendek-Lenjang Intraday Dinamis Menggabungkan Moving Average dan Supertrend adalah strategi perdagangan kuantitatif yang ditulis dalam Pine ScriptTM 5. Strategi ini menggunakan indikator MACD dan indikator Supertrend untuk menangkap peluang tren di pasar, sambil mengendalikan risiko melalui switching pendek panjang dinamis dan stop-loss / take-profit.
Inti dari strategi ini adalah menggabungkan indikator MACD dan indikator Supertrend untuk menentukan arah tren pasar.
Melalui switch long-short yang dinamis, strategi dapat beradaptasi dengan perubahan pasar dan menangkap peluang tren. Pada saat yang sama, desain posisi penutupan pada waktu yang ditetapkan juga membantu mengendalikan risiko.
Strategi Balancing Panjang Pendek Dinamis Intraday Combining Moving Average and Supertrend adalah strategi perdagangan yang didasarkan pada pelacakan tren dan penilaian momentum. Dengan menggabungkan indikator Supertrend dan indikator MACD dan menyesuaikan arah posisi secara dinamis, strategi dapat beradaptasi dengan perubahan pasar dan menangkap peluang tren. Pada saat yang sama, desain posisi penutupan pada waktu yang tetap juga membantu mengendalikan risiko semalam.
Namun, strategi ini juga memiliki beberapa risiko dan kekurangan, seperti risiko kegagalan indikator, risiko pengoptimalan parameter, risiko stop-loss, dll. Untuk lebih meningkatkan strategi, seseorang dapat mempertimbangkan menambahkan logika stop-loss, mengoptimalkan parameter, menambahkan lebih banyak kondisi penyaringan sinyal, dan pengujian di beberapa pasar.
Secara keseluruhan, Strategi Balancing Pendek Dinamis Intraday yang menggabungkan Moving Average dan Supertrend menyediakan cara berpikir untuk pelacakan tren dan pengendalian risiko. Dalam penerapan praktis, pedagang harus membuat penyesuaian dan optimalisasi yang sesuai untuk strategi berdasarkan preferensi risiko dan karakteristik pasar mereka sendiri, dan menggunakannya dengan hati-hati. Strategi perdagangan kuantitatif dapat memberikan ide perdagangan, tetapi pasar selalu berubah, dan tidak ada strategi yang dapat menjamin keuntungan. Investor harus memahami prinsip dan risiko strategi, mengendalikan posisi dengan wajar, secara ketat menghentikan kerugian, dan selalu tetap waspada untuk bertahan di pasar dalam jangka panjang.
/*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-----------------////////////////