Esta estrategia es una estrategia de ruptura basada en el indicador de impulso de precios MACD y la media móvil, adecuada para un marco de tiempo de 1 hora en plata (XAG/USD, XAG/EUR).
Cuando el histograma MACD cambia de negativo a positivo y continuamente rompe la línea de señal, indica que la tendencia alcista a corto plazo es más fuerte. Al mismo tiempo, si el precio de cierre rompe la tendencia al alza del promedio móvil, genera una señal larga. Del mismo modo, cuando el histograma MACD cambia de positivo a negativo y cae por debajo de la línea de señal, y el precio de cierre cae por debajo de la tendencia a la baja del promedio móvil, genera una señal corta.
En concreto, las condiciones para determinar la señal de entrada larga de esta estrategia son las siguientes:
Las condiciones para determinar la señal de entrada corta son exactamente lo contrario.
Una vez que la posición se abre, se cierra incondicionalmente cuando se cierra la siguiente línea K. Esta estrategia no establece puntos de toma de ganancias o de parada de pérdidas, con el objetivo de capturar el punto de partida de los brotes de tendencia.
Esta estrategia combina los indicadores de precio e impulso para determinar el momento de las inversiones de tendencia con mayor precisión con una mayor tasa de ganancia.
Ningún establecimiento de la toma de ganancias y la parada de pérdidas satisface las necesidades de los inversores que buscan altos rendimientos.
La falta de stop loss puede llevar fácilmente a la fijación de pérdidas y un mayor riesgo de pérdida.
La forma de cierre incondicional en la siguiente línea K dificulta la captura continua de las ganancias de tendencia.
Es posible considerar la adición de estrategias de stop-loss apropiadas basadas en compras de ruptura de alto beneficio para reducir el riesgo de pérdida.
También es posible combinar técnicas avanzadas para volver a entrar en posiciones después del cierre, tratando de capturar continuamente las ganancias de tendencia.
En general, esta estrategia pertenece a una estrategia agresiva de alto riesgo. Debido a que no hay un ajuste de stop loss, los inversores necesitan asumir un mayor riesgo de pérdida. Pero si la inversión es exitosa, la oportunidad de abrir posiciones con lotes completos en primer lugar también puede resultar en altos rendimientos. Es adecuado para inversores agresivos con una resistencia psicológica relativamente fuerte.
/*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")