ملٹی انڈیکیٹر کوآرڈینیٹڈ بولنگر بینڈز-فبونیکی-MACD-RSI ذہین تجارتی حکمت عملی

BB MACD RSI FIB SMA EMA SMMA WMA VWMA
تخلیق کی تاریخ: 2024-12-12 17:20:26 آخر میں ترمیم کریں: 2024-12-12 17:20:26
کاپی: 1 کلکس کی تعداد: 502
1
پر توجہ دیں
1617
پیروکار

ملٹی انڈیکیٹر کوآرڈینیٹڈ بولنگر بینڈز-فبونیکی-MACD-RSI ذہین تجارتی حکمت عملی

جائزہ

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

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

اس حکمت عملی میں چار اہم تکنیکی اشارے استعمال کیے گئے ہیں جن سے ٹریڈنگ سگنل پیدا ہوتے ہیں:

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

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

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

اسٹریٹجک رسک

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

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-12-04 00:00:00
end: 2024-12-11 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Demo GPT Bollinger, Fibonacci, MACD & RSI with Max Profit Exit", overlay=true)

// === User Inputs for Bollinger Bands ===
length_bb = input.int(20, minval=1, title="Bollinger Bands Length")
maType_bb = input.string("SMA", title="Bollinger Bands MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src_bb = input(close, title="Bollinger Bands Source")
mult_bb = input.float(2.0, minval=0.001, maxval=50, title="Bollinger Bands StdDev")
offset_bb = input.int(0, title="Bollinger Bands Offset", minval=-500, maxval=500)

// === User Inputs for Fibonacci Levels ===
lookback_fib = input.int(50, minval=1, title="Fibonacci Lookback Period")

// === User Inputs for MACD ===
macd_fast = input.int(12, minval=1, title="MACD Fast Length")
macd_slow = input.int(26, minval=1, title="MACD Slow Length")
macd_signal = input.int(9, minval=1, title="MACD Signal Length")

// === User Inputs for RSI ===
rsi_length = input.int(14, title="RSI Length")
rsi_overbought = input.int(70, title="RSI Overbought Level")
rsi_oversold = input.int(30, title="RSI Oversold Level")

// === Start and End Date Inputs ===
start_date = input(timestamp("2023-01-01 00:00:00"), title="Start Date")
end_date = input(timestamp("2069-12-31 23:59:59"), title="End Date")

// === Moving Average Function ===
ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

// === Bollinger Bands Calculation ===
basis_bb = ma(src_bb, length_bb, maType_bb)
dev_bb = mult_bb * ta.stdev(src_bb, length_bb)
upper_bb = basis_bb + dev_bb
lower_bb = basis_bb - dev_bb

// === Fibonacci Levels Calculation ===
highest_price = ta.highest(high, lookback_fib)
lowest_price = ta.lowest(low, lookback_fib)

fib_0 = lowest_price
fib_23 = lowest_price + 0.236 * (highest_price - lowest_price)
fib_38 = lowest_price + 0.382 * (highest_price - lowest_price)
fib_50 = lowest_price + 0.5 * (highest_price - lowest_price)
fib_61 = lowest_price + 0.618 * (highest_price - lowest_price)
fib_100 = highest_price

// === MACD Calculation ===
[macd_line, signal_line, _] = ta.macd(close, macd_fast, macd_slow, macd_signal)

// === RSI Calculation ===
rsi = ta.rsi(close, rsi_length)

// === Plotting for Reference ===
plot(basis_bb, "Bollinger Basis", color=color.blue, offset=offset_bb)
p1_bb = plot(upper_bb, "Bollinger Upper", color=color.red, offset=offset_bb)
p2_bb = plot(lower_bb, "Bollinger Lower", color=color.green, offset=offset_bb)
fill(p1_bb, p2_bb, title="Bollinger Bands Background", color=color.rgb(33, 150, 243, 95))

plot(fib_0, "Fib 0%", color=color.gray)
plot(fib_23, "Fib 23.6%", color=color.yellow)
plot(fib_38, "Fib 38.2%", color=color.orange)
plot(fib_50, "Fib 50%", color=color.blue)
plot(fib_61, "Fib 61.8%", color=color.green)
plot(fib_100, "Fib 100%", color=color.red)

hline(0, "MACD Zero Line", color=color.gray)
plot(macd_line, "MACD Line", color=color.blue)
plot(signal_line, "Signal Line", color=color.orange)

hline(rsi_overbought, "RSI Overbought", color=color.red)
hline(rsi_oversold, "RSI Oversold", color=color.green)
plot(rsi, "RSI", color=color.blue)

// === Combined Trading Logic ===
// Bollinger Bands Signals
long_bb = ta.crossover(close, lower_bb)
short_bb = ta.crossunder(close, upper_bb)

// Fibonacci Signals
long_fib = close <= fib_23 and close >= fib_0
short_fib = close >= fib_61 and close <= fib_100

// MACD Signals
long_macd = ta.crossover(macd_line, signal_line)
short_macd = ta.crossunder(macd_line, signal_line)

// RSI Signals
long_rsi = rsi < rsi_oversold
short_rsi = rsi > rsi_overbought

// Combined Long and Short Conditions
long_condition = (long_bb or long_fib or long_macd or long_rsi) 
short_condition = (short_bb or short_fib or short_macd or short_rsi) 
// === Max Profit Exit Logic ===
// Define the maximum profit exit percentage
take_profit_percentage = input.float(5.0, title="Take Profit (%)", minval=0.1, maxval=100) / 100
stop_loss_percentage = input.float(2.0, title="Stop Loss (%)", minval=0.1, maxval=100) / 100

// Track the highest price during the trade
var float max_profit_price = na
if (strategy.opentrades > 0)
    max_profit_price := na(max_profit_price) ? strategy.opentrades.entry_price(0) : math.max(max_profit_price, high)

// Calculate the take profit and stop loss levels based on the max profit price
take_profit_level = max_profit_price * (1 + take_profit_percentage)
stop_loss_level = max_profit_price * (1 - stop_loss_percentage)

// Exit the trade if the take profit or stop loss level is hit
if (strategy.opentrades > 0)
    if (close >= take_profit_level)
        strategy.exit("Take Profit", from_entry="Long", limit=take_profit_level)
    if (close <= stop_loss_level)
        strategy.exit("Stop Loss", from_entry="Long", stop=stop_loss_level)

if (strategy.opentrades > 0)
    if (close <= take_profit_level)
        strategy.exit("Take Profit", from_entry="Short", limit=take_profit_level)
    if (close >= stop_loss_level)
        strategy.exit("Stop Loss", from_entry="Short", stop=stop_loss_level)

// === Execute Trades ===
if (long_condition)
    strategy.entry("Long", strategy.long, when=not na(long_condition))

if (short_condition)
    strategy.entry("Short", strategy.short, when=not na(short_condition))