Двойная экспоненциальная скользящая средняя Вильямса и стратегия Ichimoku Kinko Hyo


Дата создания: 2024-02-18 16:20:12 Последнее изменение: 2024-02-18 16:20:12
Копировать: 1 Количество просмотров: 313
1
Подписаться
1166
Подписчики

Двойная экспоненциальная скользящая средняя Вильямса и стратегия Ichimoku Kinko Hyo

Обзор

Эта стратегия объединяет два технических показателя, William Dual Moving Average и First Equilibrium Graph, чтобы использовать свои преимущества и повысить точность торговых решений. Среди них William Dual Moving Average может полностью отражать тенденции изменения цен, а первый равновесный график может заранее определить обратную тенденцию.

Принципы

Двузначная скользящая средняя Вильгельма включает в себя быструю и медленную линии. Формула вычисления быстрой линии: 2 (n/2 циклов взвешенной скользящей средней), а медленной линии: n циклов взвешенной скользящей средней. Сигнал покупается, когда быстрая линия прорывает медленную линию снизу; сигнал продажи, когда она падает сверху.

На первый взгляд равновесный график состоит из четырёх составляющих: обменной линии, базовой линии, линейной линии и облачной диаграммы. Золотой крест обменной линии и базовой линии является сигналом покупки, а мертвый крест - сигналом продажи.

Эта стратегия сочетает в себе преимущества двух индикаторов: первый - по определению Вильгельма, который подает сигнал, а второй - по определению первичного равновесного индикатора, который подтверждает, что может эффективно отфильтровать ложные сигналы и повысить точность принятия решений.

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

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

Риск и оптимизация

  1. Частые сигналы могут возникать в не трендовых рынках. Параметры могут быть соответствующим образом скорректированы, отфильтровывая некоторые сигналы.
  2. В процессе пересечения быстрых и медленных линий может быть определенная задержка. Можно объединить решение с облачной картой, чтобы не пропустить лучшие точки покупки и продажи.
  3. Рекомендуется использовать в комбинации с индикаторами тренда или волатильности, чтобы еще больше избежать ложных сигналов.

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

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

Исходный код стратегии
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy("Hull MA-X + Ichimoku Kinko Hyo", shorttitle="Hi", 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)
SenkouSpanH = max(SenkouSpanA[displacement - 1], SenkouSpanB[displacement - 1])
SenkouSpanL = min(SenkouSpanA[displacement - 1], SenkouSpanB[displacement - 1])
ChikouSpan = close[displacement-1]

Hullfast=plot(n1,color=c)
Hullslow=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)
sa=plot (SenkouSpanA, offset = displacement, color=green,  title="Senkou Span A", linewidth = 2)
sb=plot (SenkouSpanB, offset = displacement, color=red,  title="Senkou Span B", linewidth = 3)
fill(sa, sb, color = SenkouSpanA > SenkouSpanB ? green : red)

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

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

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

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