यह रणनीति एक पूर्ण ट्रेडिंग प्रणाली है जो दोहरे ईएमए क्रॉसओवर सिग्नल, स्टॉप-लॉस / टेक-प्रॉफिट प्रबंधन और समय फ़िल्टरिंग को जोड़ती है। मूल रणनीति बाजार के रुझानों को पकड़ने के लिए तेजी से और धीमी घातीय चलती औसत (ईएमए) के क्रॉसओवर पर आधारित है, जिसमें टेक प्रॉफिट और स्टॉप लॉस सेटिंग्स के माध्यम से जोखिम नियंत्रण है। इसके अलावा, रणनीति में समय फ़िल्टरिंग कार्यक्षमता शामिल है जो व्यापारियों को विशिष्ट समय सीमा के भीतर ट्रेडों को निष्पादित करने की अनुमति देती है।
यह रणनीति निम्नलिखित मुख्य तंत्रों पर आधारित है:
यह एक अच्छी तरह से डिज़ाइन की गई ट्रेंड-फॉलोइंग रणनीति है जो एक व्यापक ट्रेडिंग समाधान प्रदान करने के लिए एक चलती औसत प्रणाली, जोखिम प्रबंधन और समय फ़िल्टरिंग को जोड़ती है। रणनीति उच्च विन्यास प्रदान करती है, जो विभिन्न जोखिम वरीयताओं वाले व्यापारियों के लिए उपयुक्त है। सुझाए गए अनुकूलन दिशाओं के माध्यम से, आगे सुधार के लिए जगह है। कुंजी सख्त जोखिम नियंत्रण बनाए रखते हुए वास्तविक बाजार की स्थिति और व्यक्तिगत ट्रेडिंग लक्ष्यों के आधार पर मापदंडों को समायोजित करना है।
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Estrategia Cruce de EMAs con: Stop Loss, Take Profit, Días de Operación y Alertas (Modificables)", overlay=true, commission_value = 0.2, process_orders_on_close = true, initial_capital = 1000) // Parámetros de las EMAs emaRapidaLen = input.int(5, title="Periodo EMA rápida") emaLentaLen = input.int(21, title="Periodo EMA lenta") // Parámetros de Stop Loss y Take Profit stopLoss = input.float(3.0, title="Stop Loss (%)", step=0.1) / 100 takeProfit = input.float(6.0, title="Take Profit (%)", step=0.1) / 100 // Tipo de operación: Largo, Corto o Ambos operacion = input.string(title="Tipo de operación", defval="Largo", options=["Largo", "Corto", "Ambos"]) // Parámetros de la duración de la estrategia (días) diasInicio = input(timestamp("2009-01-03 00:00"), title="Fecha de inicio (YYYY-MM-DD HH:MM)") diasFin = input(timestamp("2024-09-11 00:00"), title="Fecha de fin (YYYY-MM-DD HH:MM)") // Comprobar si estamos dentro del rango de días definido dentroDeRango = true // Cálculo de las EMAs emaRapida = ta.ema(close, emaRapidaLen) emaLenta = ta.ema(close, emaLentaLen) // Condiciones para cruce de EMAs cruceAlcista = ta.crossover(emaRapida, emaLenta) cruceBajista = ta.crossunder(emaRapida, emaLenta) // Operaciones en Largo (solo si estamos en el rango de días definido) if dentroDeRango and (operacion == "Largo" or operacion == "Ambos") and cruceAlcista strategy.entry("Compra", strategy.long) alert("Posición larga abierta: Cruce alcista de EMAs", alert.freq_once_per_bar_close) // Operaciones en Corto (solo si estamos en el rango de días definido) if dentroDeRango and (operacion == "Corto" or operacion == "Ambos") and cruceBajista strategy.entry("Venta", strategy.short) alert("Posición corta abierta: Cruce bajista de EMAs", alert.freq_once_per_bar_close) // Cálculo del Stop Loss y Take Profit para largos if (strategy.position_size > 0 and strategy.opentrades.entry_id(strategy.opentrades - 1) == "Compra") strategy.exit("Cerrar Compra", "Compra", stop=strategy.position_avg_price * (1 - stopLoss), limit=strategy.position_avg_price * (1 + takeProfit)) alert("Posición larga cerrada: Alcanzado Stop Loss o Take Profit", alert.freq_once_per_bar_close) // Cálculo del Stop Loss y Take Profit para cortos if (strategy.position_size < 0 and strategy.opentrades.entry_id(strategy.opentrades - 1) == "Venta") strategy.exit("Cerrar Venta", "Venta", stop=strategy.position_avg_price * (1 + stopLoss), limit=strategy.position_avg_price * (1 - takeProfit)) alert("Posición corta cerrada: Alcanzado Stop Loss o Take Profit", alert.freq_once_per_bar_close) // Plot de las EMAs plot(emaRapida, color=color.blue, title="EMA rápida", linewidth = 2) plot(emaLenta, color=color.red, title="EMA lenta", linewidth = 2)