
এই কৌশলটি MACD (মুভিং এভারেজ কনভারজেন্স ডাইভারজেন্স) সূচকের উপর ভিত্তি করে একটি উন্নত ট্রেডিং সিস্টেম, যা গতিশীল ঝুঁকি ব্যবস্থাপনার সাথে MACD সংকেতগুলিকে একত্রিত করে একটি ব্যাপক ট্রেডিং সমাধান অর্জন করে। এই কৌশলটি শুধুমাত্র MACD লাইন এবং সিগন্যাল লাইনের ছেদকে কেন্দ্র করে না, বরং হিস্টোগ্রাম নিশ্চিতকরণকে অন্তর্ভুক্ত করে এবং নমনীয় স্টপ লস এবং লাভ সেটিংয়ের মাধ্যমে ট্রেডিং ফলাফলগুলিকে অপ্টিমাইজ করে। কৌশলটি প্যারামিটারাইজড কনফিগারেশনের একটি সম্পূর্ণ পরিসর প্রদান করে, এটি বিভিন্ন বাজারের পরিবেশ এবং ট্রেডিং প্রয়োজনের সাথে খাপ খাইয়ে নিতে দেয়।
কৌশলটির মূল যুক্তি তিনটি প্রধান স্তম্ভের উপর নির্মিত:
এই কৌশলটি আধুনিক ঝুঁকি ব্যবস্থাপনা পদ্ধতির সাথে ক্লাসিক MACD সূচককে একত্রিত করে একটি শক্তিশালী ট্রেডিং সিস্টেম তৈরি করে। এর সুবিধাগুলি সম্পূর্ণ সিগন্যাল নিশ্চিতকরণ প্রক্রিয়া, নমনীয় ঝুঁকি ব্যবস্থাপনা এবং শক্তিশালী প্যারামিটার সামঞ্জস্যযোগ্যতার মধ্যে রয়েছে, যা একে বিভিন্ন বাজারের পরিবেশের জন্য উপযুক্ত করে তোলে। প্রস্তাবিত অপ্টিমাইজেশান দিকনির্দেশের মাধ্যমে কৌশলটির আরও উন্নতির জন্য জায়গা রয়েছে। যাইহোক, ব্যবহারকারীদের ঝুঁকি নিয়ন্ত্রণের দিকে মনোযোগ দিতে হবে, অতিরিক্ত অপ্টিমাইজেশন এড়াতে হবে এবং প্রকৃত ট্রেডিং পরিবেশ অনুযায়ী যথাযথ সমন্বয় করতে হবে।
/*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)