Эта стратегия основана на индикаторе Aroon для выявления и отслеживания тенденций в обоих направлениях.
Используйте индикатор Aroon для определения направления ценовых тенденций.
Когда индикатор Aroon пересекает линию 0 сверху, сигнал покупки запускается.
Если у вас уже есть позиция, и цена закрытия ниже цены покупки, а RSI ниже 30, она считается перепроданной, будут размещены дополнительные ордера на покупку.
Когда индикатор Аруна пересекает линию ниже нуля сверху, запускается сигнал полного выхода.
Если потеря превышает эту точку, то запускается выход стоп-лосса.
Использование индикатора Aroon для определения направления тренда может эффективно зафиксировать точки вращения рынка.
Показатель RSI помогает определить зоны перекупленности и перепродажи, избегая погони за новыми максимумами и продажей минимумов во время поворотов рынка.
Торговля в обоих направлениях позволяет получать прибыль как на растущих, так и на снижающихся рынках.
Установка стоп-лосса помогает контролировать риски.
Показатель Аруна имеет эффект отставания, который может не влиять на краткосрочные и внезапные изменения.
Он не может эффективно управлять рынками с ограниченным диапазоном, что приводит к ненужным сделкам.
Торговля в обоих направлениях увеличивает частоту торговли и комиссионные расходы.
Параметры должны быть правильно настроены, чтобы адаптироваться к различным временным рамкам и продуктам.
Комбинировать с другими индикаторами для фильтрации сигналов и уменьшения ошибок, вызванных отставанием.
Усиление количественных исследований для оптимизации параметров для различных продуктов.
Добавьте стратегии получения прибыли для увеличения коэффициента прибыли.
Рассматривайте торговлю только тогда, когда тенденция ясна для сокращения неэффективных сделок.
Эта стратегия объединяет индикаторы Aroon и RSI, чтобы сформировать относительно полную двунаправленную торговую систему тренда. Но для уменьшения ошибок все еще необходима дальнейшая оптимизация параметров и сочетание с другими индикаторами фильтрации. При правильной настройке параметров и контроле рисков эта стратегия имеет потенциал для достижения относительно устойчивой избыточной доходности.
/*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