Esta estrategia combina el uso de indicadores de línea media y indicadores de Stoch para diseñar un sistema de comercio cuantitativo con funciones de determinación de tendencias y sobreventa. La estrategia combina las ventajas de varios indicadores para sistematizar la determinación de tendencias y capturar oportunidades.
Principio de la estrategia:
Calcula la media media a largo plazo (MA) y la media a corto plazo (EMA), como indicadores técnicos para determinar la dirección de la tendencia.
Calcular el valor de Stoch K y el valor de Stoch D para determinar si se ha sobrecomprado o sobrevendido.
Cuando el CLOSE rompa el MA de abajo hacia arriba, y los valores de Stoch K y D son superiores a la línea de sobreventa, juzgue el punto de entrada de la línea larga y haga más.
Cuando el CLOSE rompe la EMA de arriba hacia abajo y el valor de Stoch K y el valor de D están por debajo de la línea de venta excesiva, se juzga que es el momento de entrada en la línea corta y se hace un descuento.
La dirección de la transacción según la marca COLOR.
Las ventajas de la estrategia:
La combinación de dos líneas equilibradas determina la dirección de la tendencia principal y evita señales erróneas.
El indicador Stoch identifica las zonas de sobrecompra y sobreventa para mejorar la probabilidad de obtener ganancias.
El uso combinado de varios indicadores, que se pueden verificar entre sí, aumenta la fiabilidad de la señal.
El riesgo de esta estrategia:
Los parámetros optimizados incorrectamente pueden ocasionar transacciones frecuentes o señales inconsistentes.
Tanto la línea media como la Stoch pueden sufrir retrasos, lo que puede ocasionar la entrada prematura o tardía.
La combinación de varios indicadores aumenta la fiabilidad, pero también la complejidad de la estrategia.
En resumen, la estrategia utiliza tendencias medias para determinar la tendencia, Stoch para determinar la sobrecompra y la sobreventa, y la operación cuantitativa. La estabilidad y la fiabilidad del sistema de negociación pueden ser mejoradas con la condición de optimizar los ajustes de parámetros. Sin embargo, cualquier estrategia cuantitativa requiere una estricta gestión del riesgo, y los inversores aún deben usarla con cautela.
/*backtest
start: 2023-08-12 00:00:00
end: 2023-09-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// strategy("PMB2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 20, initial_capital=1000, currency=currency.USD)
//study(title="PMB2", overlay=true)
l_ma = input(50, title="MA (green)", type=input.integer)
l_ema = input(25, title="EMA (red)", type=input.integer)
MA = sma(close,l_ma)
EMA = ema(close,l_ema)
plot(MA, color=color.green)
plot(EMA, color=color.red)
//STOCH(14,3,3)
length = input(20, minval=1, title="STOCH - K")
smoothK = input(2, minval=1, title="STOCH - D")
smoothD = input(2 , minval=1, title="STOCH - Smooth")
StkLong= input(50 , minval=1, maxval=100, title="Long when Close > MA and Stoch > ")
StkShort= input(80 , minval=1, maxval=100, title="Short when Close < EMA and Stoch < ")
k = sma(stoch(close, high, low, length), smoothK)
d = sma(k, smoothD)
//plot(k, color=color.blue, title="STOCH - K")
//plot(d, color=color.orange, title="STOCH - D")
//band180 = hline(80, title="STOCH - Banda superior")
//band120 = hline(20, title="STOCH - Banda superior")
//band100 = hline(50, color=color.gray, editable=false, linestyle=hline.style_solid)
//fill(band180, band120, color=color.gray, transp=75, title="STOCH - Fundo")
BTStartY = input(title="Strategy Test Start Year", type=input.integer, defval=2019, minval=2010, maxval=2100)
BTStartM = input(title="Strategy Test Start Month", type=input.integer, defval=1, minval=1, maxval=12)
BTStartD = input(title="Strategy Test Start Day", type=input.integer, defval=1, minval=1, maxval=31)
BTStopY = input(title="Strategy Test Stop Year", type=input.integer, defval=2019, minval=2010, maxval=2100)
BTStopM = input(title="Strategy Test Stop Month", type=input.integer, defval=12, minval=1, maxval=12)
BTStopD = input(title="Strategy Test Stop Day", type=input.integer, defval=31, minval=1, maxval=31)
// set up min and max date for strategy test
TMin = timestamp(BTStartY, BTStartM, BTStartD, 00, 00)
TMax = timestamp(BTStopY, BTStopM, BTStopD, 00, 00)
InTime = true
bool long = false, short = false, trade = false
trade := trade[1]
long := long[1]
short := short[1]
if (crossover(close, MA) and k > StkLong and d > StkLong) // "LONG!"
//if (close > MA and k > StkLong and d > StkLong) // "LONG!"
short := false
long := true
trade := true // LONG
if (crossunder(close, EMA) and k < StkShort and d < StkShort) // "SHORT!""
//if (close < EMA and k < StkShort and d < StkShort) // "SHORT!""
long := false
short := true
trade := false // SHORT
//bgcolor(FL > SH ? color.green : FH < SL ? color.red : na, transp=80)
bgcolor(trade ? color.green : color.red, transp=90)
//alertcondition((crossover(close, MA) and k > 50 and d > 50) , title='Buy', message='Buy')
//alertcondition((crossunder(close, EMA) and k > 80 and d > 80) , title='Sell', message='Sell')
if ((crossover(close, MA) and k > StkLong and d > StkLong) and InTime)
//if ((close > MA and k > StkLong and d > StkLong) and InTime)
strategy.entry("Long", strategy.long)
if ((crossunder(close, EMA) and k < StkShort and d < StkShort) and InTime)
//if ((close < EMA and k < StkShort and d < StkShort) and InTime)
strategy.entry("Short", strategy.short)