Tal vez existan scripts similares a este. Este script se basa el indicador MACD y elimina posibles entradas falsas con RSI para determinar si realiza una entrada al mercado.
Explicación del código: 1. Inputs personalizables: • rsi_length: Longitud del RSI (por defecto, 14). • rsi_overbought: Nivel de sobrecompra del RSI (por defecto, 70). • rsi_oversold: Nivel de sobreventa del RSI (por defecto, 30). 2. Cálculo de indicadores: • RSI: Se calcula utilizando ta.rsi con el período definido por el usuario. • MACD: Se calcula utilizando ta.macd con parámetros estándar (12, 26, 9). Sin embargo corregí el código para que se puedan cambiar sus valores de acuerdo a la necesidad del usuario. 3. Condiciones de compra y venta: • Compra (buy_condition): Ocurre cuando el MACD cruza al alza (macd_crossup) y el RSI está en sobreventa (<= rsi_oversold). • Venta (sell_condition): Ocurre cuando el MACD cruza a la baja (macd_crossdown) y el RSI está en sobrecompra (>= rsi_overbought). 4. Órdenes de estrategia: • Se ejecuta una orden long (compra) si se cumple la condición de compra. • Se ejecuta una orden short (venta) si se cumple la condición de venta. 6. Visualización: • Se marcan en el gráfico las señales de compra y venta con flechas (plotshape). 7. Existe una variable para stop loss que por defecto se encuentra en 3%. Si el mercado se va en dirección contraria y sobrepasa el porcentaje específico, con strategy.close ejecuta una orden de mercado en la dirección en la que va. (Cierra la orden actual en el porcentaje de perdida especificado y abre una nueva en la dirección que va)
1. Stop Loss dinámico del 3% por defecto: • El usuario puede configurar el porcentaje de pérdida máxima permitida con el input stop_loss_percent (por defecto 3%). • Calculamos el nivel de stop loss: • Para posiciones largas: entry_price * (1 - stop_loss_percent / 100) • Para posiciones cortas: entry_price * (1 + stop_loss_percent / 100). • Si el precio actual supera esos niveles de pérdida, se ejecuta un strategy.close. 2. Registro del precio de entrada: • Usamos una variable global entry_price para almacenar el precio al momento de abrir una posición. 3. Cierre automático de posiciones: • Se verifica constantemente si el precio actual alcanza el nivel de stop loss y se cierra la posición abriendo una nueva con un comentario (Stop loss).Si no desea abrir una posición nueva para aprovechar el movimiento contrario, sino, cerrarla, puede cambiar el stop loss strategy.close por strategy.exit en el script.