
Эта стратегия использует два индикатора: переходный средний обмен и индикатор ценовых колебаний для формирования торговых сигналов, позволяющих реализовать стратегию торговли тенденциями, которая захватывает отскок после появления циклического обмена.
В этой стратегии используются два основных технических показателя для определения торговых сигналов:
Этот раздел позволяет определить, есть ли обратный сигнал, рассчитывая падение цены закрытия за последние два дня в сочетании с величиной и величиной значения быстрого K. Сигнал покупки возникает, когда цена продолжает расти в течение последних двух дней, и значение быстрого K ниже значения медленного K. Сигнал продажи возникает, когда цена продолжает падать в течение последних двух дней, и значение быстрого K выше значения медленного K.
Показатель Detrend Price Oscillator идентифицирует циклы цен путем нанесения горизонтальных движущихся средних и их связи с ценой на этой линии. Он фильтрует тенденции, которые длится дольше, чем рассчитанные циклы, и, таким образом, может идентифицировать краткосрочные колебания, скрытые в движущихся средних.
Эта стратегия объединяет сигналы обоих индикаторов, то есть, когда появляется сигнал об обратном движении средней линии, в то же время цена отходит от индикатора, который также дает подтвержденный сигнал об обратном движении, это создает торговый инструмент. Таким образом, можно отфильтровать некоторые неэффективные сигналы об обратном движении и использовать возможность тренда для восстановления после обратного движения.
Наибольшее преимущество этой стратегии заключается в том, что она использует преимущества обоих показателей для взаимодополняющего подтверждения, что позволяет эффективно отфильтровывать недействительные сигналы и повышать их надежность.
Сам по себе переходный индикатор может создавать ошибочные сигналы и легко преследовать высокие и низкие показатели. В то же время, введение комбинации с показателями, которые не соответствуют ценам, позволяет избежать обратных операций в нежелательных колебаниях.
Параметрная настройка индекса ценового отклонения также определяет, что он идентифицирует только колебания с более короткими периодами, что очень хорошо согласуется с суждением об обратном движении средней линии и позволяет идентифицировать разумные моменты обратного хода.
Основные риски этой стратегии:
Обратная стоп-линия легко может произойти в промежутках между сопоставлением колебаний. Если резистентность недостаточна, легко снова отрегулировать, чтобы коснуться стоп-линии и не получить прибыль.
Параметры для показателей ценового отклонения, установленные слишком большими, могут идентифицировать тенденции средне-длинного цикла; слишком маленькие могут увеличить риск ошибочного суждения. Необходимо тщательное тестирование для разных сортов.
Крупные внезапные новостные события могут нарушить суждение о тенденции, что приводит к потере обратного сигнала. Это требует внимания к основным новостям и избегать слепой торговли во время новостных событий.
Подобная стратегия может быть оптимизирована в следующих аспектах:
Разумно настроить мобильный стоп или временный стоп, чтобы контролировать одноразовые потери.
Увеличение подтверждения объема сделки, например, появление сигнала только при прорыве среднего объема сделки, позволяет избежать неэффективного прорыва с недостаточным объемом.
Динамическая оптимизация параметров в зависимости от рыночной фазы, адекватная смягчение параметров при явных тенденциях и ужесточение параметров при колебаниях.
Оценка и выбор комбинаций параметров с использованием методов машинного обучения, таких как случайные леса, для оптимизации динамического интеллекта.
Эта стратегия лучше всего сочетает в себе преимущества обоих показателей, чтобы уловить отскок на переломных моментах. Хотя все еще есть проблемы с подстраиванием и оптимизацией параметров, общая концепция ясна, логична и заслуживает дальнейшего тестирования и оптимизации для достижения стабильной прибыли.
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 30/12/2019
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
// The strategy sells at market, if close price is lower than the previous close price
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The Detrend Price Osc indicator is similar to a moving average,
// in that it filters out trends in prices to more easily identify
// cycles. The indicator is an attempt to define cycles in a trend
// by drawing a moving average as a horizontal straight line and
// placing prices along the line according to their relation to a
// moving average. It provides a means of identifying underlying
// cycles not apparent when the moving average is viewed within a
// price chart. Cycles of a longer duration than the Length (number
// of bars used to calculate the Detrend Price Osc) are effectively
// filtered or removed by the oscillator.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
vFast = sma(stoch(close, high, low, Length), KSmoothing)
vSlow = sma(vFast, DLength)
pos = 0.0
pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0)))
pos
DPO(Length) =>
pos = 0.0
xPrice = close
xsma = sma(xPrice, Length)
nRes = xPrice - xsma
pos := iff(nRes > 0, 1,
iff(nRes < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Detrended Price Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDPO = input(14, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDPO = DPO(LengthDPO)
pos = iff(posReversal123 == 1 and posDPO == 1 , 1,
iff(posReversal123 == -1 and posDPO == -1, -1, 0))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1 , 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )