Chiến lược này kết hợp đường chéo trung bình động và chỉ số RSI để xác định hướng xu hướng và tình huống mua quá mức / bán quá mức. Nó đi dài khi các điều kiện mua được đáp ứng và đóng các vị trí khi các điều kiện bán được kích hoạt. Mục tiêu là sử dụng đường chéo trung bình động để xác định hướng xu hướng trong khi sử dụng chỉ số RSI để tránh mua sai ở đỉnh và bán ở đáy, do đó tạo ra lợi nhuận tốt hơn.
Trong khi đó, nếu chỉ số RSI lớn hơn so với giai đoạn trước 5 điểm và thấp hơn 70, điều đó có nghĩa là tài sản đang tiếp cận nhưng chưa ở vùng mua quá mức, làm cho nó trở thành thời điểm tốt để mua dài.
Khi đường trung bình di chuyển nhanh 9 giai đoạn vượt qua đường trung bình di chuyển chậm 50 giai đoạn, nó báo hiệu sự khởi đầu của thị trường giảm và các vị trí dài hiện có nên được đóng.
Chiến lược này sử dụng đường chéo trung bình động kép để xác định hướng và RSI để tránh đuổi theo đỉnh và đáy. Nó có thể chạy theo xu hướng trung và dài hạn để có lợi nhuận ổn định. Nhưng bản chất chậm trễ của tín hiệu chéo và điều chỉnh các thông số RSI nên được xem xét. Cũng cần liên quan đến giá với khối lượng. Với việc thử nghiệm và tối ưu hóa liên tục, chiến lược này cho thấy hứa hẹn cho kết quả tốt hơn.
/*backtest start: 2022-11-14 00:00:00 end: 2023-11-20 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/ // © joshuajcoop01 //@version=5 strategy("Bitpanda Coinrule Template", overlay=true, initial_capital=1000, process_orders_on_close=true, default_qty_type=strategy.percent_of_equity, default_qty_value=30, commission_type=strategy.commission.percent, commission_value=0.1) showDate = input(defval=true, title='Show Date Range') timePeriod = time >= timestamp(syminfo.timezone, 2020, 1, 1, 0, 0) notInTrade = strategy.position_size <= 0 // RSI length = input(14) vrsi = ta.rsi(close, length) // Moving Averages for Buy Condition buyFastEMA = ta.ema(close, 9) buySlowEMA = ta.ema(close, 50) buyCondition1 = ta.crossover(buyFastEMA, buySlowEMA) increase = 5 if ((vrsi > vrsi[1]+increase) and buyCondition1 and vrsi < 70 and timePeriod) strategy.entry("Long", strategy.long) // Moving Averages for Sell Condition sellFastEMA = ta.ema(close, 9) sellSlowEMA = ta.ema(close, 50) plot(request.security(syminfo.tickerid, "60", sellFastEMA), color = color.blue) plot(request.security(syminfo.tickerid, "60", sellSlowEMA), color = color.green) condition = ta.crossover(sellSlowEMA, sellFastEMA) //sellCondition1 = request.security(syminfo.tickerid, "60", condition) strategy.close('Long', when = condition and timePeriod)