
Стратегия 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)