Estrategia de negociación cuantitativa basada en la comparación diaria de precios de cierre

El autor:¿ Qué pasa?, Fecha: 2023-11-21 14:34:11
Las etiquetas:

img

Resumen general

Esta estrategia se llama Estrategia de Comparación de Precios de Cierre Diario. Es una estrategia de negociación cuantitativa que toma decisiones comerciales basadas en los precios de cierre diarios. La estrategia genera señales comerciales calculando la diferencia entre el precio de cierre diario actual y el precio de cierre diario anterior. Cuando la diferencia excede un umbral establecido, se ejecutan órdenes de compra o venta.

Estrategia lógica

La lógica central de esta estrategia es comparar los precios de cierre entre el candelero/barra actual y el anterior.

  1. Calcular la diferencia entre el precio de cierre diario actual y el precio de cierre diario anterior (hoy - ayer)
  2. Calcular la relación entre la diferencia y el precio de cierre de ayer (diferencia / cierre de ayer)
  3. Si la relación es mayor que el umbral positivo establecido, se genera una señal de compra.
  4. Introducir posiciones largas o cortas según las señales

La estrategia no establece condiciones de stop loss o take profit, y se basa en las señales activadas por el umbral para la entrada y salida.

Análisis de ventajas

  • Lógica sencilla, fácil de entender, adecuada para principiantes en el comercio de cantidades
  • Se basa únicamente en los precios de cierre diarios, evita operaciones excesivamente frecuentes
  • La frecuencia de negociación puede controlarse ajustando el umbral

Análisis de riesgos

  • No hay stop loss, no se puede controlar la pérdida de una sola operación
  • Puede generar señales de negociación consecutivas que resultan en exceso de negociación
  • El desembolso puede ser grande, no puede controlar bien las pérdidas globales

Direcciones de optimización

  • Añadir una lógica de stop loss para controlar la pérdida de una sola operación
  • Número límite de entradas para evitar el exceso de negociación
  • Optimizar los parámetros para encontrar la frecuencia de negociación óptima

Conclusión

Esta estrategia genera señales comerciales comparando los precios de cierre diarios. La lógica es simple y adecuada para que los principiantes aprendan. Pero contiene ciertos riesgos y necesita una mayor optimización para el comercio en vivo.


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Daily Close Comparison Strategy (by ChartArt) correct results", shorttitle="CA_-_Daily_Close_Strat", overlay=false)

// ChartArt's Daily Close Comparison Strategy
//
// Version 1.0
// Idea by ChartArt on February 28, 2016.
//
// This strategy is equal to the very
// popular "ANN Strategy" coded by sirolf2009,
// but without the Artificial Neural Network (ANN).
//
// Main difference besides stripping out the ANN
// is that I use close prices instead of OHLC4 prices.
// And the default threshold is set to 0 instead of 0.0014
// with a step of 0.001 instead of 0.0001.
//
// This strategy goes long if the close of the current day
// is larger than the close price of the last day.
// If the inverse logic is true, the strategy
// goes short (last close larger current close).
//
// This simple strategy does not have any
// stop loss or take profit money management logic.
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/
// 
//  __             __  ___       __  ___ 
// /  ` |__|  /\  |__)  |   /\  |__)  |  
// \__, |  | /~~\ |  \  |  /~~\ |  \  |  
// 
// 

threshold = input(title="Price Difference Threshold correct results", type=float, defval=0, step=0.004)

getDiff() =>
    yesterday=request.security(syminfo.tickerid, 'D', close[1])
    today=close
    delta=today-yesterday
    percentage=delta/yesterday
    
closeDiff = getDiff()
 
buying = closeDiff > threshold ? true : closeDiff < -threshold ? false : buying[1]

hline(0, title="zero line")

bgcolor(buying ? green : red, transp=25)
plot(closeDiff, color=silver, style=area, transp=75)
plot(closeDiff, color=aqua, title="prediction")

longCondition = buying
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = buying != true
if (shortCondition)
    strategy.entry("Short", strategy.short)

Más.