
Эта стратегия позволяет отслеживать низкорисковые тенденции, рассчитывая средние линии разных циклов, чтобы определить, превзошли ли цены ключевые средние линии.
Когда 10-дневная средняя линия пересекает 200-дневную среднюю линию, а 20-дневная средняя линия пересекает 50-дневную среднюю линию, делайте больше; когда 10-дневная средняя линия пересекает 200-дневную среднюю линию, а 20-дневная средняя линия пересекает 50-дневную среднюю линию, делайте пустоту. Здесь, судя по двойной средней линии, можно эффективно отфильтровать ложные прорывы.
Сначала стратегия вычисляет четыре индексные скользящие средние (EMA) за различные периоды: 10, 20, 50 и 200 дней. Из них 10-я линия представляет собой краткосрочную тенденцию, 20-я - среднесрочную, 50-я - среднесрочную, а 200-я - долгосрочную. Если краткосрочная линия проходит через длинную линию, то это означает, что цена может пробиться вверх или вниз.
Таким образом, с помощью двойной равнолинейной фильтрации можно эффективно снизить вероятность ложного прорыва, что делает генерируемый торговый сигнал более надежным.
Это можно улучшить путем соответствующего ослабления величины прорыва средней линии или оптимизировать с помощью других показателей, таких как подтверждение объема сделок.
В целом, эта стратегия основана на двойной пропорции, дополненной параметрической оптимизацией, объемом сделок и другими показателями, что позволяет эффективно создать стабильную систему отслеживания тенденций.
Эта стратегия в целом является простой и практичной стратегией отслеживания тенденций. Она использует двойную среднюю линию в качестве основной основы для принятия решений о сделке, снижает вероятность ложных прорывов с помощью двойной фильтрации, и создает более надежный сигнал. В то же время параметры установки просты и просты в использовании.
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-13 02:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Advancing Our Basic Strategy", overlay=true)
ema10 = ema(close, 10)
ema20 = ema(close, 20)
ema50 = ema(close, 50)
ema200 = ema(close, 200)
long = ema10 > ema200 and ema20 > ema50
short = ema10 < ema200 and ema20 < ema50
longcondition = long and long[10] and not long[11]
shortcondition = short and short[10] and not short[11]
closelong = ema10 < ema200 or ema20 < ema50 and not long[11]
closeshort = ema10 > ema200 or ema20 > ema50 and not short[11]
plot(ema10, title="10", color=green, linewidth=2)
plot(ema20, title="20", color=red, linewidth=3)
plot(ema50, title="50", color=purple, linewidth=2)
plot(ema200, title="200", color=blue, linewidth=3)
testPeriodStart = timestamp(2018,8,1,0,0)
testPeriodStop = timestamp(2038,8,30,0,0)
if time >= testPeriodStart and time <= testPeriodStop
strategy.entry("Long", strategy.long, 1, when=longcondition)
strategy.entry("Short", strategy.short, 1, when=shortcondition)
strategy.close("Long", when = closelong)
strategy.close("Short", when = closeshort)