ڈبل کراس کا رجحان مندرجہ ذیل حکمت عملی: انڈیکس موونگ ایوریج اور MACD تعاونی تجارتی نظام

EMA MACD DIF DEA TP SL RR
تخلیق کی تاریخ: 2025-01-17 16:06:16 آخر میں ترمیم کریں: 2025-01-17 16:06:16
کاپی: 0 کلکس کی تعداد: 374
1
پر توجہ دیں
1617
پیروکار

ڈبل کراس کا رجحان مندرجہ ذیل حکمت عملی: انڈیکس موونگ ایوریج اور MACD تعاونی تجارتی نظام

جائزہ

یہ حکمت عملی ایک ٹرینڈ ٹریکنگ ٹریڈنگ سسٹم ہے جو موونگ ایوریج اور MACD ڈوئل ٹیکنیکل انڈیکیٹرز کو یکجا کرتا ہے۔ یہ بنیادی طور پر EMA9 موونگ ایوریج اور قیمت کے ساتھ ساتھ MACD انڈیکیٹر میں فاسٹ لائن (DIF) اور سلو لائن (DEA) کے انٹرسیکشن کے ذریعے مارکیٹ کے رجحانات کو پکڑتا ہے۔ ایک ہی وقت میں، حکمت عملی ماضی کی 5 K-لائنز کی بنیاد پر ایک انکولی سٹاپ لاس کا طریقہ اپناتی ہے اور منافع کے اہداف مقرر کرنے کے لیے 3.5 گنا رسک ریٹرن تناسب کا استعمال کرتی ہے، جس سے ایک مکمل تجارتی نظام بنتا ہے۔

حکمت عملی کا اصول

حکمت عملی کی بنیادی منطق کو دو سمتوں میں تقسیم کیا گیا ہے: طویل اور مختصر:

  1. طویل حالات: جب اختتامی قیمت EMA9 سے نیچے سے اوپر تک ٹوٹ جاتی ہے، اور MACD کی DIF لائن DEA لائن کو نیچے سے اوپر تک کراس کرتی ہے، تو سسٹم ایک طویل سگنل بھیجتا ہے۔
  2. مختصر فروخت کی شرائط: جب اختتامی قیمت اوپر سے نیچے تک EMA9 سے نیچے آتی ہے، اور MACD کی DIF لائن اوپر سے نیچے تک DEA لائن کو عبور کرتی ہے، تو نظام مختصر فروخت کا سگنل بھیجتا ہے۔
  3. رسک مینجمنٹ:
    • طویل آرڈرز کا سٹاپ نقصان پچھلی 5 K لائنوں کے سب سے کم پوائنٹ سے نیچے سیٹ کیا گیا ہے۔
    • شارٹ آرڈرز کا سٹاپ نقصان پچھلی 5 K-لائنز کے سب سے زیادہ پوائنٹ سے اوپر سیٹ کیا جاتا ہے۔
    • منافع کا ہدف سٹاپ نقصان کے فاصلے سے 3.5 گنا ہے۔

اسٹریٹجک فوائد

  1. دوہری تصدیق کا طریقہ کار: موونگ ایوریج اور MACD کے مربوط تعاون کے ذریعے، غلط سگنلز کو مؤثر طریقے سے فلٹر کیا جا سکتا ہے اور لین دین کی درستگی کو بہتر بنایا جا سکتا ہے۔
  2. اڈاپٹیو سٹاپ نقصان: قیمتوں کے حالیہ اتار چڑھاو پر مبنی سٹاپ نقصان کی سطح خود بخود مارکیٹ کے اتار چڑھاؤ کے مطابق تحفظ کی پوزیشن کو ایڈجسٹ کر سکتی ہے۔
  3. واضح خطرے کی واپسی کا تناسب: ایک مقررہ 3.5 گنا خطرے کی واپسی کی ترتیب طویل مدت میں مستحکم منافع حاصل کرنے میں مدد کرتی ہے۔
  4. حکمت عملی کی منطق واضح ہے: داخلے اور باہر نکلنے کے حالات واضح، سمجھنے اور عمل کرنے میں آسان ہیں۔
  5. مضبوط موافقت: پیرامیٹرز کو مختلف مارکیٹ کے حالات کے مطابق ایڈجسٹ کیا جا سکتا ہے.

اسٹریٹجک رسک

  1. غیر مستحکم مارکیٹ کا خطرہ: غلط بریک آؤٹ ایک طرف اور اتار چڑھاؤ والے بازار میں کثرت سے ہو سکتا ہے، جس کے نتیجے میں مسلسل سٹاپ نقصانات ہوتے ہیں۔
  2. پھسلنے کا خطرہ: تیز مارکیٹ میں، اصل سٹاپ نقصان اور منافع کی قیمتیں متوقع قیمتوں سے ہٹ سکتی ہیں۔
  3. پیرامیٹر کی حساسیت: EMA اور MACD کی مدت کی ترتیبات حکمت عملی کی کارکردگی پر بہت زیادہ اثر ڈالتی ہیں۔
  4. رجحان کا انحصار: حکمت عملی واضح رجحان کے بغیر مارکیٹ کے ماحول میں خراب کارکردگی کا مظاہرہ کر سکتی ہے۔

حکمت عملی کی اصلاح کی سمت

  1. ٹرینڈ فلٹر شامل کریں: آپ ٹرینڈ انڈیکیٹرز کو لمبے وقفوں کے ساتھ متعارف کروا سکتے ہیں اور صرف مرکزی رجحان کی سمت میں کھلی پوزیشنیں لے سکتے ہیں۔
  2. ڈائنامک رسک ملٹیپل: مارکیٹ کے اتار چڑھاؤ کی بنیاد پر رسک ریٹرن ریشو کو خودکار طور پر ایڈجسٹ کریں۔
  3. ٹائم فلٹر: کم لیکویڈیٹی پیریڈ سے بچنے کے لیے ٹریڈنگ ٹائم پیریڈ فلٹر شامل کریں۔
  4. پوزیشن مینجمنٹ آپٹیمائزیشن: پوزیشن کا تناسب متحرک طور پر سگنل کی طاقت کے مطابق ایڈجسٹ کیا جا سکتا ہے۔
  5. اتار چڑھاؤ کے اشارے کا تعارف: سٹاپ نقصان کے فاصلے کو متحرک طور پر ایڈجسٹ کرنے کے لیے استعمال کیا جاتا ہے۔

خلاصہ کریں۔

یہ حکمت عملی تکنیکی اشارے کی دوہری تصدیق اور سخت رسک مینجمنٹ کے ذریعے ایک مکمل ٹرینڈ ٹریکنگ ٹریڈنگ سسٹم بناتی ہے۔ اگرچہ مارکیٹ کے ماحول پر ایک خاص حد تک انحصار ہے، حکمت عملی معقول پیرامیٹر کی اصلاح اور رسک مینجمنٹ کے ذریعے اچھی موافقت اور استحکام کو ظاہر کرتی ہے۔ اس کے بعد کی اصلاح کی ہدایات بنیادی طور پر رجحان کی شناخت کی درستگی اور حکمت عملی کی مجموعی کارکردگی کو بہتر بنانے کے لیے رسک مینجمنٹ کی حرکیات پر مرکوز ہوں گی۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-01-17 00:00:00
end: 2025-01-16 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

// =======================
// @version=6
strategy(title="MACD + EMA9 3 h",
     shorttitle="MACD+EMA9+StopTP_5candles",
     overlay=true,
     initial_capital=100000,    // Ajuste conforme desejar
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=200)      // Ajuste % de risco ou quantidade

// ----- Entradas (Inputs) -----
emaLen          = input.int(9,     "Período da EMA 9", minval=1)
macdFastLen     = input.int(12,    "Período MACD Rápido", minval=1)
macdSlowLen     = input.int(26,    "Período MACD Lento",  minval=1)
macdSignalLen   = input.int(9,     "Período MACD Signal", minval=1)
riskMultiplier  = input.float(3.5, "Fator de Multiplicação do Risco (TP)")
lookbackCandles = input.int(5,     "Quantidade de candles p/ Stop", minval=1)

// ----- Cálculo da EMA -----
ema9 = ta.ema(close, emaLen)

// ----- Cálculo do MACD -----
[macdLine, signalLine, histLine] = ta.macd(close, macdFastLen, macdSlowLen, macdSignalLen)
// DIF cruza DEA para cima ou para baixo
macdCrossover   = ta.crossover(macdLine, signalLine)   // DIF cruza DEA p/ cima
macdCrossunder  = ta.crossunder(macdLine, signalLine)  // DIF cruza DEA p/ baixo

// ----- Condições de Compra/Venda -----

// Compra quando:
// 1) Preço cruza EMA9 de baixo pra cima
// 2) MACD cruza a linha de sinal para cima
buySignal = ta.crossover(close, ema9) and macdCrossover

// Venda quando:
// 1) Preço cruza EMA9 de cima pra baixo
// 2) MACD cruza a linha de sinal para baixo
sellSignal = ta.crossunder(close, ema9) and macdCrossunder

// ----- Execução das ordens -----

// Identifica o menor e o maior preço dos últimos 'lookbackCandles' candles.
// A função ta.lowest() e ta.highest() consideram, por padrão, a barra atual também.
// Se você quiser EXCLUIR a barra atual, use low[1] / high[1] dentro do ta.lowest() / ta.highest().
lowestLow5  = ta.lowest(low, lookbackCandles)
highestHigh5= ta.highest(high, lookbackCandles)

// >>> Quando há sinal de COMPRA <<<
if (buySignal)
    // Fecha posição vendida, se existir
    strategy.close("Sell")
    // Entra comprado
    strategy.entry("Buy", strategy.long)
    
    // STOP: abaixo do menor preço dos últimos 5 candles
    stopPrice = lowestLow5
    // Risco = (preço de entrada) - (stop)
    // Note que strategy.position_avg_price só fica disponível a partir da barra seguinte.
    // Por isso, o exit costuma funcionar corretamente apenas na barra seguinte.
    // Para fins de teste, podemos usar 'close' como proxy do "entry" (ou aceitar essa limitação).
    // A forma "correta" de usar strategy.position_avg_price seria via calc_on_order_fills = true,
    // mas isso pode exigir algumas configurações adicionais.
    risk = strategy.position_avg_price - stopPrice
    
    // Take Profit = entrada + 2,5 * risco
    takeProfitPrice = strategy.position_avg_price + riskMultiplier * risk

    // Registra a saída (stop e alvo) vinculada à posição "Buy"
    strategy.exit("Exit Buy", "Buy", stop=stopPrice, limit=takeProfitPrice)

// >>> Quando há sinal de VENDA <<<
if (sellSignal)
    // Fecha posição comprada, se existir
    strategy.close("Buy")
    // Entra vendido
    strategy.entry("Sell", strategy.short)
    
    // STOP: acima do maior preço dos últimos 5 candles
    stopPrice = highestHigh5
    // Risco = (stop) - (preço de entrada)
    risk = stopPrice - strategy.position_avg_price
    
    // Take Profit = entrada - 2,5 * risco
    takeProfitPrice = strategy.position_avg_price - riskMultiplier * risk

    // Registra a saída (stop e alvo) vinculada à posição "Sell"
    strategy.exit("Exit Sell", "Sell", stop=stopPrice, limit=takeProfitPrice)

// ----- Plotagens visuais -----
plot(ema9, color=color.orange, linewidth=2, title="EMA 9")

plot(macdLine,       color=color.new(color.blue, 0),   title="MACD")
plot(signalLine,     color=color.new(color.red, 0),    title="Signal")
plot(histLine,       color=color.new(color.purple, 0), style=plot.style_histogram, title="Histogram")

// Só para auxiliar na visualização, vamos plotar a linha do lowestLow5 e highestHigh5
plot(lowestLow5,    color=color.new(color.lime, 70),  style=plot.style_line, title="Lowest 5 bars")
plot(highestHigh5,  color=color.new(color.fuchsia,70),style=plot.style_line, title="Highest 5 bars")