Стратегия двойной стохастики

Автор:Чао Чжан, Дата: 2023-11-07 15:25:19
Тэги:

img

Обзор

Стратегия Dual Stochastics оценивает бычьи и медвежие зоны путем расчета стохастических индикаторов текущего периода и нескольких временных рамок, направленных на покупку низкого и продажу высокого.

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

Стратегия рассчитывает два набора стохастических индикаторов одновременно. Первый набор - это стохастика текущего периода, а именно значения K и D. Второй набор - это стохастика в 3 раза превышающая текущий период, а именно MTFK и MTFD.

Когда MTFK превышает 50 и текущий K больше D, генерируется сигнал покупки, указывающий на бычью зону для длинного хода. Когда MTFD пересекает ниже 50 и текущий K меньше D, генерируется сигнал продажи, указывающий на медвежий пояс для короткого хода.

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

В частности, логика длинного входа:

longCondition = crossover(mtfK, 50) and k>50 and k>d and mtfK>mtfD  

Короткая логика входа:

shortCondition = crossunder(mtfD, 50) and k<50 and k<d and mtfK<mtfD

где mtfK - это значение K периода 3x, а mtfD - значение D периода 3x. Длинные сигналы генерируются, когда mtfK превышает 50 и k>d. Короткие сигналы генерируются, когда mtfD превышает 50 и k

Стратегия также устанавливает логику стоп-лосса. Когда длинный, если mtfD пересекает верхнюю полосу, генерируется сигнал закрытия. Когда короткий, если mtfK пересекает нижнюю полосу, запускается сигнал закрытия.

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

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

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

  2. Торговля, основанная на перекрестных показателях различных временных рамок, может эффективно отслеживать тенденции и достигать покупки низкого уровня и продажи высокого.

  3. Логика стоп-лосса помогает контролировать риски и в некоторой степени ограничивать потери.

  4. Логика стратегии проста и ясна, легко понять и реализовать для торговли в режиме реального времени.

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

Стратегия также сопряжена с некоторыми рисками:

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

  2. Неправильные настройки стоп-потери могут привести к увеличению потерь.

  3. Частая торговля, генерируемая этой стратегией, может негативно повлиять на прибыль из-за комиссионных.

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

Решения:

  1. Настройка параметров двойной стохастики для уменьшения ложных сигналов.

  2. Оптимизировать логику стоп-лосса и установить разумные расстояния стоп-лосса.

  3. Настраивайте параметры, чтобы уменьшить частоту торговли.

  4. Обратите внимание на важные фундаментальные события, чтобы избежать субъективной торговли.

Руководство по оптимизации

Стратегия может быть оптимизирована в следующих аспектах:

  1. Оптимизировать параметры двойной стохастики для уменьшения ложных сигналов.

  2. Включайте другие индикаторы для фильтрации сигналов, таких как MACD, скользящие средние и т. д., избегая ложных сигналов.

  3. Оптимизировать стратегию стоп-лосса путем тестирования различных точек и коэффициентов стоп-лосса для эффективного контроля рисков.

  4. Включать показатели объема торговли, такие как разрывы объема, чтобы избежать неэффективных сделок во время консолидации цен.

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

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

Резюме

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


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

//@version=3
strategy("stoch startegy", overlay=false,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD)

len = input(54, minval=1, title="Length for Main Stochastic") 
smoothK = input(12, minval=1, title="SmoothK for Main Stochastic")
smoothD = input(3, minval=1, title="SmoothD for Main Stochastic")
upLine = input(80, minval=50, maxval=90, title="Upper Line Value?")
lowLine = input(30, minval=10, maxval=50, title="Lower Line Value?")
trailStep=input(100,minval=10,title="Trialing step value")

// current stochastic calculation
k = sma(stoch(close, high, low, len), smoothK)
d = sma(k, smoothD)

//mtf stochastic calculation smoothed with period

mtfK= sma(stoch(close, high, low, len), smoothK*3)
mtfD= sma(k, smoothD*3)

plot(k,"current TF k",blue,style=line, linewidth=2)
plot(d,"current TF d",red,style=line, linewidth=2)
plot(mtfK,"MTF TF k",black,style=line)
plot(mtfD,"Multi TF d",green,style=line, linewidth=2)
hline(upLine)
hline(50)
hline(lowLine)

longCondition = crossover(mtfK, 50) and k>50 and  k>d and mtfK>mtfD
if (longCondition)
    strategy.entry("Lungo", strategy.long)

shortCondition = crossunder(mtfD, 50) and k<50 and  k<d and mtfK<mtfD
if (shortCondition)
    strategy.entry("Corto", strategy.short)
    
exitlong=crossunder(mtfD, upLine)
exitshort=crossover(mtfK, lowLine)

if (exitlong)
    strategy.exit("Esci lungo","Lungo",trail_points=trailStep)
if (exitshort)
    strategy.exit("Esci corto","Corto",trail_points=trailStep)
    
showZones   = input(true, title="Show Bullish/Bearish Zones")
// bullish signal rule: 
bullishRule = k >= mtfD
// bearish signal rule: 
bearishRule = k <= mtfD
// current trading State
ruleState = 0
ruleState := bullishRule ? 1 : bearishRule ? -1 : nz(ruleState[1])
bgcolor(showZones ? ( ruleState==1 ? green : ruleState==-1 ? red : gray ) : na , title="supertrend Bullish/Bearish Zones", transp=90)



Больше