Estrategia Silver Bullet basada en Box Breakout


Fecha de creación: 2024-01-15 12:06:32 Última modificación: 2024-01-15 12:06:32
Copiar: 1 Número de Visitas: 801
1
Seguir
1617
Seguidores

Estrategia Silver Bullet basada en Box Breakout

Descripción general

La estrategia determina la dirección y la intensidad del mercado principalmente mediante la monitorización de las rupturas de la caja que se forman en los puntos altos y bajos de la línea K. Cuando se produce una ruptura de la caja ascendente, la estrategia establece un punto de entrada positivo cerca de la ruptura; cuando se produce una ruptura de la caja descendente, la estrategia establece un punto de entrada inverso cerca de la ruptura. Una vez que se forma una señal de negociación, la estrategia construye una posición individual y establece puntos de parada y pérdida para controlar el riesgo.

Principio de estrategia

  1. La estrategia define un período de tiempo de negociación, y sólo se utiliza para buscar oportunidades de negociación en ese período.

  2. La estrategia determina si hay una ruptura significativa en el precio máximo y mínimo de las dos líneas K anteriores después de la formación de cada línea K.

2.1 Si el precio mínimo de la segunda línea K es mayor que el precio máximo de la primera línea K, se produce una ruptura de la caja hacia arriba.

2.2 Si el precio máximo de la segunda línea K es menor que el precio mínimo de la primera línea K, se produce una ruptura de caja hacia abajo.

  1. Después de confirmar la señal de ruptura de la caja, la estrategia establece un punto de entrada positivo o inverso cerca del precio más alto o más bajo de la línea K de la raíz.

  2. Una vez que se forma una posición, la estrategia establece un parón en función del doble de la amplitud de la ruptura, por lo que la estrategia capta la aceleración de la tendencia.

  3. La estrategia también establece un punto de parada en la posición de precio mínimo o máximo en la segunda línea K, reduciendo el riesgo de pérdidas.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. El principio es simple, fácil de entender y fácil de aplicar.

  2. El uso de la caja de la caja K para determinar la dirección y la fuerza del mercado, tiene una alta precisión.

  3. La configuración de los niveles de parada permite capturar las oportunidades de aceleración de la tendencia. El multiplicador de parada es ajustable.

  4. Hay una lógica de stop loss clara que permite controlar las pérdidas individuales.

  5. Las estrategias son flexibles y se pueden personalizar según el estilo de cada persona.

Análisis de riesgos

Sin embargo, la estrategia también tiene ciertos riesgos:

  1. Las señales de ruptura pueden ser falsas y no evitar completamente la pérdida.

  2. La posición de stop loss cerca del punto de entrada puede ser fácilmente activada por un mercado agresivo.

  3. La suspensión de pérdidas en caso de movimiento se puede activar con frecuencia.

  4. No se tiene en cuenta el impacto de las diferencias en el tipo de transacción y el período de tiempo.

Dirección de optimización

Para optimizar aún más esta estrategia, se puede hacer lo siguiente:

  1. Ajuste los parámetros de deterioro de la adaptabilidad de acuerdo con las diferentes variedades y períodos de tiempo.

  2. Aumentar la compatibilidad con indicadores técnicos de tendencia para evitar ser engañados en situaciones de crisis.

  3. Establezca oportunidades de subida de posiciones para seguir la tendencia.

  4. La combinación puede ser un indicador para juzgar la verdad o falsedad de la ruptura con una señal de filtro.

  5. La adición de algoritmos de aprendizaje automático para ayudar a determinar la dirección de las tendencias.

Resumir

La estrategia se basa en un diseño sencillo de principios de ruptura, para obtener ganancias adicionales mediante la captura de la aceleración de la operación después de la ruptura. El uso de la pérdida y el control de riesgo de la configuración de la parada. La estrategia es fácil de entender e implementar, se puede ajustar y optimizar según las necesidades personales y el entorno del mercado, y tiene una gran utilidad.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Dvitash

//@version=5
strategy("Casper SMC Silver Bullet", shorttitle = "Casper SB", overlay=true, calc_on_order_fills = true)

startTime = input(defval = "1000", title = "Start Time")
endTime = input(defval = "1600", title = "End Time")
contractAmt = input.int(defval = 2, title = "Contract Amount")
fvgCol = input.color(defval = color.rgb(63, 61, 179, 41), title = "FVG Color")
borderCol = input.color(defval = color.rgb(35, 33, 172, 41), title = "FVG Border Color")
fvgExtendLength = input.int(defval = 0, minval = 0, title = "FVG Extend Length")

allowedTime = not na(time(timeframe.period, startTime + "-" + endTime +":23456", "America/New_York"))
newDay = bool(ta.change(time('D')))
h = hour(time('1'), "America/New_York")

var bool fvgDrawn = na
var float entryPrice = na 
var float stopPrice = na 
var float tpPrice = na 

if newDay
    fvgDrawn := false
    // a_allBoxes = box.all
    // if array.size(a_allBoxes) > 0
    //     for i = 0 to array.size(a_allBoxes) - 1
    //         box.delete(array.get(a_allBoxes, i))

if allowedTime and barstate.isconfirmed and h <= 16
    //Long FVG
    if high[2] < low and not fvgDrawn
        // box.new(bar_index[2], low, bar_index + fvgExtendLength, high[2], bgcolor = fvgCol, border_color = borderCol)
        stopPrice := low[2]
        entryPrice := low
        tpPrice := entryPrice + (math.abs(low[2] - entryPrice) * 2)
        // log.info("SL: " + str.tostring(stopPrice) + " Entry: " + str.tostring(entryPrice) + " TP: " + str.tostring(tpPrice))
        strategy.entry("long", strategy.long, contractAmt, limit = entryPrice, comment = "Long Entry")
        fvgDrawn := true

    if low[2] > high and not fvgDrawn
        // box.new(bar_index[2], high, bar_index + fvgExtendLength, low[2], bgcolor = fvgCol, border_color = borderCol)
        stopPrice := high[2]
        entryPrice := high
        tpPrice := entryPrice - (math.abs(high[2] - entryPrice) * 2)
        // log.info("SL: " + str.tostring(stopPrice) + " Entry: " + str.tostring(entryPrice) + " TP: " + str.tostring(tpPrice))
        strategy.entry("short", strategy.short, contractAmt, limit = entryPrice, comment = "Short Entry")
        fvgDrawn := true
if h >= 16
    strategy.close_all()
    strategy.cancel_all()

strategy.exit("long exit", from_entry = "long", qty = contractAmt, limit = tpPrice, stop = stopPrice, comment = "Long Exit")
strategy.exit("short exit", from_entry = "short", qty = contractAmt, limit = tpPrice, stop = stopPrice, comment = "Short Exit")