Стратегия 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 пересекает нижнюю полосу, запускается сигнал закрытия.
Преимущества этой стратегии:
Использование двойной стохастики обеспечивает более точное определение бычьих и медвежьих зон. Индикатор текущего периода оценивает краткосрочные тенденции, в то время как индикатор более крупного периода оценивает долгосрочные тенденции. Объединение двух способно лучше улавливать тенденции.
Торговля, основанная на перекрестных показателях различных временных рамок, может эффективно отслеживать тенденции и достигать покупки низкого уровня и продажи высокого.
Логика стоп-лосса помогает контролировать риски и в некоторой степени ограничивать потери.
Логика стратегии проста и ясна, легко понять и реализовать для торговли в режиме реального времени.
Стратегия также сопряжена с некоторыми рисками:
Двойная стохастика может генерировать ложные сигналы, вызывая ненужные сделки. Например, расхождения между краткосрочными и долгосрочными тенденциями, вызванными внезапными событиями.
Неправильные настройки стоп-потери могут привести к увеличению потерь.
Частая торговля, генерируемая этой стратегией, может негативно повлиять на прибыль из-за комиссионных.
Стратегия опирается исключительно на технические показатели, не учитывая фундаментальные показатели, которые должны контролироваться в некоторой степени.
Решения:
Настройка параметров двойной стохастики для уменьшения ложных сигналов.
Оптимизировать логику стоп-лосса и установить разумные расстояния стоп-лосса.
Настраивайте параметры, чтобы уменьшить частоту торговли.
Обратите внимание на важные фундаментальные события, чтобы избежать субъективной торговли.
Стратегия может быть оптимизирована в следующих аспектах:
Оптимизировать параметры двойной стохастики для уменьшения ложных сигналов.
Включайте другие индикаторы для фильтрации сигналов, таких как MACD, скользящие средние и т. д., избегая ложных сигналов.
Оптимизировать стратегию стоп-лосса путем тестирования различных точек и коэффициентов стоп-лосса для эффективного контроля рисков.
Включать показатели объема торговли, такие как разрывы объема, чтобы избежать неэффективных сделок во время консолидации цен.
Слишком короткие периоды хранения приводят к комиссионным расходам на прибыль, слишком длинные не могут остановить потери вовремя.
Включайте фундаментальные факторы, закрывая позиции вокруг значимых событий, чтобы избежать шока.
Стратегия 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)