
Esta es una estrategia de comercio intradiario simple basada en la línea de paridad doble. Utiliza una línea de paridad móvil simple de dos períodos diferentes para comprar o vender cuando la línea de paridad se cruza. Cuando cambia la señal, utiliza el doble de la cantidad de posiciones cerradas y luego abre posiciones invertidas.
La estrategia utiliza dos líneas simples de movimiento de medias en los días 10 y 40. Haga más cuando el mediano corto atraviesa el mediano largo; haga vacío cuando el mediano corto atraviesa el mediano largo. Cuando la señal cambia, use el doble de la mano para cerrar la posición y luego abrirla de manera inversa.
La estrategia utiliza principalmente las características de la línea media a corto plazo para capturar los cambios en los precios más rápidamente. Cuando la línea media a corto plazo cruza la línea media a largo plazo, indica que los precios a corto plazo comienzan a subir y se puede capturar esta tendencia; cuando la línea media a corto plazo cruza la línea media a largo plazo, indica que los precios a corto plazo comienzan a bajar y se puede capturar esta tendencia.
Resolvemos el riesgo:
Optimización de los parámetros de la línea media. Se pueden probar más combinaciones para encontrar el parámetro óptimo.
Añadir filtros de otros indicadores técnicos. Por ejemplo, la confirmación de indicadores MACD puede reducir la tasa de señales erróneas.
Optimizar el multiplicador inverso para abrir posiciones. Probar diferentes tamaños de multiplicadores para encontrar el parámetro óptimo.
Prueba diferentes períodos del día. Un período de tiempo adecuadamente prolongado puede obtener mejores resultados.
La idea general de la estrategia es simple: captar las tendencias a corto plazo que se forman en la intersección de dos líneas de equilibrio, combinar el doble de la mano para ampliar el espacio de ganancias con la apertura de posiciones inversa y, finalmente, combinar el comercio en horarios diarios para evitar el riesgo de la noche. Es una estrategia efectiva para el comercio de líneas cortas diarias. Hay espacio para una optimización adicional, y se puede obtener un mejor efecto de la estrategia mediante el ajuste de los parámetros y la adición de otros filtros de indicadores técnicos.
/*backtest
start: 2024-02-19 00:00:00
end: 2024-02-26 00:00:00
period: 1m
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/
// © Pritesh-StocksDeveloper
//@version=4
strategy("Moving Average - Intraday", shorttitle = "MA - Intraday",
overlay=true, calc_on_every_tick = true)
// Used for intraday handling
// Session value should be from market start to the time you want to square-off
// your intraday strategy
var i_marketSession = input(title="Market session", type=input.session,
defval="0915-1455", confirm=true)
// Short & Long moving avg. period
var int i_shortPeriod = input(title = "Short MA Period", type = input.integer,
defval = 10, minval = 2, maxval = 20, confirm=true)
var int i_longPeriod = input(title = "Long MA Period", type = input.integer,
defval = 40, minval = 3, maxval = 120, confirm=true)
// A function to check whether the bar is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0
// Calculate moving averages
shortAvg = sma(close, i_shortPeriod)
longAvg = sma(close, i_longPeriod)
// Plot moving averages
plot(series = shortAvg, color = color.red, title = "Short MA",
linewidth = 2)
plot(series = longAvg, color = color.blue, title = "Long MA",
linewidth = 2)
// Long/short condition
longCondition = crossover(shortAvg, longAvg)
shortCondition = crossunder(shortAvg, longAvg)
// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)
// Trade only if intraday session is active
// Long position
strategy.entry(id = "Long", long = strategy.long,
when = longCondition and intradaySession)
// Short position
strategy.entry(id = "Short", long = strategy.short,
when = shortCondition and intradaySession)
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")