
La estrategia es una estrategia de compra-venta de ruptura basada en el indicador de movimiento de precios MACD y la línea media, que se aplica a un período de tiempo de 1 hora para la plata (XAG/USD, XAG/EUR). El punto clave es el momento en que se combina la tendencia de precios y el indicador de movimiento para determinar la reversión de la tendencia.
Cuando la columna MACD se corrige negativamente y sube continuamente para romper la línea de señal, indica una fuerte tendencia alcista a corto plazo; al mismo tiempo, si el precio de cierre se rompe la línea media de la tendencia alcista, se produce una señal de múltiples cabezas. De manera similar, la columna MACD se corrige negativamente y cae por encima de la línea de señal, y cuando el precio de cierre cae por encima de la línea media de la tendencia descendente, se produce una señal de cabeza vacía.
En concreto, la estrategia determina que las señales de entrada para las posiciones largas son:
En el caso de las señales de entrada a corto plazo, las condiciones son exactamente lo contrario.
Una vez abierta la posición, la estrategia no establece un punto de parada para detener la pérdida, sino que busca el punto de inicio para capturar la explosión de la tendencia.
Esta estrategia, combinada con indicadores de precio y dinámica, permite determinar con mayor precisión el momento en que la tendencia se invierte, con una mayor probabilidad de éxito. Una forma incondicional de cerrar una posición en la línea K puede evitar de manera efectiva la pérdida de nuevo después de la reversión.
No se establecen paradas de pérdidas, se abren todas las posiciones para satisfacer las necesidades de los inversores que buscan altos rendimientos.
La configuración sin pérdidas es fácil de encerrar y el riesgo de pérdidas es alto. Si la señal de retorno falla, no se puede detener la pérdida a tiempo y se puede enfrentar una gran pérdida de fondos.
Es difícil seguir capturando ganancias de una tendencia si una línea K se cierra incondicionalmente y se cierra de la misma manera.
Se puede considerar la adición de una estrategia de stop loss adecuada para reducir el riesgo de pérdidas sobre la base de compras de ruptura con una mayor probabilidad de victoria.
También se puede combinar técnicas avanzadas para establecer mecanismos de reapertura de posiciones después de la liquidación de la posición, para tratar de capturar continuamente las ganancias de la tendencia.
La estrategia en general es una estrategia de alto riesgo de tipo agresivo y activo, que requiere que los inversores asuman un mayor riesgo de pérdidas debido a la configuración sin pérdidas. Pero, en comparación, la apertura total de la posición en el primer momento después de una inversión exitosa también puede obtener un alto rendimiento.
/*backtest
start: 2023-01-31 00:00:00
end: 2024-01-13 05:20:00
period: 1d
basePeriod: 1h
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/
// © SoftKill21
//@version=4
strategy("XAG strategy 1h",overlay=true)
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
var gica = 0
var marcel = gica+2
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
len = input(10, minval=1, title="Length")
src = input(close, title="Source")
out = sma(src, len)
//distanta = input(1.004)
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
option1=input(true)
option2=input(true)
long2 = close > open and time_cond and close > out and hist > 0 and hist > hist[1]
short2 = close < open and time_cond and close < out and hist < 0 and hist < hist[1]
long1 = (close > open ) and time_cond and close > out and hist > 0 and hist > hist[1] and high > high[1] and high[1] > high[2] and close > high[1] and close > high[2] and close > high[3]
short1 = (close < open) and time_cond and close < out and hist < 0 and hist < hist[1] and low < low[1] and low[1] < low[2] and close < low[1] and close < low[2] and close < low[3]
if(option1)
strategy.entry("long",1,when= short1)
strategy.entry("short",0,when=long1)
strategy.close_all()
if(option2)
strategy.entry("long",1,when= short2)
strategy.entry("short",0,when=long2)
strategy.close_all()
// if(strategy.openprofit < 0)
// strategy.close_all()
// if(strategy.openprofit>0)
// strategy.close("long",when = close < open )
// strategy.close("short",when = close > open)
// strategy.close("long",when= close < open)
// strategy.close("short",when= close> open)
// tp = input(0.0003)
// sl = input(0.005)
// strategy.exit("closelong", "long" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closelong")
// strategy.exit("closeshort", "short" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closeshort")