Chiến lược này được đặt tên là Chiến lược dao động Saucius Aroon. Nó phù hợp với cổ phiếu, chỉ số và hàng hóa có biến động cao nhưng xu hướng không rõ ràng, nơi triển vọng của giá trong tương lai là không chắc chắn. Chiến lược xác định xu hướng giá bằng cách sử dụng chỉ số dao động Aroon và thiết lập các điều kiện nhập và xuất dựa trên nhiều thông số để thực hiện giao dịch tự động của các tài sản rủi ro này.
Ý tưởng đằng sau chiến lược này bắt nguồn từ Tushar Chande, người tạo ra Aroon. Chande đề xuất rằng xu hướng tăng và giảm có thể được xác định khi Aroon Oscillator ở trên hoặc dưới 50. Điều này giúp giảm bớt những thiếu sót của các đường Aroon đơn giản và chéo trong các giai đoạn không có xu hướng.
Đặc biệt, chiến lược này đầu tiên tính toán các đường Aroon Up, Aroon Down và Aroon Oscillator 19 giai đoạn. Máy dao động được tính bằng cách trừ đường Down từ đường Up. Dòng giữa sau đó được đặt ở -25, đường ray trên ở 75 và đường ray dưới ở -85. Khi dao động vượt qua đường giữa, vị trí dài được mở. Khi đi xuống, vị trí ngắn được mở. Các điều kiện thoát là đóng dài khi dao động vượt qua đường ray trên và đóng ngắn khi đi xuống dưới đường ray dưới.
Do đó, đường giữa được sử dụng để xác định hướng xu hướng vào, đường ray trên và dưới được sử dụng để thoát khi xu hướng đảo ngược, nhận ra giao dịch tự động dựa trên chỉ số Aroon Oscillator.
So với các chiến lược theo xu hướng truyền thống, chiến lược này có những lợi thế sau:
Tóm lại, bằng cách kết hợp các điểm mạnh của chỉ số Aroon Oscillator, chiến lược đạt được giao dịch tự động của các tài sản cụ thể với tỷ lệ thắng và lợi nhuận tốt.
Ngoài ra còn có một số rủi ro với chiến lược này:
Những rủi ro này có thể được giảm và cải thiện bằng cách điều chỉnh các tham số và tối ưu hóa mã.
Để tiếp tục cải thiện hiệu suất chiến lược, tối ưu hóa có thể được thực hiện trong các khía cạnh sau:
Thông qua thử nghiệm và tối ưu hóa toàn diện, sự ổn định, tỷ lệ thắng và lợi nhuận của chiến lược có thể được cải thiện đáng kể.
Chiến lược này đạt được một cách sáng tạo giao dịch tự động các tài sản có biến động cao và xu hướng không rõ ràng dựa trên chỉ số Aroon Oscillator. So với các chiến lược xu hướng truyền thống, nó hoạt động tốt hơn trên các loại tài sản này, và điều kiện giao dịch nghiêm ngặt của nó cũng đạt được thông qua cài đặt tham số.
/*backtest start: 2023-12-15 00:00:00 end: 2024-01-10 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 // by Saucius Finance https://saucius-finance.blogspot.com/ // copyrights reserved :) // This strategy derives form the consideration of the author, Tushar Chande, that, in "more patterns" paragraph, // long and short trends are identified by oscillator < or > line 50. // This helps because simple Aroon and Aroon crosses suffer in not trending periods. // original article avabile in:" Stocks & Commodities, V. 13:9 (369-374) : A Time Price Oscillator by Tushar Chande, Ph.D."" strategy("Aroon Oscillator strategy by Saucius", overlay=false) //building aroon lines, Embodying both Aroon line (Up and Down) and Aroon Oscillator length = input(19, minval=1) level_middle = input(-25, minval=-90, maxval=90, step = 5) levelhigh = input(75, minval=-100, maxval=100, step = 5) levellow = input(-85, minval=-100, maxval=100, step = 5) upper = 100 * (highestbars(high, length+1) + length)/length lower = 100 * (lowestbars(low, length+1) + length)/length oscillator = upper - lower plot(upper, title="Aroon Up", color=blue) plot(lower, title="Aroon Down", color=red) plot(oscillator, title="Aroon Oscillator", color = yellow) hline(level_middle, title="middle line", color=gray, linewidth=2) hline(levelhigh, title ="upper border", color=gray, linewidth=1) hline(levellow, title ="lower border", color=gray, linewidth=1) // Entry // entryl = oscillator[1] < level_middle[1] and oscillator > level_middle entrys = oscillator[1] > level_middle[1] and oscillator < level_middle strategy.entry("Long", true, when = entryl) strategy.entry("Short", false, when = crossunder (oscillator, level_middle)) // === EXIT=== exitL1 = oscillator[1] > levelhigh[1] and oscillator < levelhigh exitS1 = oscillator[1] < levellow[1] and oscillator > levellow strategy.close("Long", when=entrys) strategy.close("Short", when=entryl) strategy.close("Long", when= exitL1) strategy.close("Short", when= exitS1)