
Стратегия генерирует торговый сигнал, рассчитывая кросс 5-дневного индекса перемещающегося среднего ((EMA) и 20-дневного простого перемещающегося среднего ((SMA)). При пересечении 20-дневного SMA на 5-дневную ЭМА, принимается позиционный вход в полиодер; при изменении цены до 5% или -5%, выходит из позиции.
Двухзначная скользящая средняя является широко используемым техническим индикатором. 5-дневная EMA представляет собой тенденцию к недавним изменениям цен, 20-дневная SMA представляет собой среднесрочную ценовую динамику. Когда краткосрочная средняя пересекает более длительную среднюю, это означает, что ценовая динамика изменилась в сторону падения, и можно сделать больше, чтобы войти в игру; наоборот, когда краткосрочная средняя пересекает более длительную среднюю, это означает, что цена изменилась в сторону падения, и следует учитывать выход.
Эта стратегия устанавливает 5-дневную ЭМА и 20-дневную СМА в качестве торговых сигналов. Генерация долгого сигнала, когда 5-дневная ЭМА пересекает 20-дневную СМА; прибыль или остановка, когда изменение цены позиции достигает 5% или -5%. Кроме того, в сочетании с показателем TII в качестве вспомогательного критерия.
Подробные стратегические шаги:
Эта стратегия использует движущийся средний сигнал золотого креста, который имеет следующие преимущества:
В целом, правила стратегии ясны, легко понятны и реализуемы, используются сложные технические показатели, такие как пересечение скользящих средних, а также более полные меры контроля риска, что является количественной торговой стратегией, подходящей для использования новичками.
В этой стратегии есть определенные риски, в основном:
Эти риски можно уменьшить следующими способами:
Так что есть еще место для оптимизации.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизируйте параметры скользящих средних. Вы можете проверить более короткие или более длительные комбинации параметров EMA и SMA, чтобы найти лучшие параметры.
Добавление фильтров для других показателей. Вспомогательные суждения по показателям, таким как MACD, KDJ и т. Д., позволяют избежать частичного ошибочного сигнала.
Применение алгоритмов машинного обучения. Моделирование исторических данных с использованием статистических методов или нейронных сетей для автоматического поиска наиболее оптимальных параметров.
В зависимости от степени волатильности рынка и индивидуальных особенностей акций, размер стоп-лосса может быть скорректирован, чтобы лучше контролировать риск.
Расширять на другие разновидности. Применить те же правила стратегии для других разновидностей, таких как иностранная валюта, цифровые валюты и т. Д.
Подобные улучшения могут значительно повысить стабильность и прибыльность стратегии.
Эта стратегия в целом является легко понятной и реализуемой стратегией двойного пересечения движущихся средних. Она использует преимущества сигналов движущихся средних, а также дополняется показателями TII, чтобы попытаться отфильтровать ошибочные сигналы.
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA-SMA Crossover Strategy", shorttitle="EMA-SMA Cross", overlay=true)
// Define the moving averages
ema5 = ta.ema(close, 5)
sma20 = ta.sma(close, 20)
smaVolume10 = ta.sma(volume, 50)
majorLength = input(60, title="Major Length")
minorLength = input(30, title="Minor Length")
src = input(close, title="Source")
smaValue = ta.sma(src, majorLength)
positiveSum = 0.0
negativeSum = 0.0
for i = 0 to minorLength - 1
price = na(src[i]) ? 0 : src[i]
avg = na(smaValue[i]) ? 0 : smaValue[i]
positiveSum := positiveSum + (price > avg ? price - avg : 0)
negativeSum := negativeSum + (price > avg ? 0 : avg - price)
tii = 100 * positiveSum / (positiveSum + negativeSum)
// Buy condition: 5 EMA crosses above 20 SMA
buyCondition = ta.crossover(ema5, sma20) and tii > 0 and tii >= tii[1]
//and volume > smaVolume10 //
// Track entry price
var entryPrice = 0.0
if (buyCondition)
entryPrice := close
// Calculate percentage change from entry price
priceChange = close / entryPrice - 1
// Plotting the moving averages on the chart
plot(ema5, color=color.blue, title="5 EMA")
plot(sma20, color=color.red, title="20 SMA")
// Highlighting buy signals and exit signals on the chart
// plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, size=size.small, style=shape.labelup, text="Buy")
// Strategy entry and exit
if (buyCondition)
strategy.entry("Buy", strategy.long)
// Exit conditions
if (strategy.opentrades > 0)
if (priceChange >= 0.05 or priceChange <= -0.05)
strategy.close("Buy")