Стратегия объединяет индикаторы EMA и MACD для создания торговых сигналов и использует стоп-лосс для контроля риска. Стратегия применяется для трендовых действий, предназначенных для долгосрочных позиций, которые отслеживают среднесрочные тенденции.
Стратегия делает больше, когда быстрая линия EMA пересекает медленную линию EMA и столбик MACDhistogram становится пустым; когда существуют позиции с несколькими позициями, устанавливается стоп-линия для отслеживания снижения, и если цена упадет выше стоп-линии, то стоп-линия выходит из позиции с несколькими позициями.
В частности, стратегия использует 7-дневную ЭМА и 14-дневную ЭМА для построения быстрой ЭМА; используйте 12-дневную ЭМА минус 26-дневную ЭМА для получения значения MACD, а затем используйте 9-дневную ЭМА для получения линии Сигнала. Когда 7-дневная ЭМА проходит через 14-дневную ЭМА, а значение MACD проходит через Сигнал, открывайте позицию; затем установите нисходящую следящую стоп-линию, если цена упадет более чем на определенную долю.
Эта стратегия в сочетании с двумя показателями EMA и MACD позволяет эффективно отфильтровывать ложные прорывы. EMA определяет направление тренда, MACD определяет точку покупки и продажи, что в сочетании может снизить частоту торговли и повысить качество сигнала. Следующий стоп может максимально защитить достигнутую прибыль и своевременно остановить убытки в случае серьезных неблагоприятных ситуаций.
Отзывы показывают, что стратегия также может получить хорошую прибыль в медвежьем рынке, что свидетельствует о том, что стратегия обладает некоторой грубостью. Стратегия имеет низкую частоту торговли и подходит для среднесрочных и долгосрочных позиций. Можно соответствующим образом скорректировать параметры цикла EMA, чтобы скорректировать тенденцию стратегии.
Эта стратегия основана на показателях, и существует риск, что они будут арбитражированы. Когда рынок находится в фазе шоковой коррекции, EMA и MACD могут создавать большое количество ложных сигналов, что приводит к чрезмерной торговле и убыткам.
Можно уменьшить ошибочные сигналы путем соответствующего расширения параметров цикла EMA. Также можно комбинировать фильтрующие сигналы с другими индикаторами, такими как количественный индикатор, индикатор волатильности и т. Д. Кроме того, можно корректировать коэффициент остановки в зависимости от рыночных условий, чтобы сбалансировать риск остановки и arbitrage.
Можно тестировать различные комбинации циклов EMA, чтобы найти наиболее подходящие для стратегии циклические параметры.
Для улучшения качества сигнала могут быть добавлены другие индикаторы для фильтрации сигнала, такие как RSI, KD и т. д.
Для оптимизации стратегии хранения убытков можно настроить динамическое отслеживание убытков с возможностью корректировки коэффициента хранения убытков в зависимости от разных сортов.
В сочетании с техническими показателями, такими как прорыв, форма, можно установить больше условий для открытия и закрытия позиций, что делает стратегию более индивидуальной.
Можно внедрить машинное обучение для прогнозирования направления циклических тенденций, чтобы помочь EMA определить общую тенденцию.
Стратегия в целом достаточно стабильна, и она может принести хорошую прибыль в медвежьем рынке. Однако существует определенный риск арбитража, который требует оптимизации параметров и фильтрующих условий. Эффективность стратегии будет лучше, если можно будет дополнительно комбинировать другие технические показатели и методы оптимизации, такие как машинное обучение. В целом, стратегия предоставляет надежный шаблон для количественных торгов.
/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-19 00:00:00
period: 10m
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/
// © Coinrule
//@version=5
strategy('EMA and MACD with Trailing Stop Loss',
overlay=true,
initial_capital=1000,
process_orders_on_close=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=30,
commission_type=strategy.commission.percent,
commission_value=0.1)
showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0
// EMAs
fastEMA = ta.ema(close, 7)
slowEMA = ta.ema(close, 14)
plot(fastEMA, color = color.blue)
plot(slowEMA, color = color.green)
//buyCondition1 = ta.crossover(fastEMA, slowEMA)
buyCondition1 = fastEMA > slowEMA
// DMI and MACD inputs and calculations
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)
buyCondition2 = ta.crossover(macd_signal, macd)
// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01
// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
stopValue = close * (1 - longTrailPerc)
math.max(stopValue, longStopPrice[1])
else
0
shortStopPrice := if strategy.position_size < 0
stopValue = close * (1 + shortTrailPerc)
math.min(stopValue, shortStopPrice[1])
else
999999
if (buyCondition1 and buyCondition2 and notInTrade and timePeriod)
strategy.entry(id="Long", direction = strategy.long)
strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)
//if (sellCondition1 and sellCondition2 and notInTrade and timePeriod)
//strategy.close(id="Close", when = sellCondition1 or sellCondition2)