Chiến lược cân bằng ngắn hạn trong ngày động kết hợp trung bình chuyển động và siêu xu hướng là một chiến lược giao dịch định lượng được viết bằng Pine Script TM 5. Chiến lược sử dụng chỉ số MACD và chỉ số siêu xu hướng để nắm bắt các cơ hội xu hướng trên thị trường, trong khi kiểm soát rủi ro thông qua chuyển đổi ngắn hạn động và dừng lỗ / lấy lợi nhuận.
Cốt lõi của chiến lược này là kết hợp chỉ số MACD và chỉ số Supertrend để xác định hướng xu hướng của thị trường.
Thông qua chuyển đổi dài ngắn năng động, chiến lược có thể thích nghi với những thay đổi trên thị trường và nắm bắt các cơ hội xu hướng.
Chiến lược cân bằng dài ngắn trong ngày động kết hợp trung bình chuyển động và siêu xu hướng là một chiến lược giao dịch dựa trên theo dõi xu hướng và đánh giá động lực. Bằng cách kết hợp chỉ số siêu xu hướng và chỉ số MACD và điều chỉnh động hướng vị trí, chiến lược có thể thích nghi với những thay đổi trên thị trường và nắm bắt các cơ hội xu hướng.
Tuy nhiên, chiến lược cũng có một số rủi ro và thiếu sót, chẳng hạn như rủi ro thất bại chỉ số, rủi ro tối ưu hóa tham số, rủi ro dừng lỗ, vv Để cải thiện thêm chiến lược, người ta có thể xem xét thêm logic dừng lỗ, tối ưu hóa tham số, thêm nhiều điều kiện lọc tín hiệu và thử nghiệm trên nhiều thị trường.
Nhìn chung, Chiến lược cân bằng ngắn hạn trong ngày động kết hợp trung bình chuyển động và siêu xu hướng cung cấp một cách suy nghĩ để theo dõi xu hướng và kiểm soát rủi ro. Trong ứng dụng thực tế, các nhà giao dịch nên thực hiện điều chỉnh và tối ưu hóa phù hợp cho chiến lược dựa trên sở thích rủi ro và đặc điểm thị trường của riêng họ và sử dụng nó một cách thận trọng. Các chiến lược giao dịch định lượng có thể cung cấp ý tưởng giao dịch, nhưng thị trường luôn thay đổi, và không có chiến lược nào có thể đảm bảo lợi nhuận. Các nhà đầu tư phải hiểu các nguyên tắc và rủi ro của chiến lược, kiểm soát hợp lý các vị trí, nghiêm ngặt dừng lỗ và luôn cảnh giác để tồn tại trên thị trường trong thời gian dài.
/*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-----------------////////////////