
Эта стратегия представляет собой перекрестную стратегию, основанную на двух движущихся средних, EMA и SMA. Когда более медленная EMA пересекает более быструю SMA снизу вверх, она создает сигнал к покупке; когда более медленная EMA пересекает более быструю SMA снизу вверх, она создает сигнал к продаже.
Стратегия использует два скользящих средних: 20-циклический SMA и 21-циклический EMA. Когда EMA пересекает SMA снизу вверх, это указывает на то, что рынок может перейти в восходящую тенденцию, и, следовательно, создать сигнал покупки. Напротив, когда EMA пересекает SMA снизу вверх, это указывает на то, что рынок может перейти в нисходящую тенденцию, и, следовательно, создать сигнал продажи.
Стратегия пересечения равнолинейных бычьих рыночных поддерживающих полос - это простая и понятная стратегия для отслеживания тенденций, особенно применимая к бычьим рынкам. Однако, эта стратегия также имеет определенные ограничения, такие как ложные сигналы, отставание и ограниченная способность распознавать тенденции.
/*backtest
start: 2023-05-17 00:00:00
end: 2024-05-22 00:00:00
period: 1d
basePeriod: 1h
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/
// © rodrinverte
//@version=5
strategy("EMA-SMA Crossover Strategy", overlay=true, initial_capital = 1000)
// Definir la longitud de las medias móviles
fast = ta.sma(close, 20)
slow = ta.ema(close, 21)
// Definir condiciones de compra y venta
buySignal = ta.crossover(slow, fast)
sellSignal = ta.crossunder(slow, fast)
// Configurar colores de las líneas y relleno
emaColor = buySignal ? color.green : sellSignal ? color.red : color.blue
smaColor = color.gray
fillColor = slow < fast ? color.new(color.green, 90) : color.new(color.red, 90)
// Esperar un periodo para confirmar la señal de compra o venta
buyConfirmation = close > close[1] and buySignal
sellConfirmation = close < close[1] and sellSignal
// Dibujar las medias móviles
plot(slow, title="EMA", color=emaColor)
plot(fast, title="SMA", color=smaColor)
// Configurar las señales de compra y venta
plotshape(buyConfirmation, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sellConfirmation, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Estrategia de compra y venta
if (buyConfirmation)
strategy.entry("Buy", strategy.long)
if (sellConfirmation)
strategy.entry("Sell", strategy.short)
// Cerrar posición opuesta al cruce original
if (sellSignal)
strategy.close("Buy")
if (buySignal)
strategy.close("Sell")