Esta estrategia se llama estrategia de negociación de criptomonedas de fusión de indicadores de dinámica múltiple. La estrategia genera señales de negociación mediante la integración de los tres indicadores de dinámica MFI, RSI y Stoch RSI para juzgar la forma de compra y venta de criptomonedas.
El indicador MFI es un indicador de flujo de fondos. Considera la información sobre el volumen de transacciones y los precios para determinar la fortaleza de la fuerza de compra y venta en el mercado. MFI inferior a 20 significa sobreventa y superior a 80 significa sobreventa.
El indicador RSI es un índice de fuerza y debilidad relativa. Describe el nivel de sobreventa y sobreventa de los precios. Un RSI por debajo de 30 significa sobreventa y un RSI por encima de 70 significa sobreventa.
El indicador RSI de Stoch es una variante del RSI que determina si el RSI en sí mismo está sobrecomprando o sobrevendendo. El parámetro se establece en 20-80 para representar el área de sobrecompra y sobreventa.
La lógica de negociación de esta estrategia es:
Cuando los tres indicadores MFI, RSI y Stoch RSI están simultáneamente por debajo de la zona de sobreventa, se considera una señal de sobreventa múltiple y se hace más;
Cuando los tres indicadores están simultáneamente por encima de la zona de sobreventa, se considera una señal de sobreventa múltiple y se hace una posición en blanco.
La ventaja de esta estrategia es que se puede filtrar las señales falsas y mejorar la precisión de la entrada a través de la confirmación de múltiples indicadores. Sin embargo, la configuración de los parámetros debe optimizarse adecuadamente y trabajar con el stop loss para controlar el riesgo.
En general, los indicadores de dinámica son más sensibles a la pulsación de los precios de las criptomonedas, y la combinación de varios indicadores puede mejorar la estabilidad de la estrategia. Sin embargo, los comerciantes aún deben estar atentos a los cambios en la estructura del mercado y mantener la conciencia de que la estrategia se ajusta con flexibilidad.
/*backtest
start: 2023-08-13 00:00:00
end: 2023-09-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/
// Crypto Crew strategy entry signal long/short with stop loss. Exit signal not provided.
//
// Indicators: MFI + RSI + STOCH RSI
// Entry criteria: long when the three are oversold, short when the three indicators are overbought.
// Exit criteria: Take profit at Fib levels (not demonstrated here) measured from prevous highs/low.
// Feel free to contribute
//@version=4
strategy("Crypto Crew")
//inputs
source = hlc3
rsi_length = input(14, minval=1)
mfi_lenght = input(14, minval=1)
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
okay = "Okay"
good = "Good"
veryGood = "Very good"
tradingOpportunity = input(title="Opportunity Type", defval=veryGood, options=[okay, good, veryGood])
longThreshhold = tradingOpportunity==okay? 40 : tradingOpportunity==good ? 30 : tradingOpportunity==veryGood? 20 : 0
shortThreshhold = tradingOpportunity==okay? 60 : tradingOpportunity==good ? 70 : tradingOpportunity==veryGood? 80 : 0
//lines
mfi = mfi(source, mfi_lenght)
rsi = rsi(source, rsi_length)
rsi1 = rsi(close, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
longSignal = mfi<longThreshhold and rsi<longThreshhold and k<longThreshhold and d<longThreshhold? 1:-1
shortSignal = mfi>shortThreshhold and rsi>shortThreshhold and k>shortThreshhold and d>shortThreshhold? 1:-1
if longSignal > 0
strategy.entry("Long", strategy.long)
strategy.exit(id="Long Stop Loss", stop=close*0.8) //20% stop loss
if shortSignal > 0
strategy.entry("Short", strategy.short, stop=close*1.2)
strategy.exit(id="Short Stop Loss", stop=close*1.2) //20% stop loss
plot(k, color=color.blue)
plot(d, color=color.red)
plot(rsi, color=color.yellow)
plot(mfi, color=color.blue)
hline(longThreshhold, color=color.gray, linestyle=hline.style_dashed)
hline(shortThreshhold, color=color.gray, linestyle=hline.style_dashed)