
Эта стратегия, которая сочетает в себе среднюю линию и MACD-индикатор для определения тенденции и выпуска торговых сигналов, является типичной стратегией отслеживания тенденций. Она использует среднюю линию ZLSMA с двумя различными периодами для определения направления тенденции, а затем сочетает в себе многополосную линию MACD-индикатора для выпуска конкретных сигналов покупки и продажи, чтобы эффективно улавливать среднюю и длинную тенденции и избегать заблуждения от шума рынка в краткосрочной перспективе.
Стратегия состоит из следующих частей:
Средняя скорость ZLSMA и средняя скорость ZLSMA: для определения направления общей тенденции, сравнивая среднюю скорость ZLSMA разных периодов. Быстрая линия состоит из 32 циклов ZLSMA, а медленная линия состоит из 400 циклов ZLSMA.
MACD индикатор: от скорой линии ((12-я EMA) минус медленная линия ((26-я EMA) получается MACD с дифференцированным значением, затем с 9-й EMA получается сигнальная линия. Когда MACD проходит по сигнальной линии, это сигнал покупки, а когда проходит по ней, это сигнал продажи.
Торговые сигналы: сигналы на покупку или продажу появляются только тогда, когда ZLSMA-форма и MACD-сигналы синхронизированы. То есть, многоголовый тренд плюс MACD-золотой форк покупает, а пустой тренд плюс MACD-смертный форк продает.
Стоп-стоп: Стратегия пока не включает логику стоп-стоп-стоп и нуждается в дальнейшей оптимизации.
Вышеупомянутые комбинации используют среднюю линию для определения тенденции, MACD для определения времени входа в рынок, чтобы эффективно отфильтровать ложные прорывы и избежать заблуждения от шума краткосрочного рынка.
Основные преимущества этой стратегии:
Поймать тренд: путем различных циклических комбинаций средних линий можно определить направление тренда, чтобы эффективно поймать средний и длинный тренды.
Фильтрация шума: применение индикатора MACD позволяет отфильтровывать шум краткосрочного рынка, чтобы избежать заблуждения от небольших колебаний.
Параметры настраиваемы: среднелинейный цикл и MACD параметры могут быть настроены и оптимизированы для различных рынков.
Легкость внедрения: все показатели являются техническими показателями, используемыми в повседневной жизни, логика комбинации проста и понятна, легко понятна и применяется.
Контролируемый риск: есть четкая стратегия стоп-лосса и стоп-стопа, позволяющая контролировать риск и доходность каждой сделки.
Также существуют следующие риски:
Ошибки в определении направления большого тренда: если неправильно определить направление большого тренда, то все сделки могут потерпеть неудачу.
Неправильная оптимизация параметров: необходимо тщательно протестировать и оптимизировать среднелинейные и MACD параметры, иначе результат может оказаться плохим.
Отсутствие механизма остановки убытков: в настоящее время не установлена точка остановки убытков, существует риск чрезмерного убытка.
Ограниченное пространство для прибыли: в качестве стратегии отслеживания тенденций, каждое торговое место для прибыли ограничено, и необходимо количество, чтобы получить более высокую прибыль.
Слишком высокая частота сделок: неправильная настройка параметров может привести к чрезмерной частоте сделок, увеличению стоимости сделок и стоимости скольжения.
Эта стратегия может быть улучшена в следующих аспектах:
Присоединение к механизму остановки убытков: установление разумной точки остановки убытков и строгий контроль максимальных убытков от одной сделки.
Параметры оптимизации: найти наилучшее сочетание средней линии и параметров MACD путем отслеживания и оптимизации.
Снижение частоты торгов: регулирование параметров, чтобы гарантировать, что торговые сигналы появляются только тогда, когда тенденция очевидна.
В сочетании с другими факторами: могут быть добавлены другие факторы, такие как изменение объема торгов, для подтверждения тенденций и сигналов.
Оптимизация времени поступления: дальнейшая оптимизация применения показателей MACD для повышения точности поступления.
Универсальность для нескольких сортов: оптимизация параметров, позволяющая широко применять стратегию для разных сортов, расширяя область применения.
В целом, эта стратегия позволяет уловить тенденции средней и длинной линии с помощью простого и эффективного сочетания средней и длинной линий, что может служить базовой стратегией для количественной торговли. Однако, для достижения более стабильного эффекта торговли, необходима дальнейшая оптимизация параметров, контроль риска и объединение других факторов.
/*backtest
start: 2023-11-07 00:00:00
end: 2023-11-10 05:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © veryfid
//@version=5
strategy("Stratégie ZLSMA Bruno", shorttitle="Stratégie ZLSMA Bruno", overlay=false)
source = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below")
sd = input(true, title="Show Dots When MacD Crosses Signal Line?")
sh = input(true, title="Show Histogram?")
macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?")
hist_colorChange = input(true,title="MacD Histogram 4 Colors?")
//res = useCurrentRes ? period : resCustom
fastLength = input(12),
slowLength=input(26)
signalLength=input(9)
fastMA = ta.ema(source, fastLength)
slowMA = ta.ema(source, slowLength)
macd = fastMA - slowMA
signal = ta.sma(macd, signalLength)
hist = macd - signal
outMacD = macd
outSignal = signal
outHist = hist
histA_IsUp = outHist > outHist[1] and outHist > 0
histA_IsDown = outHist < outHist[1] and outHist > 0
histB_IsDown = outHist < outHist[1] and outHist <= 0
histB_IsUp = outHist > outHist[1] and outHist <= 0
//MacD Color Definitions
macd_IsAbove = outMacD >= outSignal
macd_IsBelow = outMacD < outSignal
//plot_color = hist_colorChange ? histA_IsUp ? aqua : histA_IsDown ? blue : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? color.lime : color.red : color.red
//signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime
circleYPosition = outSignal
//plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=4)
//plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=line ,linewidth=2)
//plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4)
plot(sd and ta.cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=plot.style_circles, linewidth=4, color=macd_color)
hline(0, '0 Line', linestyle=hline.style_solid, linewidth=2, color=color.white)
// Paramètres de la ZLSMA
length = input(32, title="Longueur")
offset = input(0, title="Décalage")
src = input(close, title="Source")
lsma = ta.linreg(src, length, offset)
lsma2 = ta.linreg(lsma, length, offset)
eq = lsma - lsma2
zlsma = lsma + eq
length_slow = input(400, title="Longueur")
offset_slow = input(0, title="Décalage")
lsma_slow = ta.linreg(src, length_slow, offset_slow)
lsma2_slow = ta.linreg(lsma_slow, length_slow, offset_slow)
eq_slow = lsma_slow - lsma2_slow
zlsma_slow = lsma_slow + eq_slow
// Paramètres de la sensibilité
sensitivity = input(0.5, title="Sensibilité")
// Règles de trading
longCondition = zlsma < zlsma_slow and zlsma_slow < zlsma_slow[1] and zlsma > zlsma[1] and ta.cross(outMacD, outSignal) and macd_color == color.lime//ta.crossover(zlsma, close) and ta.crossover(zlsma, zlsma[1]) // Croisement vers le haut
shortCondition = zlsma > zlsma_slow and zlsma_slow > zlsma_slow[1] and zlsma < zlsma[1] and ta.cross(outMacD, outSignal) and macd_color == color.lime //ta.crossunder(zlsma, close) and ta.crossunder(zlsma, zlsma[1]) // Croisement vers le bas
// Entrée en position
strategy.entry("Achat", strategy.long, when=longCondition)
strategy.entry("Vente", strategy.short, when=shortCondition)
botifySignalZLSMA = longCondition ? 1 : shortCondition ? -1 : 0
plot(botifySignalZLSMA, title='Botify_signal', display=display.none)
// Sortie de position
strategy.close("Achat", when=ta.crossunder(zlsma, close)) // Close the "Achat" position
strategy.close("Vente", when=ta.crossover(zlsma, close)) // Close the "Vente" position
// Tracé de la courbe ZLSMA
plot(zlsma, color=color.yellow, linewidth=3)
plot(zlsma_slow, color=color.red, linewidth=3)