
La estrategia de cruce de medias genera una señal de transacción calculando el cruce de medias de SMA de dos diferentes configuraciones de parámetros. Cuando una SMA más rápida atraviesa una SMA más lenta, genera una señal de compra; cuando una SMA más lenta atraviesa una SMA más rápida, genera una señal de venta. La estrategia utiliza dos conjuntos de parámetros de SMA simultáneamente, uno para determinar el punto de compra y otro para determinar el punto de venta.
La estrategia utiliza dos conjuntos de parámetros de línea media SMA:smaB1、smaB2ysmaS1、smaS2。smaB1ysmaB2Se usan para determinar las señales de compra, que representan respectivamente una línea media más lenta y una más rápida.smaB1Se lo llevo.smaB2El precio de compra es el precio de venta de un producto.smaS1ysmaS2Se utiliza para determinar la señal de venta, que también representa una línea media más lenta y más rápida, respectivamente.smaS2¿Qué estás haciendo?smaS1Se generan señales de venta. De esta manera, se pueden ajustar las condiciones de compra y venta de manera flexible para adaptarse a diferentes entornos de mercado.
En concreto, la estrategia determina el momento de compra y venta mediante el cálculo del SMA del precio cerrado y la supervisión en tiempo real de la intersección de los dos conjuntos de líneas medias SMA. Cuando se cruza la línea lenta en la SMA rápida, se considera que el movimiento del precio es positivo hacia arriba, por lo que se hace más; y cuando se cruza la línea lenta en la SMA baja, se determina que el movimiento del precio se convierte en una caída, por lo que se borra más.
La estrategia tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
Para controlar los riesgos mencionados anteriormente, se pueden mejorar métodos como el bloqueo de ganancias mediante la optimización de la combinación de parámetros SMA, combinado con un stop loss dinámico.
La estrategia puede ser optimizada en los siguientes aspectos:
La estrategia de cruce de medias produce una señal de negociación sencilla y efectiva mediante el cálculo de la intersección de dos conjuntos de medias SMA. La estrategia permite un ajuste flexible de los parámetros y se aplica a diferentes variedades. Es una estrategia de seguimiento de tendencias común.
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 5m
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/
// © melihtuna
//@version=4
strategy("SMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent)
smaB1 = input(title="smaB1",defval=377)
smaB2 = input(title="smaB2",defval=200)
smaS1 = input(title="smaS1",defval=377)
smaS2 = input(title="smaS2",defval=200)
smawidth = 2
plot(sma(close, smaB1), color = #EFB819, linewidth=smawidth, title='smaB1')
plot(sma(close, smaB2), color = #FF23FD, linewidth=smawidth, title='smaB2')
plot(sma(close, smaS1), color = #000000, linewidth=smawidth, title='smaS1')
plot(sma(close, smaS2), color = #c48dba, linewidth=smawidth, title='smaS2')
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2020, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => time >= start and time <= finish ? true : false
longCondition = crossover(sma(close, smaB1),sma(close, smaB2))
if (window() and longCondition)
strategy.entry("BUY", strategy.long)
shortCondition = crossover(sma(close, smaS2),sma(close, smaS1))
if (window() and shortCondition)
strategy.entry("SELL", strategy.short)