وسائل لوڈ ہو رہے ہیں... لوڈنگ...

بولنگر بینڈ، فبونیکی، ایم اے سی ڈی اور آر ایس آئی کے ساتھ ملٹی انڈیکیٹرز کے ساتھ ہم آہنگی ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-12-12 17:20:26
ٹیگز:بی بیایم اے سی ڈیآر ایس آئیایف آئی بیایس ایم اےای ایم اےایس ایم ایم اےڈبلیو ایم اےوی ڈبلیو ایم اے

img

جائزہ

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

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

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

  1. بولنگر بینڈس سگنل: نیچے والے بینڈ سے نیچے کی قیمت توڑنے سے لمبے سگنل پیدا ہوتے ہیں ، اوپری بینڈ سے اوپر توڑنے سے مختصر سگنل پیدا ہوتے ہیں
  2. فبونیکی سگنل: 0-23.6٪ رینج میں قیمت طویل سگنل پیدا کرتی ہے ، 61.8-100٪ رینج میں مختصر سگنل پیدا کرتی ہے
  3. ایم اے سی ڈی سگنل: ایم اے سی ڈی لائن کے اوپر عبور کرنے سے طویل سگنل پیدا ہوتے ہیں ، نیچے عبور کرنے سے مختصر سگنل پیدا ہوتے ہیں
  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))


متعلقہ

مزید