Chỉ số này dựa trên chỉ số Aroon để xác định và theo dõi xu hướng theo cả hai hướng. Chỉ số Aroon có thể xác định hiệu quả hướng của xu hướng thị trường. Kết hợp với chỉ số RSI, nó tạo thành một chiến lược theo dõi tương đối hoàn chỉnh.
Sử dụng chỉ số Aroon để xác định hướng xu hướng giá. Trên đường 0 cho thấy xu hướng tăng, trong khi dưới đường 0 là xu hướng giảm.
Khi chỉ số Aroon vượt qua trên đường 0 từ dưới, một tín hiệu mua được kích hoạt.
Nếu đã có một vị trí, và giá đóng cửa thấp hơn giá mua, trong khi chỉ số RSI dưới 30, nó được coi là đã bán quá mức, các lệnh mua bổ sung sẽ được đặt.
Khi chỉ số Aroon vượt qua dưới đường 0 từ trên, một tín hiệu thoát hoàn toàn được kích hoạt.
Một mức dừng lỗ 5% được thiết lập. Nếu lỗ vượt quá điểm này, một bước dừng lỗ sẽ được kích hoạt.
Sử dụng chỉ số Aroon để xác định hướng xu hướng có thể nắm bắt hiệu quả các điểm xoay thị trường.
Chỉ số RSI giúp xác định các khu vực mua quá mức và bán quá mức, tránh theo đuổi mức cao mới và bán mức thấp trong thời gian thay đổi thị trường.
Giao dịch theo cả hai hướng cho phép kiếm lợi nhuận trong cả thị trường tăng và giảm.
Thiết lập stop loss giúp kiểm soát rủi ro.
Chỉ số Aroon có hiệu ứng trì hoãn, có thể bỏ qua sự đảo ngược ngắn hạn và đột ngột.
Nó không thể xử lý hiệu quả các thị trường giới hạn phạm vi, dẫn đến giao dịch không cần thiết.
Giao dịch theo cả hai hướng làm tăng tần suất giao dịch và chi phí hoa hồng.
Các thông số cần điều chỉnh đúng để thích nghi với các khung thời gian và sản phẩm khác nhau.
Kết hợp với các chỉ số khác để lọc tín hiệu và giảm lỗi do chậm trễ.
Tăng nghiên cứu định lượng để tối ưu hóa các thông số cho các sản phẩm khác nhau.
Thêm chiến lược thu lợi nhuận để tăng nhân tố lợi nhuận.
Chỉ xem xét giao dịch khi xu hướng rõ ràng để giảm giao dịch không hiệu quả.
Chiến lược này tích hợp các chỉ số Aroon và RSI để tạo thành một hệ thống giao dịch xu hướng hai hướng tương đối hoàn chỉnh. Nhưng việc tối ưu hóa thêm các tham số và kết hợp với các chỉ số lọc khác vẫn cần thiết để giảm lỗi. Với điều chỉnh tham số và kiểm soát rủi ro thích hợp, chiến lược này có tiềm năng đạt được lợi nhuận dư thừa tương đối ổn định.
/*backtest start: 2023-09-09 00:00:00 end: 2023-09-12 00:00:00 period: 1m basePeriod: 1m 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/ // © mohanee //@version=4 // strategy(title="Aroon Oscillator Strategy", overlay=false, pyramiding=2, initial_capital=10000, currency=currency.USD) //default_qty_value=10, default_qty_type=strategy.fixed, //variables BEGIN aroonLength=input(169,title="Aroon Length") //square root of 13 rsiLength=input(13, title="RSI Length") stopLoss = input(title="Stop Loss%", defval=5, minval=1) //variables END //RSI rsi13=rsi(close,rsiLength) // Drawings //Aroon oscillator arronUpper = 100 * (highestbars(high, aroonLength+1) + aroonLength)/aroonLength aroonLower = 100 * (lowestbars(low, aroonLength+1) + aroonLength)/aroonLength aroonOsc = arronUpper - aroonLower aroonMidpoint = 0 oscPlot = plot(aroonOsc, color=color.green) midLine= plot(aroonMidpoint, color=color.green) topLine = plot(90,style=plot.style_circles, color=color.green) bottomLine = plot(-90,style=plot.style_circles, color=color.red) fill(oscPlot, midLine, color=aroonOsc>0?color.green:color.red, transp=50) fill(topLine,bottomLine, color=color.blue) // RSI //plot(rsi13, title="RSI", linewidth=2, color=color.purple) //hline(50, title="Middle Line", linestyle=hline.style_dotted) //obLevel = hline(80, title="Overbought", linestyle=hline.style_dotted) //osLevel = hline(30, title="Oversold", linestyle=hline.style_dotted) //fill(obLevel, osLevel, title="Background", color=rsi13 >=30 ? color.green:color.purple, transp=65) // longTermRSI >=50 //Entry-- strategy.entry(id="Long Entry", comment="LE", long=true, when= crossover(aroonOsc,0) ) //crossover(close,ema34) //and close>ema34 //crossover(rsi5Val,rsiBuyLine) //Add if(strategy.position_size>=1 and close < strategy.position_avg_price and crossover(rsi13,30)) strategy.order(id="Long Entry", comment="Add", long=true ) //crossover(close,ema34) //and close>ema34 //crossover(rsi5Val,rsiBuyLine) -- stopLossVal= abs(strategy.position_size)>1 ? strategy.position_avg_price*(1-0.5) : 0.00 //close partial strategy.close(id="Long Entry", comment="Partial X", qty=strategy.position_size/3, when=abs(strategy.position_size)>=1 and crossunder(aroonOsc, 90) ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close All strategy.close(id="Long Entry", comment="Exit All", when=abs(strategy.position_size)>=1 and crossunder(aroonOsc, 0) ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89 //close All on stop loss strategy.close(id="Long Entry", comment="Stoploss X", when=abs(strategy.position_size)>=1 and close < stopLossVal ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89