Стратегия осциллятора Чайкина

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

Обзор

Стратегия Чаикинского осциллятора использует индикатор Чаикинского осциллятора для оценки потока капитала на рынке и фиксирования изменений тренда.

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

Эта стратегия основана на индикаторе Чаикинского осциллятора, который улучшает индикатор Williams Accumulation/Distribution, используя средний показатель высоких и низких цен вместо отпускной цены для решения проблемы отсутствующей отпускной цены.

Чаикинский осциллятор = быстрая EMA индекса накопления/распределения - медленная EMA индекса накопления/распределения

Если индекс накопления/распределения рассчитывается как:

Индекс накопления/распределения = (закрыто - открыто) / (высоко - низко) * Объем

Поскольку цена открытия отсутствует, она рассчитывается здесь как:

Индекс накопления/распределения = (близкий - (высокий + низкий) /2) / (высокий - низкий) * объем

Индикатор использует разницу между быстрыми и медленными EMA индекса в качестве Чаикинского осциллятора.

Конкретная логика такова:

  1. Расчет индекса накопления/распределения
  2. Расчет быстрых и медленных EMA
  3. Возьмите разницу как Чаикинский осциллятор
  4. Купить, когда осциллятор пересекает отметку выше 0, продать, когда он пересекает отметку ниже 0

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

Преимущества этой стратегии:

  1. Зафиксировать поток капитала для определения рыночной тенденции
  2. Комбинирует быстрые и медленные скользящие средние для фильтрации ложных перерывов
  3. Простые и понятные правила

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

Некоторые риски этой стратегии:

  1. Чаикинский осциллятор отстает, потенциально отсутствуют поворотные моменты тренда
  2. Требует настройки параметров, чтобы избежать чрезмерных сделок
  3. Необходимость остановки потери для контроля одиночных проигрышных сделок

Риски можно управлять путем оптимизации параметров, сочетания с другими показателями и т.д.

Направления к улучшению

Некоторые способы улучшения этой стратегии:

  1. Оптимизировать быстрые и медленные периоды EMA для баланса частоты и стабильности
  2. Добавление условий выхода, таких как сигналы обратного тренда
  3. Добавьте такие фильтры, как RSI, MACD для подтверждения сигналов
  4. Включить стратегию стоп-лосса для контроля потерь
  5. Настройка параметров для различных продуктов для создания индивидуальных стратегий

Заключение

В целом стратегия Чаикинского осциллятора является относительно стабильной и надежной. Прекрасные параметры настройки могут сбалансировать прибыльность и риск. Добавление фильтров и стоп-лосса может еще больше улучшить надежность. Эта стратегия может достичь удовлетворительных результатов благодаря индивидуальной оптимизации.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/09/2017
//    Indicator plots Money Flow Indicator (Chaikin). This indicator looks 
//    to improve on Larry William's Accumulation Distribution formula that 
//    compared the closing price with the opening price. In the early 1970's, 
//    opening prices for stocks stopped being transmitted by the exchanges. 
//    This made it difficult to calculate Williams' formula. The Chaikin 
//    Oscillator uses the average price of the bar calculated as follows 
//    (High + Low) /2 instead of the Open.
//    The indicator subtracts a 10 period exponential moving average of the 
//    AccumDist function from a 3 period exponential moving average of the 
//    AccumDist function.    
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Money Flow Indicator (Chaikin Oscillator)", shorttitle="MFI")
Fast = input(3, minval=1)
Slow = input(10, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=hline.style_dashed)
lenMax = max(Fast, Slow)
lenMin = min(Fast, Slow)
xDiv = (high - low) * volume
SumMax = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMax)
SumMin = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMin)
emaMax = ema(SumMax, lenMax)
emaMin = ema(SumMin, lenMin)
nRes = emaMax - emaMin
pos = iff(nRes > 0, 1,
	   iff(nRes < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nRes, color=blue, title="RMI")

Больше