Esta estrategia utiliza una combinación de múltiples indicadores para determinar la dirección de la tendencia y las oportunidades comerciales, adoptando un enfoque de equilibrio de presión para aumentar la tasa ganadora de las operaciones.
Utilice la EMA para calcular la media móvil para determinar la dirección general de la tendencia.
Utilice el MACD para calcular la diferencia entre los promedios móviles rápidos y lentos. Cuando la diferencia es mayor que 0, indica una tendencia alcista, cuando es menor que 0, indica una tendencia bajista.
Cuando el valor de PSAR es grande, indica una tendencia bajista, cuando el valor de PSAR es pequeño, indica una tendencia alcista.
Cuando los juicios de los tres indicadores son consistentes, representa una clara tendencia que permite operaciones de entrada.
Entrar en operaciones basadas en criterios de compra y venta, y establecer puntos de stop loss y take profit.
Las normas específicas son:
El uso de múltiples indicadores para determinar la tendencia mejora la precisión.
La apertura de operaciones basadas en tendencias definidas identificadas a través del balance de presión aumenta la tasa de ganancia.
Establecer stop loss y take profit puede limitar las pérdidas y bloquear las ganancias.
Las reglas de negociación claras y sistemáticas lo hacen adecuado para el comercio algorítmico.
Los parámetros se pueden optimizar para adaptarse a diferentes productos y plazos.
El juicio de la tendencia puede ser erróneo, lo que resulta en una dirección comercial incorrecta.
Los movimientos extremos del mercado pueden generar señales falsas de los indicadores.
La pérdida de parada está demasiado amplia, no puede salir a tiempo.
El ajuste inadecuado de los parámetros conduce a un exceso de operaciones o a operaciones perdidas.
Los productos no líquidos no pueden cumplir con los planes de stop loss y take profit.
Los riesgos pueden reducirse optimizando los parámetros, ajustando las paradas y seleccionando productos líquidos.
Ajuste el período de EMA para optimizar la precisión de la tendencia.
Ajuste el período rápido y lento del MACD para mejorar la sensibilidad.
Optimice las tasas de stop loss y de ganancias para encontrar el equilibrio ideal.
Añadir otros indicadores auxiliares para mejorar el tiempo de entrada.
Seleccionar productos con buena liquidez y grandes oscilaciones.
Ajustar los plazos para adaptarse a las diferentes características del producto.
Esta estrategia integra múltiples indicadores para el análisis de tendencias y entra en operaciones basadas en tendencias definidas, con stop loss y take profit preestablecidos, que pueden capturar eficazmente los movimientos del mercado y lograr buenos rendimientos al tiempo que garantizan cierta rentabilidad.
/*backtest start: 2023-10-13 00:00:00 end: 2023-11-12 00:00:00 period: 1h 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/ // © exlux99 //@version=4 strategy(title = "Crypto Scalper", overlay = true, pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.03) len = input(60, minval=1, title="Length EMA") src = input(close, title="Source") out = ema(src, len) // fast_length = input(title="Fast Length MACD", type=input.integer, defval=12) slow_length = input(title="Slow Length MACD", type=input.integer, defval=26) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Oscillator MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"]) sma_signal = input(title="Signal Line MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"]) // Calculating fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal start = input(0.02) increment = input(0.02) maximum = input(0.2) var bool uptrend = na var float EP = na var float SAR = na var float AF = start var float nextBarSAR = na if bar_index > 0 firstTrendBar = false SAR := nextBarSAR if bar_index == 1 float prevSAR = na float prevEP = na lowPrev = low[1] highPrev = high[1] closeCur = close closePrev = close[1] if closeCur > closePrev uptrend := true EP := high prevSAR := lowPrev prevEP := high else uptrend := false EP := low prevSAR := highPrev prevEP := low firstTrendBar := true SAR := prevSAR + start * (prevEP - prevSAR) if uptrend if SAR > low firstTrendBar := true uptrend := false SAR := max(EP, high) EP := low AF := start else if SAR < high firstTrendBar := true uptrend := true SAR := min(EP, low) EP := high AF := start if not firstTrendBar if uptrend if high > EP EP := high AF := min(AF + increment, maximum) else if low < EP EP := low AF := min(AF + increment, maximum) if uptrend SAR := min(SAR, low[1]) if bar_index > 1 SAR := min(SAR, low[2]) else SAR := max(SAR, high[1]) if bar_index > 1 SAR := max(SAR, high[2]) nextBarSAR := SAR + AF * (EP - SAR) tplong=input(0.245, step=0.005) sllong=input(1.0, step=0.005) tpshort=input(0.055, step=0.005) slshort=input(0.03, step=0.005) if (uptrend and hist >0 and close < out) strategy.entry("short", strategy.short, stop=nextBarSAR, comment="short") strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort') if (not uptrend and hist <0 and close > out) strategy.entry("long", strategy.long, stop=nextBarSAR, comment="long") strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT', alert_message = 'closelong')