Количественная торговая стратегия с несколькими периодами EMA


Дата создания: 2023-12-27 17:09:23 Последнее изменение: 2023-12-27 17:09:23
Копировать: 0 Количество просмотров: 640
1
Подписаться
1619
Подписчики

Количественная торговая стратегия с несколькими периодами EMA

Обзор

В данной статье представлена количественная торговая стратегия, основанная на пересечениях EMA в трех различных периодах. Эта стратегия предназначена для использования пересечения EMA для выявления долгосрочных и краткосрочных тенденций на фондовом рынке и принятия эффективных торговых решений.

Стратегический принцип

Стратегия использует три различных цикла EMA: 10 дней, 100 дней и 200 дней. Когда короткий период EMA ((10 дней) пересекает длинный период EMA ((100 дней или 200 дней), генерируется сигнал покупки или продажи в зависимости от направления пересечения. Стратегия также включает в себя временный фильтр, гарантирующий, что сделки совершаются только в определенный период времени. Эта комбинация увеличивает гибкость и адаптивность стратегии.

Анализ преимуществ

Преимущества такой стратегии заключаются в ее простоте и высокой адаптивности. Многоциклическая ЭМА обеспечивает многосторонний взгляд на рыночные тенденции, увеличивая точность торговых решений. В то же время, временные фильтры избегают нестабильности в определенные периоды рынка, снижая потенциальный риск.

Анализ рисков

Несмотря на эффективность такой стратегии, существуют определенные риски. Основным риском является то, что неожиданные события на рынке могут привести к провалу стратегии. Кроме того, показатели EMA могут быть запаздывающими, задерживающимися, отражающими изменения на рынке. Способы решения этих рисков включают мониторинг рынка в реальном времени и в сочетании с другими техническими показателями для повышения точности принятия решений.

Направление оптимизации

Оптимизация стратегии включает в себя комплексный использование нескольких технических индикаторов, таких как относительно сильный индекс (RSI) и бурин-полоса, для повышения глубины и ширины анализа рынка. Кроме того, можно лучше адаптироваться к различным рыночным условиям путем корректировки циклов EMA.

Подвести итог

В целом, такая многоциклическая стратегия торговли с перекрестным количеством EMA является эффективным инструментом, который может помочь трейдерам принимать лучшие решения на изменяющихся рынках. Эта стратегия имеет потенциал для получения более высокой прибыли в будущих сделках, путем постоянной оптимизации и адаптации к изменениям рынка.

Исходный код стратегии
/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
start = timestamp(2023,1,1,0,0)
end = timestamp(2024,1,1,0,0)
strategy("Tester Emas", overlay = true)

periodo1 = input(10,"Periodo_1")
periodo2 = input(100,"Periodo_2")
periodo3 = input(200,"Periodo_3")

//definir media moviles
ema1 = ta.ema(close,periodo1)
ema2 = ta.ema(close,periodo2)
ema3 = ta.ema(close,periodo3)

//Desde
desde_a = input(2000, title = "Desde año")
desde_m = input.int(   1, title = "Desde mes", minval=1, maxval = 12)
desde_d = input.int(   1, title = "Desde dia", minval=1, maxval = 31)

//Hasta
hasta_a = input(2030, title = "Hasta año")
hasta_m = input.int(   1, title = "Hasta mes", minval=1, maxval = 12)
hasta_d = input.int(   1, title = "Hasta dia", minval=1, maxval = 31)

FechaValida() => true

//Condicion de entradas
longCondition = ta.crossover(ema1, ema2)
shortCondition = ta.crossunder(ema1,ema2)

alcista = (ema1 > ema2) and (ema2 > ema3)
comprado =strategy.position_size > 0



//Comprar o vender segun las condiciones de entradas

//if (longCondition)
if (not comprado and alcista and FechaValida())
    // Round redondea mi capital para comprar las acciones en cantidades enteras
    cantidad = math.round(strategy.equity/ close)
    strategy.entry("Compra", strategy.long, cantidad)
//if (shortCondition)
if (comprado and not alcista and FechaValida())
    //strategy.entry("Venta", strategy.short)
    strategy.close("Compra" , comment = "Venta")

if (comprado and not FechaValida())
    //Cierre x finalizacion de periodo
    //strategy.entry("Venta", strategy.short)
    strategy.close("Compra" , comment = "Venta x fin")

//Graficar las medias moviles
plot(ema1, color = color.green, title = "Ema1")
plot(ema2, color = color.yellow, title = "Ema2")
plot(ema3, color = color.red, title = "Ema2")
//GMarca los cruces de medias
bgcolor(longCondition ? color.green : na)
bgcolor(shortCondition ? color.red : na)