Chiến lược này được đặt tên là
Chiến lược này sử dụng 3 đường trung bình động với các khoảng thời gian khác nhau: 50 giai đoạn, 100 giai đoạn và 200 giai đoạn.
Điều này báo hiệu một sự đột phá từ phạm vi biến động thấp và sự bắt đầu của một xu hướng. Sự gia tăng nhanh chóng của MA
Sau khi tham gia, chiến lược sử dụng lấy lợi nhuận và dừng lỗ để khóa lợi nhuận. Lợi nhuận lấy được đặt ở mức 8% giá nhập cảnh. Lợi nhuận dừng được đặt ở mức 4% giá nhập cảnh. Với lợi nhuận lấy cao hơn so với lỗ dừng, nó đảm bảo chiến lược vẫn có lợi nhuận nói chung.
Những lợi thế của chiến lược này:
Ngoài ra còn có một số rủi ro:
Giải pháp:
Tối ưu hóa có thể được thực hiện trong các lĩnh vực sau:
Tóm lại, chiến lược có logic rõ ràng nói chung, đạt được lợi nhuận rủi ro thấp thông qua cấu hình các khoảng thời gian trung bình động và tỷ lệ phần trăm thu lợi nhuận / dừng lỗ. Nó có thể được áp dụng linh hoạt trong giao dịch định lượng.
/*backtest start: 2023-12-10 00:00:00 end: 2023-12-17 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(shorttitle='Low volatility Buy w/ TP & SL (by Coinrule)',title='Low volatility Buy w/ TP & SL', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 10, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2019, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" //MA inputs and calculations movingaverage_fast = sma(close, input(50)) movingaverage_slow = sma(close, input(200)) movingaverage_normal= sma(close, input(100)) //Entry strategy.entry(id="long", long = true, when = movingaverage_slow > movingaverage_normal and movingaverage_fast > movingaverage_normal) //Exit longStopPrice = strategy.position_avg_price * (1 - 0.04) longTakeProfit = strategy.position_avg_price * (1 + 0.08) strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window()) //PLOT plot(movingaverage_fast, color=color.orange, linewidth=2) plot(movingaverage_slow, color=color.purple, linewidth=3) plot(movingaverage_normal, color=color.blue, linewidth=2)