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

MA MACD BB ملٹی انڈیکیٹر ٹریڈنگ حکمت عملی بیک ٹیسٹنگ ٹول

مصنف:چاؤ ژانگ، تاریخ: 2024-06-03 09:49:08
ٹیگز:ایم اےایم اے سی ڈیبی بی

img

جائزہ

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

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

اس حکمت عملی کا بنیادی اصول مارکیٹ کے رجحانات اور تجارتی اشاروں کی نشاندہی کے لئے تین مشترکہ تکنیکی اشارے (ایم اے ، ایم اے سی ڈی ، اور بی بی) کا استعمال کرنا ہے۔ خاص طور پر:

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

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

حکمت عملی کے فوائد

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

حکمت عملی کے خطرات

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

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

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

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

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

خلاصہ

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


/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Future_Billi0naire_

//@version=5
strategy("MA MACD BB Backtester", overlay=true)

//@variable Input for Strategy
which_ta = input.string("MA", title="Select Indicator", options=["MACD", "BB", "MA"])
which_camp = input.string("Long", title="Select Long / Short", options=["Short", "Long"])

//@variable Input parameters for Risk Management
positionSize = input.float(100.0, title="Each position's capital allocation %", minval=0.0, maxval = 100.0) / 100

//@variable Input parameters for MACD
fast_length = input.int(12, title="MACD Fast Length")
slow_length = input.int(26, title="MACD Slow Length")
signal_smoothing = input.int(9, title="MACD Signal Smoothing")
macd_source = input.source(close, title="MACD Source")

//@variable Input parameters for Moving Average
ma_length = input.int(50, title="Moving Average Length")

//@variable Input parameters for Bollinger Bands
bb_length = input.int(20, title="Bollinger Bands Length")
bb_mult = input.float(2.0, title="Bollinger Bands Multiplier")

// Choosing the Strategy
int x = na
if which_ta == "MA"
    x := 1
else if which_ta == "MACD"
    x := 2
else if which_ta == "BB"
    x := 3

// Calculate MACD and Signal line
[macdLine, signalLine, _] = ta.macd(macd_source, fast_length, slow_length, signal_smoothing)

// Calculate Moving Average
ma = ta.sma(close, ma_length)

// Calculate Bollinger Bands
basis = ta.sma(close, bb_length)
dev = bb_mult * ta.stdev(close, bb_length)
upper = basis + dev
lower = basis - dev

// Plotting MACD and Signal lines
plot(x == 2 ? macdLine : na, color=color.blue, title="MACD Line")
plot(x == 2 ? signalLine : na, color=color.red, title="Signal Line")

// Plotting histogram
histogram = macdLine - signalLine
plot(x == 2 ? histogram : na, color=color.gray, style=plot.style_histogram, title="MACD Histogram")

// Plotting Moving Average
plot(x == 1 ? ma : na, color=color.orange, title="Moving Average")

// Plotting Bollinger Bands
plot(x == 3 ? upper : na, color=color.green, title="Upper Bollinger Band")
plot(x == 3 ? lower : na, color=color.red, title="Lower Bollinger Band")
plot(x == 3 ? basis : na, color=color.blue, title="Basis Bollinger Band")

// Generate buy signals
buySignalMACD = ta.crossover(macdLine, signalLine)
buySignalMA = ta.crossover(close, ma)
buySignalBB = close < lower
sellSignalBBExit = close > basis

// Generate sell signals
sellSignalMACD = ta.crossunder(macdLine, signalLine)
sellSignalMA = ta.crossunder(close, ma)
sellSignalBB = close > upper
buySignalBBExit = close < basis

// Plot buy signals on the chart
plotshape(series=buySignalMACD and x == 2 and which_camp=="Long" and strategy.opentrades == 0 ? buySignalMACD : na, title="Buy Signal MACD", location=location.belowbar, color=color.lime, style=shape.labelup, text="BUY MACD")
plotshape(series=buySignalMA and x == 1 and which_camp=="Long" and strategy.opentrades == 0 ? buySignalMA : na, title="Buy Signal MA", location=location.belowbar, color=color.lime, style=shape.labelup, text="BUY MA")
plotshape(series=buySignalBB and x == 3 and which_camp=="Long" and strategy.opentrades == 0 ? buySignalBB : na, title="Buy Signal BB", location=location.belowbar, color=color.lime, style=shape.labelup, text="BUY BB")

// Plot sell signals on the chart
plotshape(series=sellSignalMACD and x == 2 and which_camp=="Short" and strategy.opentrades == 0 ? sellSignalMACD : na, title="Sell Signal MACD", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL MACD")
plotshape(series=sellSignalMA and x == 1 and which_camp=="Short" and strategy.opentrades == 0 ? sellSignalMA : na, title="Sell Signal MA", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL MA")
plotshape(series=sellSignalBB and x == 3 and which_camp=="Short" and strategy.opentrades == 0 ? sellSignalBB : na, title="Sell Signal BB", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL BB")

// Calculate stop loss and take profit levels
accountSize = strategy.equity
positionSizeAmount = accountSize * positionSize

// Calculate order size based on stop loss amount
orderSize = math.floor(positionSizeAmount / close)

// Enter long positions based on buy signals
if strategy.opentrades == 0
    if (buySignalMACD) and x == 2 and which_camp == "Long"
        strategy.entry("Buy MACD", strategy.long, qty=orderSize)
    if (buySignalMA) and x == 1 and which_camp == "Long"
        strategy.entry("Buy MA", strategy.long, qty=orderSize)
    if (buySignalBB) and x == 3 and which_camp == "Long"
        strategy.entry("Buy BB", strategy.long, qty=orderSize)

// Enter short positions based on sell signals
if strategy.opentrades == 0
    if (sellSignalMACD) and x == 2 and which_camp == "Short"
        strategy.entry("Sell MACD", strategy.short, qty=orderSize)
    if (sellSignalMA) and x == 1 and which_camp == "Short"
        strategy.entry("Sell MA", strategy.short, qty=orderSize)
    if (sellSignalBB) and x == 3 and which_camp == "Short"
        strategy.entry("Sell BB", strategy.short, qty=orderSize)

// Close positions based on exit signals
if (sellSignalMACD) and which_camp == "Long"
    strategy.close("Buy MACD")
if (sellSignalMA) and which_camp == "Long"
    strategy.close("Buy MA")
if (sellSignalBBExit) and which_camp == "Long"
    strategy.close("Buy BB")
if (buySignalMACD) and which_camp == "Short"
    strategy.close("Sell MACD")
if (buySignalMA) and which_camp == "Short"
    strategy.close("Sell MA")
if (buySignalBBExit) and which_camp == "Short"
    strategy.close("Sell BB")



متعلقہ

مزید