Стратегия торговли показателем скользящего среднего AO

Автор:Чао Чжан, Дата: 2023-09-12 16:09:01
Тэги:

Эта стратегия сочетает в себе скользящие средние и осциллятор AO для выявления тенденций и отклонений в торговле.

Логика стратегии:

  1. Вычислить быструю EMA и медленную SMA для построения системы скользящей средней.

  2. Вычислить быстрые и медленные линии AO и разницу между ними.

  3. Продолжайте, когда быстрый MA пересекается над медленным MA, ближайший превышает медленный MA, и AO повышается.

  4. Пройти короткий путь, когда быстрый MA пересекается ниже медленного MA, ближайший - ниже медленного MA, и AO падает.

  5. AO сравнивает различия, чтобы избежать ложных сигналов.

Преимущества:

  1. МА определяет основную тенденцию, АО умножает на перелом.

  2. AO различие фильтрует ложные сигналы.

  3. Объединение показателей повышает точность.

Риски:

  1. Необходимое регулирование, чтобы соответствовать условиям рынка.

  2. И MAs, и AO отстают, потенциально отсутствуют лучшие записи.

  3. Трудно остановить на различных рынках, увеличивается риск потерь.

В целом, эта стратегия объединяет сильные стороны MA и AO для торговли. Это может в некоторой степени улучшить качество сигнала, но все еще необходимы правильные остановки для управления рисками для стабильной доходности.


/*backtest
start: 2023-09-04 00:00:00
end: 2023-09-11 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MA&AO", overlay = true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, currency='USD')
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(input(9999, "End Year"),   input(1, "Month"),   input(1, "Day"),   0, 0)
_testPeriod() =>
    true

//Inputs
fast_ma = input(8, title="Fast EMA", minval=2)
slow_ma = input(20, minval=1, title="Slow SMA")
AO_fast = input(5, minval=1, title="Awesome Length Fast")
AO_slow = input(8, minval=1, title="Awesome Length Slow")

//MA
fast  = ema(close, fast_ma)
slow =  sma(close, slow_ma)

//AO
AO_1 = sma(hl2, AO_fast)
AO_2 = sma(hl2, AO_slow)
dif = AO_1 - AO_2
AO = dif>=0? dif > dif[1] ? 1 : 2 : dif > dif[1] ? -1 : -2

long   =  crossover(fast, slow) and close > slow and abs(AO)==1
short =   fast < slow and close < slow and abs(AO)==2

long_condition =  long and _testPeriod() 
strategy.entry('BUY', strategy.long, when=long_condition)  
 
short_condition = short 
strategy.close('BUY', when=short_condition)


plot(fast, color=color.green)
plot(slow, color=color.red)

Больше