Estrategia de negociación con gran probabilidad de éxito basada en el equilibrio de presión

El autor:¿ Qué pasa?, Fecha: 2023-11-13 11:40:53
Las etiquetas:

img

Resumen general

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.

Estrategia lógica

  1. Utilice la EMA para calcular la media móvil para determinar la dirección general de la tendencia.

  2. 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.

  3. Cuando el valor de PSAR es grande, indica una tendencia bajista, cuando el valor de PSAR es pequeño, indica una tendencia alcista.

  4. Cuando los juicios de los tres indicadores son consistentes, representa una clara tendencia que permite operaciones de entrada.

  5. Entrar en operaciones basadas en criterios de compra y venta, y establecer puntos de stop loss y take profit.

  6. Las normas específicas son:

    • Condición de compra: no en tendencia alcista, histograma MACD < 0, precio de cierre > EMA
    • Condición de venta: en tendencia alcista, histograma MACD > 0, precio de cierre < EMA
    • Condición de suspensión de pérdidas: el precio alcanza el siguiente valor PSAR
    • Condición de obtención de beneficios: alcanzar el índice de obtención de beneficios preestablecido

Ventajas de la estrategia

  1. El uso de múltiples indicadores para determinar la tendencia mejora la precisión.

  2. La apertura de operaciones basadas en tendencias definidas identificadas a través del balance de presión aumenta la tasa de ganancia.

  3. Establecer stop loss y take profit puede limitar las pérdidas y bloquear las ganancias.

  4. Las reglas de negociación claras y sistemáticas lo hacen adecuado para el comercio algorítmico.

  5. Los parámetros se pueden optimizar para adaptarse a diferentes productos y plazos.

Riesgos de la estrategia

  1. El juicio de la tendencia puede ser erróneo, lo que resulta en una dirección comercial incorrecta.

  2. Los movimientos extremos del mercado pueden generar señales falsas de los indicadores.

  3. La pérdida de parada está demasiado amplia, no puede salir a tiempo.

  4. El ajuste inadecuado de los parámetros conduce a un exceso de operaciones o a operaciones perdidas.

  5. Los productos no líquidos no pueden cumplir con los planes de stop loss y take profit.

  6. Los riesgos pueden reducirse optimizando los parámetros, ajustando las paradas y seleccionando productos líquidos.

Direcciones de optimización

  1. Ajuste el período de EMA para optimizar la precisión de la tendencia.

  2. Ajuste el período rápido y lento del MACD para mejorar la sensibilidad.

  3. Optimice las tasas de stop loss y de ganancias para encontrar el equilibrio ideal.

  4. Añadir otros indicadores auxiliares para mejorar el tiempo de entrada.

  5. Seleccionar productos con buena liquidez y grandes oscilaciones.

  6. Ajustar los plazos para adaptarse a las diferentes características del producto.

Resumen de las actividades

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')

	

Más.