
یہ حکمت عملی MACD (Moving Average Convergence Divergence) اشارے پر مبنی ایک جدید تجارتی نظام ہے جو ایک جامع تجارتی حل حاصل کرنے کے لیے 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)