
Эта стратегия использует тенденции устранения цен на акции, чтобы более четко видеть форму MACD. Для создания торгового сигнала используются расчеты DEMA-быстрой и DEMA-медленной линий, а затем MACD-прямых и сигнальных линий, и их перекрестные решения. Эта стратегия также сочетает в себе фильтрацию условий по месяцам, датам и логике остановки убытков для устранения позиций, что создает более полную систему стратегий.
Во-первых, рассчитывается цена EMA, чтобы устранить тенденцию цены, чтобы получить цены после устранения тенденции EMA. Затем на основе EMA рассчитывается, соответственно, быстрая DEMA, медленная DEMA и прямая MACD.*EMA1-EMA2) 。 медленная линия DEMA и сигнальная линия рассчитываются аналогично 。 после получения MACD прямой линии ((быстрая линия DEMA - медленная линия DEMA) и сигнальной линии, если MACD прямой линии проходит по сигнальной линии, производится сигнал покупки; если MACD прямой линии проходит по сигнальной линии, производится сигнал продажи 。 наконец, в сочетании с условиями месяца, даты фильтруют сигнал и устанавливают логику остановки убытков 。
Основная логика этой стратегии заключается в следующем:
Устранение ценовых тенденций, более четкое представление о форме MACD
Вычислите скоростные и медленные линии DEMA и получите прямые и сигнальные линии MACD
MACD-линия и сигнальная линия, пересекающиеся, генерируют торговый сигнал
Фильтрация по дате и месяцу
Настройка стоп-логики
Основные преимущества этой стратегии:
Устранение ценовых тенденций позволяет более четко видеть пересечения MACD-индикаторов, чтобы избежать заблуждения по поводу тенденций.
Показатели MACD рассчитываются с помощью алгоритма DEMA, который позволяет отфильтровывать некоторый шум, чтобы сделать сигнал более четким.
Фильтрация по датам и месяцам позволяет сократить количество ненужных сделок.
Настройка логики остановки убытков, которая позволяет своевременно остановить убытки и контролировать риск.
Использование перекрестных сигналов позволяет сократить количество ошибочных сделок.
В целом, эта стратегия, в сочетании с устранением тенденций, расчетом DEMA и фильтрацией условий, позволяет создать более четкий и надежный торговый сигнал.
В этой стратегии также есть некоторые риски, о которых следует помнить:
После устранения тенденции может увеличиться количество перекрестных сигналов MACD, что требует проверки в реальном времени.
Несмотря на то, что алгоритм DEMA отфильтровал часть шума, в расчете показателя все же может быть больше ложных сигналов.
Возможно, вы пропустили несколько торговых возможностей, потому что фильтрация по датам и месяцам была слишком жесткой.
Стоп-позиции должны быть обоснованными. Слишком широкие ограничения увеличивают риск, а слишком жесткие - увеличивают вероятность потери.
Стратегия основывается на MACD-индикаторе, эффективность которого может быть затронута, если рынок не подходит для его использования.
Поскольку существует много возможностей для оптимизации параметров стратегии, необходимо провести дальнейшие тесты с помощью обратной связи и на диске.
Ответ:
Добавьте дополнительные признаки, чтобы избежать ложных сигналов.
Оптимизация фильтрации дат и надлежащая разгрузка.
Тщательно протестировать и оптимизировать точку остановки.
Присоединяйтесь к механизму определения тенденций и избегайте контрастной торговли.
Всесторонний анализ и оптимизация параметров для повышения стабильности.
Эта стратегия может быть оптимизирована в следующих аспектах:
Проверьте различные средние цены, чтобы найти более подходящий альтернативный тип линии EMA.
Попробуйте различные комбинации параметров, оптимизируя скорость, медленность и длину сигнальных линий MACD.
Увеличение количественных показателей, таких как вспомогательные показатели суждения, чтобы избежать ложных сигналов.
Оптимизация стратегии остановки убытков, установка разумного подвижного остановки или привязки единого остановки убытков.
Оптимизация фильтрации по датам и месяцам, чтобы сделать ее более гибкой.
Добавить определение тенденции, избежать обратной операции.
Оптимизация всех параметров, повышение стабильности стратегии.
Проверка долгосрочной эффективности стратегии проводится в более длительных периодах времени.
Проверка в реальном пространстве, дальнейшие изменения параметров стратегии в зависимости от ситуации в реальном пространстве.
В целом, стратегия использует метод устранения тенденций, вычисляет MACD-индикатор в форме DEMA и в сочетании с фильтрацией даты генерирует торговый сигнал. Это простая, но действенная стратегия.
/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title = "Trendless MACD Strategy",shorttitle="MACD-T Strategy",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.01,initial_capital=100000)
maperiod=input(9)
ema=ema(close,maperiod)
fastmacd = input(12,title='MACD Fast Line Length')
slowmacd = input(26,title='MACD Slow Line Length')
signalmacd = input(9,title='Signal Line Length')
macdslowline1 = ema(ema,slowmacd)
macdslowline2 = ema(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )
macdfastline1 = ema(ema,fastmacd)
macdfastline2 = ema(macdfastline1,fastmacd)
DEMAfast = ((2 * macdfastline1) - macdfastline2)
MACDLine = (DEMAfast - DEMAslow)
SignalLine1 = ema(MACDLine, signalmacd)
SignalLine2 = ema(SignalLine1, signalmacd)
SignalLine = ((2 * SignalLine1) - SignalLine2 )
MACDSignal = MACDLine-SignalLine
colorbar= MACDSignal>0?green:red
plot(MACDSignal,color=colorbar,style=columns,title='Histogram',histbase=0)
p1 = plot(MACDLine,color=blue,title='MACDLine')
p2=plot(SignalLine,color=red,title="SignalLine")
fill(p1,p2,color=blue)
longCond = crossover(MACDLine,SignalLine)
shortCond = crossunder(MACDLine,SignalLine)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
yearfrom= input(2018)
yearuntil=input(2021)
if ( longCond )
strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND", comment="LONG")
else
strategy.cancel(id="LONG")
if ( shortCond )
strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND", comment="SHORT")
else
strategy.cancel(id="SHORT")