Estrategia de ruptura de máximos y mínimos en la sesión asiática


Fecha de creación: 2024-03-29 17:12:49 Última modificación: 2024-03-29 17:12:49
Copiar: 0 Número de Visitas: 1395
1
Seguir
1617
Seguidores

Estrategia de ruptura de máximos y mínimos en la sesión asiática

Descripción general

La idea principal de la estrategia es utilizar los altos y bajos de la bolsa asiática como punto de ruptura, en las horas posteriores a la apertura de la bolsa de Europa y los Estados Unidos, si el precio supera el alto de la bolsa asiática, se hace más, y si el precio supera el bajo de la bolsa asiática, se hace vacío. Al mismo tiempo, se establece un stop loss y un stop loss, y se controla el riesgo. La estrategia solo abre una operación por día, con un máximo de 100000 posiciones abiertas al mismo tiempo.

Principio de estrategia

  1. Determina el horario de las transacciones en la plataforma asiática, y permite al usuario personalizar el inicio y el final de las transacciones.
  2. Durante la parrilla asiática, los precios más altos y más bajos del día fueron registrados.
  3. Un cierto tiempo después de la apertura de la bolsa en Europa y Estados Unidos (el número de horas de desviación personalizada por el usuario), si el precio supera el punto más alto de la bolsa en Asia, se hace más, si el precio supera el punto más bajo de la bolsa en Asia, se hace vacío.
  4. Se puede configurar el stop loss y el stop stop, y el stop loss y el stop stop se pueden personalizar.
  5. Solo se puede abrir una nueva operación al día y la cantidad máxima de posiciones abiertas al mismo tiempo es de 100.000.
  6. Si ya se ha abierto una posición ese día, no se abrirá una nueva operación.

Análisis de las ventajas

  1. Utilizando las características relativamente tranquilas de la bolsa asiática como punto de ruptura para los altibajos de la bolsa asiática del día, se pueden capturar mejor las oportunidades de tendencia de la bolsa euroamericana.
  2. La configuración de stop loss y stop-loss permite un control efectivo del riesgo, lo que permite que las ganancias se ejecuten y las pérdidas se detengan rápidamente.
  3. Limitarse a un solo pedido por día y al máximo número de posiciones abiertas al mismo tiempo evita el exceso de operaciones y el uso excesivo de fondos.
  4. El usuario puede configurar con flexibilidad los parámetros como el horario de Asia y las horas de desviación según sus necesidades.

Análisis de riesgos

  1. Los altos y bajos de la bolsa asiática no son necesariamente los verdaderos altos y bajos del día, y es posible que la bolsa de la Unión Europea y los Estados Unidos se retira rápidamente después de la ruptura y cause pérdidas.
  2. Las paradas y paradas de puntos fijos pueden no ser capaces de hacer frente a las grandes fluctuaciones de la situación, a veces pueden detenerse demasiado pronto, a veces pueden detenerse demasiado pronto.
  3. La estrategia puede ser utilizada para detener las pérdidas con frecuencia en situaciones de tendencias poco claras o de gran volatilidad en el mercado.

Dirección de optimización

  1. Se puede considerar ajustar dinámicamente los puntos de parada y parada de acuerdo con los indicadores de volatilidad, como ATR, para adaptarse a diferentes situaciones.
  2. Se pueden agregar algunos indicadores para juzgar la tendencia, como la MA, que solo hace más cuando hay una gran tendencia alcista y hace espacio cuando hay una tendencia descendente para aumentar la tasa de éxito.
  3. Se pueden considerar diferentes parámetros para establecer intervalos de tiempo, como el uso de paradas de pérdida más pequeñas al inicio de la apertura de la bolsa de EUR y USD, mientras que el uso de paradas de pérdida más grandes cuando la tendencia es evidente.

Resumir

La estrategia utiliza los altos y bajos de la bolsa asiática como puntos de ruptura para operar, y es adecuada para ser utilizada en variedades con tendencias más evidentes de la bolsa euroamericana. Sin embargo, también hay algunas limitaciones en el número de puntos fijos para detener los estancamientos de pérdidas y en el método estándar de entrada a la brecha.

Código Fuente de la Estrategia
/*backtest
start: 2024-02-27 00:00:00
end: 2024-03-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Asia Session", overlay=true)

var hourSessionStart = input(19, "Asia session start hour", minval=0, maxval=23)
var hourSessionStop  = input(1, "Asia session end hour", minval=0, maxval=23)
var offsetHours = input(3, "Offset hours after Asia session end")

var float hi              = na
var float lo              = na
var float plotHi          = na
var float plotLo          = na

var bool  inSession       = na
var bool  enteringSession = na
var bool  exitingSession  = na

inSession       := (hour >= hourSessionStart or hour < hourSessionStop)
enteringSession := inSession and not inSession[1]
exitingSession  := not inSession and inSession[1]

if enteringSession
    plotLo := na
    plotHi := na

if inSession
    lo := min(low,  nz(lo, 1.0e23))
    hi := max(high, nz(hi))

if exitingSession
    plotLo := lo
    plotHi := hi
    lo     := na
    hi     := na

bgcolor(inSession ? color.blue : na)

plot(plotLo, "Asia session Low",  color.red,   style=plot.style_linebr)
plot(plotHi, "Asia session High", color.green, style=plot.style_linebr)

// Implementazione delle condizioni di entrata
var float asiaSessionLow = na
var float asiaSessionHigh = na
var int maxTrades = 100000 // Impostiamo il massimo numero di operazioni contemporanee
var int tradesOpened = 0 // Variabile per tenere traccia del numero di operazioni aperte
var bool tradeOpened = false
var bool operationClosed = false // Nuova variabile per tenere traccia dello stato di chiusura dell'operazione

// Calcolo del range asiatico
if (inSession)
    asiaSessionLow := lo
    asiaSessionHigh := hi

// Apertura di un solo trade al giorno
if (enteringSession)
    tradeOpened := false

// Condizioni di entrata
var float stopLoss = 300 * syminfo.mintick
var float takeProfit = 300 * syminfo.mintick

if (not tradeOpened and not operationClosed and close < asiaSessionLow and tradesOpened < maxTrades and hour >= hourSessionStop + offsetHours)
    strategy.entry("Buy", strategy.long)
    tradeOpened := true
    tradesOpened := tradesOpened + 1 // Incrementiamo il contatore delle operazioni aperte

if (not tradeOpened and not operationClosed and close > asiaSessionHigh and tradesOpened < maxTrades and hour >= hourSessionStop + offsetHours)
    strategy.entry("Sell", strategy.short)
    tradeOpened := true
    tradesOpened := tradesOpened + 1 // Incrementiamo il contatore delle operazioni aperte

// Impostazione dello stop loss e del take profit
strategy.exit("Stop Loss / Take Profit", "Buy", stop=close - stopLoss, limit=close + takeProfit)
strategy.exit("Stop Loss / Take Profit", "Sell", stop=close + stopLoss, limit=close - takeProfit)