Стратегия двойного отслеживания тенденций

Автор:Чао Чжан, Дата: 2023-09-17 18:20:27
Тэги:

Обзор

Эта стратегия основана на индикаторе Aroon для выявления и отслеживания тенденций в обоих направлениях.

Принцип стратегии

  1. Используйте индикатор Aroon для определения направления ценовых тенденций.

  2. Когда индикатор Aroon пересекает линию 0 сверху, сигнал покупки запускается.

  3. Если у вас уже есть позиция, и цена закрытия ниже цены покупки, а RSI ниже 30, она считается перепроданной, будут размещены дополнительные ордера на покупку.

  4. Когда индикатор Аруна пересекает линию ниже нуля сверху, запускается сигнал полного выхода.

  5. Если потеря превышает эту точку, то запускается выход стоп-лосса.

Анализ преимуществ

  1. Использование индикатора Aroon для определения направления тренда может эффективно зафиксировать точки вращения рынка.

  2. Показатель RSI помогает определить зоны перекупленности и перепродажи, избегая погони за новыми максимумами и продажей минимумов во время поворотов рынка.

  3. Торговля в обоих направлениях позволяет получать прибыль как на растущих, так и на снижающихся рынках.

  4. Установка стоп-лосса помогает контролировать риски.

Анализ рисков

  1. Показатель Аруна имеет эффект отставания, который может не влиять на краткосрочные и внезапные изменения.

  2. Он не может эффективно управлять рынками с ограниченным диапазоном, что приводит к ненужным сделкам.

  3. Торговля в обоих направлениях увеличивает частоту торговли и комиссионные расходы.

  4. Параметры должны быть правильно настроены, чтобы адаптироваться к различным временным рамкам и продуктам.

Руководство по оптимизации

  1. Комбинировать с другими индикаторами для фильтрации сигналов и уменьшения ошибок, вызванных отставанием.

  2. Усиление количественных исследований для оптимизации параметров для различных продуктов.

  3. Добавьте стратегии получения прибыли для увеличения коэффициента прибыли.

  4. Рассматривайте торговлю только тогда, когда тенденция ясна для сокращения неэффективных сделок.

Резюме

Эта стратегия объединяет индикаторы 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


Больше