Esta estrategia es una estrategia de alto / bajo nivel adecuada para los mercados de criptomonedas. Integra MACD, PSAR, ATR, Elliott Wave y otros múltiples indicadores para operar en plazos más largos como 1 hora, 4 horas o 1 día.
Las señales comerciales de esta estrategia provienen de los niveles altos/bajos de precios y juicios compuestos de múltiples indicadores.
Juzgar si existe un rango de nivel alto/bajo formado por altos o bajos sucesivos en el gráfico de precios.
Compruebe el nivel del histograma del MACD.
Compruebe el indicador PSAR para determinar la dirección de la tendencia.
Compruebe la dirección de la tendencia basada en ATR y MA.
Confirme la dirección de la tendencia con el indicador de onda Elliott.
Si todas las 5 condiciones apuntan en la misma dirección, se generan señales largas o cortas.
Alta relación de riesgo y recompensa hasta 1:30.
Factor de ganancia promedio alto, por lo general entre 1,5 y 2,5.
La combinación de múltiples indicadores ayuda a filtrar las falsas rupturas de manera efectiva.
Relativamente baja tasa de ganancia alrededor del 10%-20%.
Existen riesgos potenciales de reducción de la producción y de reducción de la producción.
El rendimiento de los indicadores podría verse afectado por los regímenes de mercado.
Necesita una buena resistencia psicológica.
Medidas correspondientes:
Aumentar el capital para equilibrar la tasa de ganancia.
Establezca un estricto stop loss para cada operación.
Ajustar los parámetros basados en diferentes mercados.
Fortalecer la psicología y controlar el tamaño de la posición.
Parámetros de prueba basados en diferentes criptomonedas y mercados.
Agregue stop loss y take profit para optimizar la gestión del dinero.
Aumentar la tasa de ganancia con métodos de aprendizaje automático.
Añadir filtro de sentimiento social para señales comerciales.
Considere la confirmación en múltiples marcos de tiempo.
En conclusión, esta es una estrategia de comercio de criptomonedas de alto riesgo y alto rendimiento agresiva. Su ventaja radica en la alta relación de recompensa de riesgo y el factor de ganancia. Los principales riesgos provienen de la tasa de ganancia relativamente baja que requiere una fuerte psicología. Las direcciones de optimización futuras podrían ser la puesta a punto de parámetros, la gestión del dinero, el aumento de la tasa de ganancia, etc. En general, esta estrategia tiene un valor práctico para los comerciantes de criptomonedas que buscan altas ganancias.
/*backtest start: 2023-12-21 00:00:00 end: 2023-12-28 00:00:00 period: 45m basePeriod: 5m 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("Crypto strategy high/low", overlay=true) fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) src = input(title="Source", type=input.source, defval=close) 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=true) sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false) //sar 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) // 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 CCI = input(20) ATR = input(5) Multiplier=input(1,title='ATR Multiplier') original=input(true,title='original coloring') thisCCI = cci(close, CCI) lastCCI = nz(thisCCI[1]) bufferDn= high + Multiplier * sma(tr,ATR) bufferUp= low - Multiplier * sma(tr,ATR) if (thisCCI >= 0 and lastCCI < 0) bufferUp := bufferDn[1] if (thisCCI <= 0 and lastCCI > 0) bufferDn := bufferUp[1] if (thisCCI >= 0) if (bufferUp < bufferUp[1]) bufferUp := bufferUp[1] else if (thisCCI <= 0) if (bufferDn > bufferDn[1]) bufferDn := bufferDn[1] x=0.0 x:=thisCCI >= 0 ?bufferUp:thisCCI <= 0 ?bufferDn:x[1] swap=0.0 swap:=x>x[1]?1:x<x[1]?-1:swap[1] swap2=swap==1?color.lime:color.red swap3=thisCCI >=0 ?color.lime:color.red swap4=original?swap3:swap2 //elliot wave srce = input(close, title="source") sma1length = input(5) sma2length = input(35) UsePercent = input(title="Show Dif as percent of current Candle", type=input.bool, defval=true) smadif=iff(UsePercent,(sma(srce, sma1length) - sma(srce, sma2length)) / srce * 100, sma(srce, sma1length) - sma(srce, sma2length)) col=smadif <= 0 ? color.red : color.green longC = high > high[1] and high[1] > high[2] and close[2] > high[3] and hist > 0 and uptrend and smadif < 0 and swap4==color.lime //longC = high > high[1] and high[1] > high[2] and high[2] > high[3] and high[3] > high[4] and close[4] > high[5] shortC = low < low[1] and low[1] < low[2] and close[2] < low[3] and hist < 0 and not uptrend and smadif > 0 and swap4==color.red //shortC = low < low[1] and low[1] < low[2] and low[2] < low[3] and low[3] < low[4] and close[4] < low[5] tp=input(0.15, title="tp") sl=input(0.005, title="sl") strategy.entry("long",1,when=longC) strategy.entry("short",0,when=shortC) strategy.exit("x_long", "long" ,loss = close * sl / syminfo.mintick, profit = close * tp / syminfo.mintick , alert_message = "closelong") //strategy.entry("short",0, when= loss = close * sl / syminfo.mintick) strategy.exit("x_short", "short" , loss = close * sl / syminfo.mintick, profit = close * tp / syminfo.mintick,alert_message = "closeshort") //strategy.entry("long",1, when = loss = close * sl / syminfo.mintick) //strategy.close("long",when= hist < 0) //strategy.close("short", when= hist > 0)