
Стратегия, объединяющая двусторонние индикаторы и индикаторы движущихся средних линий, использует двусторонние индикаторы для определения направления рыночных тенденций, а также использует движущуюся среднюю линию для подтверждения тенденций, относятся к стратегии отслеживания тенденций. В сочетании с остановками для контроля риска, относятся к более стабильным стратегиям.
Вычислить верхнюю линию, состоящую из средней величины SMA, наивысшей в указанном периоде, и нижнюю линию, состоящую из средней величины SMA, наименьшей в указанном периоде, и средней величины SMA, наивысшей в указанном периоде.
Сравнение текущих цен на закрытие с отношением к верхней и нижней полосе, определение направления текущей тенденции. Цена закрытия выше верхней полосы, определение как многоголовый; цена закрытия ниже нижней полосы, определение как пустой.
Расчет средней линии SMA на 200 циклов для оценки средне- и долгосрочных тенденций.
При оценке как плюсовой, если цена закрытия прорывает среднюю линию SMA вниз, то это дает сигнал к покупке; при оценке как пустой, если цена закрытия прорывает среднюю линию SMA вверх, то это дает сигнал к продаже.
После входа в многоочередную позицию, если цена закрытия снижается, это служит сигналом о равновесии; после входа в пустую позицию, если цена закрытия снижается, это служит сигналом о равновесии.
Устанавливается фиксированная пропорциональная точка убытков, в случае, если точка убытков будет превышена по цене закрытия, активируется пункт убытков.
Использование двусторонних показателей для определения направления тенденции позволяет эффективно идентифицировать тенденции и повысить вероятность того, что они идут в правильном направлении.
Добавление равномерной линии позволяет отфильтровывать часть шумовых сигналов, чтобы избежать ошибочной торговли в условиях шока.
Применение стоп-лосса для управления риском одиночных потерь позволяет эффективно избежать чрезмерных потерь.
Стратегия является относительно простой и понятной для начинающих и практикующих.
Двойной динамический показатель более чувствителен к параметрам, различные комбинации параметров цикла могут привести к большим различиям в результатах, поэтому необходимо тщательно тестировать оптимизацию параметров.
Слишком длинная средняя линия отфильтровывает больше возможностей для торговли; слишком короткая средняя линия не эффективна для устранения шума. Необходимо взвесить параметры цикла средней линии.
Стоп-стоп устанавливается слишком широко, что не позволяет хорошо контролировать риск; слишком узкий может быть вызван регулярными колебаниями цен.
Стратегия больше зависит от оптимизации параметров, и если параметры установлены неправильно, то может быть невозможно правильно определить направление тренда, что приводит к ошибочным торговым решениям.
Можно тестировать комбинации различных циклических параметров, чтобы найти параметры, которые позволяют более точно определить тенденцию.
Можно проверить средний показатель для разных циклов, чтобы найти оптимальный средний параметр, который уравновешивает эффект от шума и сохраняет сигнал.
Можно попробовать разработать механизм остановки, который адаптируется к колебаниям рынка, чтобы остановка была ближе к рыночным условиям.
Для повышения стабильности стратегии можно также попробовать включить другие показатели, такие как подтверждение количества, прохождение многократных временных рамок и т. д.
Оптимизированные стратегии могут быть проверены с помощью анализа ходьбы вперед, чтобы убедиться, что параметры остаются стабильными.
Стратегия, объединяющая преимущества двойного динамического индикатора и движущейся средней линии, относится к стратегиям трендового отслеживания с большим пространством для оптимизации параметров. С помощью разумной настройки и оптимизации параметров можно получить лучшую стратегическую эффективность. Однако следует обратить внимание на контроль риска чрезмерной оптимизации параметров и гарантировать стабильность параметров. В целом, стратегия подходит для использования в качестве случая исследования и изучения стратегии.
/*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=5
//@Isaac
//Estrategia vista en ▼▼
//YT: Trading Zone
strategy('SSL Strategy + EMA 200 AND Stop Loss', overlay=true)
ema = ta.ema(close, 200)
stop_loss = input.float(2.00, title='Stop Loss', step=0.10)
period = input(title='Period', defval=10)
len = input(title='Period', defval=10)
smaHigh = ta.sma(high, len)
smaLow = ta.sma(low, len)
Hlv = int(na)
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh
cruceArriba = ta.crossover(sslUp, sslDown)
cruceAbajo = ta.crossunder(sslUp, sslDown)
alcista = (close > ema ) and (cruceArriba)
bajista = (close < ema) and (cruceAbajo)
var SL = 0.0
//Cerrar compra por cruce
por_cruce = ta.crossunder(sslUp, sslDown)
//Cerrar venta por cruce
por_cruceAB = ta.crossunder(sslDown, sslUp)
//Cerrar compra y venta por stop loss
Stop = SL
comprado = strategy.position_size > 0
vendido = strategy.position_size < 0
UTmpconvertL = strategy.position_avg_price * (1 + 0.1)
UTmpdefineL = (UTmpconvertL > close and strategy.openprofit > 0.1)
UTSPL = UTmpdefineL
SPL = UTSPL
///////////////////////////////////////////////////////////////////////
UTmpconvertLS = strategy.position_avg_price * (1 + 0.1)
UTmpdefineLS = (UTmpconvertLS > close and strategy.openprofit > 0.1)
UTSPLS = UTmpdefineLS
SPLS = UTSPLS
////////////////////////////////////////////////////////////////////////
if not comprado and not vendido and alcista
cantidad = (strategy.equity / close)
strategy.entry('Compra', strategy.long, qty=cantidad, comment="Long")
SL := sslDown
if comprado and not vendido and por_cruce and SPL
strategy.close("Compra", comment="Exit Long")
SL := 0
if comprado and not vendido and Stop
strategy.exit('Compra', stop=Stop, comment="SL")
SL := 0
///////////////////////////////////////////////////////////////////
if not comprado and not vendido and bajista
cantidad = (strategy.equity / close)
strategy.entry('Venta', strategy.short, qty=cantidad, comment="Short")
SL := sslDown
if not comprado and vendido and por_cruceAB and SPLS
strategy.close("Venta", comment="Exit Short")
SL := 0
if not comprado and vendido and Stop
strategy.exit('Venta', stop=Stop, comment="SLS")
SL := 0
plot(Stop > 0 ? Stop : na, style=plot.style_circles, color=color.new(color.yellow,0))
plot(ema)
plot(sslDown, linewidth=2, color=color.new(color.red, 0))
plot(sslUp, linewidth=2, color=color.new(color.lime, 0))