
Chiến lược này sử dụng các đường trung bình di chuyển và các chỉ số tương đối mạnh để xác định xu hướng của thị trường, tạo vị trí ngắn dần trong xu hướng giảm và tạo ra lợi nhuận.
Khi giá đóng cửa thấp hơn trung bình di chuyển đơn giản 100 ngày và RSI lớn hơn 30, hãy tháo lỗ. Sau đó, thiết lập đường dừng và đường dừng, đường dừng là trên 3% giá vào và đường dừng là dưới 2% giá vào.
Trên nền tảng Coinrule, bạn có thể đặt hàng bán hàng nhiều lần để xây dựng vị trí dần dần. Khi thị trường tiếp tục giảm, hãy tăng vị trí dần dần. Thiết lập khoảng thời gian đặt hàng nhất định cũng giúp kiểm soát tổng vị trí.
Chiến lược này kết nối lệnh dừng lỗ và lệnh dừng cho mỗi giao dịch. Tỷ lệ dừng lỗ và tỷ lệ dừng được tối ưu hóa cho đồng tiền trung tâm. Bạn có thể điều chỉnh tùy theo loại tiền tệ cụ thể.
Giá dừng là 3% giá mua. Giá dừng là 2% giá nhập cảnh. Một tỷ lệ dừng lớn hơn một chút có thể chịu được sự biến động lớn hơn, tránh dừng không cần thiết.
Chiến lược này dựa trên phương tiện di chuyển để xác định xu hướng, RSI lọc để xác định thời điểm nhập cảnh cụ thể, có thể nắm bắt hiệu quả các xu hướng giảm. Phương pháp gia tăng dần dần có thể kiểm soát rủi ro, thiết lập dừng lỗ để đảm bảo khả năng chịu đựng giao dịch đơn lẻ. Tối ưu hóa tỷ lệ dừng lỗ có thể đạt được lợi nhuận rủi ro tốt hơn.
/*backtest
start: 2022-10-31 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule
//@version=4
strategy(shorttitle='Short In Downtrend',title='Short In Downtrend Below MA100', 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() => true // create function "within window of time"
//MA inputs and calculations
inSignal=input(50, title='MASignal')
MA= sma(close, inSignal)
// RSI inputs and calculations
lengthRSI = input(14, title = 'RSI period', minval=1)
RSI = rsi(close, lengthRSI)
//Entry
strategy.entry(id="short", long = false, when = close < MA and RSI > 30)
//Exit
shortStopPrice = strategy.position_avg_price * (1 + 0.03)
shortTakeProfit = strategy.position_avg_price * (1 - 0.02)
strategy.close("short", when = close > shortStopPrice or close < shortTakeProfit and window())
plot(MA, color=color.purple, linewidth=2)