Esta estrategia identifica patrones alcistas y utiliza el indicador MACD para determinar la dirección de tendencia de las operaciones. Durante un mercado alcista, ir largo cuando aparece un martillo alcista mientras el MACD es alcista.
Identifique el martillo alcista calculando la relación cuerpo-rango. Utilice el MACD para determinar la dirección de la tendencia. Cuando el MACD es alcista, vaya largo cuando aparezca una señal de martillo alcista. Establezca el stop loss y el tamaño de la posición. Salga cuando el MACD se vuelva bajista.
Los riesgos pueden mitigarse relajando los criterios de patrón, acortando los parámetros MACD, añadiendo indicadores secundarios, etc.
Esta estrategia integra el análisis de patrones e indicadores para la determinación de tendencias, lo que permite obtener ganancias constantes.
/*backtest start: 2023-08-18 00:00:00 end: 2023-09-17 00:00:00 period: 3h basePeriod: 15m 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/ // © FenixCapital //@version=4 strategy("Starbux", overlay=true) //VARIABLES //Candlestick Variables body=close-open range=high-low middle=(open+close)/2 abody=abs(body) arange=abs(range) ratio=abody/range longcandle= (ratio>0.6) bodytop=max(open, close) bodybottom=min(open, close) shadowtop=high-bodytop shadowbottom=bodybottom-low //Closing Variables macd=macd(close,12,26,9) [macdLine, signalLine, histLine] = macd(close, 12, 26, 9) //plot(macdLine, color=color.blue) //plot(signalLine, color=color.orange) //plot(histLine, color=color.red, style=plot.style_histogram) rsi=rsi(close,14) sma50= sma(close,50) sma200= sma(close,200) exitrsi=rsi > 76 exitmacd=macdLine >0 and signalLine>0 //exitmacd=crossunder(macdLine,signalLine) stopprice= crossunder(sma50,sma200) //Candlestick Plotting blh = (arange*0.33>=abody and close>open and shadowbottom>=abody*2 and shadowtop<=arange*0.1) plotshape(blh, title= "Bullish Hammer", location=location.belowbar, color=color.lime, style=shape.arrowup, text="Bull\nHammer") //beh = (arange*0.25>=abody and close<open and shadowtop>=abody*2 and shadowbottom<=arange*0.05) //plotshape(beh, title= "Bearish Hammer", color=color.orange, style=shape.arrowdown, text="Bear\nHammer") //bpu = (open>close and close>low and shadowbottom>2*abody) //plotshape(bpu, title= "Black Paper Umbrella", color=color.red, style=shape.arrowdown, text="Black\nPaper\nUmbrella") //Trend Signal bull5= sma50 > sma200 bullmacd=macdLine>=0 and signalLine>=0 bearmacd=macdLine<= 0 and signalLine<=0 //Trading Algorithm longCondition = blh and bearmacd and volume>volume[1] if (longCondition) strategy.order("Buy", true, 1, when=longCondition) strategy.risk.max_position_size(10) //strategy.risk.max_drawdown(25,strategy.percent_of_equity) exitlong = exitmacd if (exitlong) strategy.close_all()