এই কৌশলটি একটি উন্নত ট্রেডিং সিস্টেম যা এমএসিডি (মোচনশীল গড় কনভার্জেন্স ডিভার্জেন্স) সূচক উপর ভিত্তি করে, একটি বিস্তৃত ট্রেডিং সমাধান তৈরি করতে গতিশীল ঝুঁকি ব্যবস্থাপনার সাথে এমএসিডি সংকেতগুলিকে একত্রিত করে। কৌশলটি কেবল এমএসিডি লাইন এবং সংকেত লাইন ক্রসওভারে মনোনিবেশ করে না, তবে ট্রেডিংয়ের কর্মক্ষমতা অনুকূল করার জন্য হিস্টোগ্রাম নিশ্চিতকরণ এবং নমনীয় স্টপ-লস এবং লাভ গ্রহণের সেটিংস অন্তর্ভুক্ত করে। এটি বিভিন্ন বাজারের শর্ত এবং ট্রেডিংয়ের প্রয়োজনীয়তার সাথে খাপ খাইয়ে নেওয়ার জন্য সম্পূর্ণরূপে প্যারামিটারাইজড কনফিগারেশন বিকল্পগুলি সরবরাহ করে।
মূল যুক্তি তিনটি প্রধান স্তম্ভের উপর নির্মিত হয়ঃ
এই কৌশলটি ক্লাসিক এমএসিডি সূচককে আধুনিক ঝুঁকি ব্যবস্থাপনা পদ্ধতির সাথে একত্রিত করে একটি শক্তিশালী ট্রেডিং সিস্টেম তৈরি করে। এর শক্তিগুলি বিস্তৃত সংকেত নিশ্চিতকরণ, নমনীয় ঝুঁকি ব্যবস্থাপনা এবং শক্তিশালী পরামিতি সামঞ্জস্যের মধ্যে রয়েছে, যা এটিকে বিভিন্ন বাজারের পরিবেশের জন্য উপযুক্ত করে তোলে। প্রস্তাবিত অপ্টিমাইজেশান দিকগুলির মাধ্যমে কৌশলটির আরও উন্নতির সুযোগ রয়েছে। তবে ব্যবহারকারীদের ঝুঁকি নিয়ন্ত্রণে মনোযোগ দিতে হবে, অতিরিক্ত অপ্টিমাইজেশান এড়াতে হবে এবং প্রকৃত ট্রেডিং অবস্থার উপর ভিত্তি করে উপযুক্ত সমন্বয় করতে হবে।
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Estrategia MACD", overlay=true) // Parámetros entrada direccion = input.string("ambas", "Dirección de operaciones", options=["larga", "corta", "ambas"]) velas_sl = input.int(3, "Velas para calcular Stop Loss", minval=1) ratio = input.float(1.5, "Ratio Beneficio:Riesgo", minval=0.5) rapida = input.int(12, "Periodo Media Rápida") lenta = input.int(26, "Periodo Media Lenta") senal = input.int(9, "Periodo Señal") // Calcular MACD [macdLinea, senalLinea, histograma] = ta.macd(close, rapida, lenta, senal) // Señales senal_larga = ta.crossover(macdLinea, senalLinea) and histograma > 0 senal_corta = ta.crossunder(macdLinea, senalLinea) and histograma < 0 // Gestión de riesgo calcular_sl_largo() => ta.lowest(low, velas_sl) calcular_sl_corto() => ta.highest(high, velas_sl) calcular_tp(entrada, sl, es_larga) => distancia = math.abs(entrada - sl) es_larga ? entrada + (distancia * ratio) : entrada - (distancia * ratio) // Operaciones sl_largo = calcular_sl_largo() sl_corto = calcular_sl_corto() if (direccion != "corta" and senal_larga and strategy.position_size == 0) entrada = close tp = calcular_tp(entrada, sl_largo, true) strategy.entry("Larga", strategy.long) strategy.exit("Salida Larga", "Larga", stop=sl_largo, limit=tp) if (direccion != "larga" and senal_corta and strategy.position_size == 0) entrada = close tp = calcular_tp(entrada, sl_corto, false) strategy.entry("Corta", strategy.short) strategy.exit("Salida Corta", "Corta", stop=sl_corto, limit=tp) // Visualización plotshape(senal_larga and direccion != "corta", "Compra", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.normal) plotshape(senal_corta and direccion != "larga", "Venta", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.normal)