Стратегия стохастического осциллятора


Дата создания: 2023-11-06 09:30:27 Последнее изменение: 2023-11-06 09:30:27
Копировать: 1 Количество просмотров: 576
1
Подписаться
1621
Подписчики

Стратегия стохастического осциллятора

Обзор

Стратегия Random Shock использует множество технических показателей, таких как пересечение средней линии, MACD и Hull Moving Average, чтобы создать более научную и систематическую систему принятия торговых решений. Эта стратегия направлена на то, чтобы захватить точки перехода тенденции в шокирующей ситуации, чтобы обнаружить и использовать потенциальные возможности в этой ситуации.

Стратегический принцип

Во-первых, в стратегии используется одновременный индикатор переменной линии и базовой линии. Переменная линия рассчитывается как средняя величина наивысшей и наименьшей цены за 9 циклов, а базовая линия - как средняя величина наивысшей и наименьшей цены за 24 цикла.

Во-вторых, MACD, как важный индикатор отслеживания тенденций, также используется в этой стратегии. MACD рассчитывает разницу между краткосрочными эмами (12 дней) и долгосрочными эмами (24 дней), а затем вычисляет сигнальную линию (9 дней).

Кроме того, Hull Moving Average был введен в эту стратегию для уменьшения задержек в движущихся средних и повышения чувствительности к сигналу поворота цены. Его метод вычисления заключается в следующем: умножить WMA на половину цикла на 2, вычесть WMA на полный цикл, а затем вычислить WMA на открытый цикл.

В конечном счете, стратегия сочетает в себе результаты вышеперечисленных показателей, создавая более надежную систему принятия решений. Фактические операции по покупке и продаже производятся только тогда, когда несколько показателей, таких как коэффициенты MACD и Hull MA, посылают синхронные сигналы.

Стратегические преимущества

  • Многопоказательная комбинация, комбинированное использование трех индикаторов - MACD и Hull MA, формирует более сильную силу принятия решений.

  • Снижение числа ложных сигналов, возможность проверки между различными показателями, снижение вероятности ошибочного суждения по одному показателю.

  • Повышение операционной эффективности, совершение сделок только при совпадении нескольких показателей, избежание частых сделок

  • Настраиваемые параметры, параметры показателя могут быть скорректированы в зависимости от рынка, повышая адаптивность стратегии.

  • Для снижения задержек, Hull MA улучшает подвижные средние расчеты, чтобы заранее улавливать изменения цен.

Стратегический риск

  • В частности, он отмечает, что в случае с боевыми действиями в воздушном пространстве существует высокий риск, что может привести к появлению ошибочных сигналов.

  • Неправильная настройка параметров индикатора также может повлиять на эффективность стратегии.

  • Слишком много внимания уделяется сигналам обратного направления, и вы можете пропустить тенденцию.

  • Hull MA является новым показателем, долгосрочная эффективность которого еще предстоит проверить.

  • Некоторые из них, например, могут быть неэффективными, а некоторые - неэффективными.

Направление оптимизации

  • Можно тестировать добавление других показателей, таких как Bollinger Bands, для дальнейшей оптимизации системы принятия решений.

  • Можно настроить параметры показателя, чтобы найти оптимальную комбинацию параметров.

  • Можно ввести механизм динамического остановки потерь для контроля одиночных потерь.

  • Это может быть объединено с индикаторами, чтобы избежать упущенных возможностей для тренда.

  • Оптимизация управления позициями, корректировка частоты торгов и позиций на различных рынках.

Подвести итог

Стратегия случайных колебаний использует множество индикаторов и методов технического анализа для поиска торговых возможностей в условиях колебаний. Она обладает преимуществами в сочетании индикаторов, уменьшении ложных сигналов и повышении эффективности операций. Но также есть определенные риски, которые требуют дальнейшего тестирования и оптимизации, чтобы адаптироваться к более широким условиям рынка и найти оптимальный баланс между рисками и доходами.

Исходный код стратегии
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Ichimoku Kinko Hyo + HULL-MA_X + MacD", shorttitle="@m", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1000, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)

keh=input(title="Double HullMA",defval=12, minval=1)

n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green

TenkanSenPeriods = input(9, minval=1, title="Tenkan Sen Periods")
KijunSenPeriods = input(24, minval=1, title="Kijun Sen Periods")
SenkouSpanBPeriods = input(51, minval=1, title="Senkou Span B Periods")
displacement = input(24, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
TenkanSen = donchian(TenkanSenPeriods)
KijunSen = donchian(KijunSenPeriods)
SenkouSpanA = avg(TenkanSen, KijunSen)
SenkouSpanB = donchian(SenkouSpanBPeriods)
LS=close, offset = -displacement

MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(24)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength)
aMACD = ema(MACD, MACD_Length)

a1=plot(n1,color=c)
a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 3)
plot(TenkanSen, color=blue, title="Tenkan Sen", linewidth = 2)
plot(KijunSen, color=maroon, title="Kijun Sen", linewidth = 3)
plot(close, offset = -displacement, color=orange, title="Chikou Span", linewidth = 2)
p1=plot (SenkouSpanA, offset = displacement, color=green,  title="Senkou Span A", linewidth = 2)
p2=plot (SenkouSpanB, offset = displacement, color=red,  title="Senkou Span B", linewidth = 3)
fill(p1, p2, color = SenkouSpanA > SenkouSpanB ? green : red)

closelong = n1<n2 and close<n2 and (MACD<aMACD or TenkanSen<KijunSen or close<KijunSen)
if (closelong)
    strategy.close("Long")

closeshort = n1>n2 and close>n2 and (MACD>aMACD or TenkanSen>KijunSen or close>KijunSen)
if (closeshort)
    strategy.close("Short")

longCondition = n1>n2 and close>n2 and MACD>aMACD and (TenkanSen>KijunSen or close>KijunSen) 
if (longCondition)
    strategy.entry("Long",strategy.long)

shortCondition = n1<n2 and close<n2 and MACD<aMACD and (TenkanSen<KijunSen or close<KijunSen)
if (shortCondition)
    strategy.entry("Short",strategy.short)