بولنگر بینڈ گولڈن کراس اور ڈیڈ کراس مقداری حکمت عملی تجارتی جوڑوں میں


تخلیق کی تاریخ: 2023-12-27 14:28:21 آخر میں ترمیم کریں: 2023-12-27 14:28:21
کاپی: 0 کلکس کی تعداد: 566
1
پر توجہ دیں
1621
پیروکار

بولنگر بینڈ گولڈن کراس اور ڈیڈ کراس مقداری حکمت عملی تجارتی جوڑوں میں

جائزہ

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

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

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

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

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

طاقت کا تجزیہ

اس حکمت عملی کے درج ذیل فوائد ہیں:

  1. MACD اشارے کا استعمال کرتے ہوئے مارکیٹ کے رجحانات کا تعین کرنے کے لئے، یہ ایک کلاسک اور قابل اعتماد تکنیکی تجزیہ اشارے ہے.

  2. ایک ہی تجارت کے خطرے کو کنٹرول کرنے کے لئے ، بیچوں میں پوزیشن کھولنے کا طریقہ اختیار کریں۔

  3. اضافی پوزیشن کھولنے سے مارٹینگل اصول کے ذریعے منافع کی گنجائش میں اضافہ ہوتا ہے۔

  4. نقصانات کو محدود کرنے کے لئے روکنے کے نقطہ نظر کو ترتیب دیں.

خطرے کا تجزیہ

اس حکمت عملی میں کچھ خطرات بھی ہیں:

  1. MACD اشارے مارکیٹ کی پیش گوئی نہیں کر سکتے ہیں، غلط سگنل ہو سکتا ہے.

  2. تمام پوزیشنوں میں اضافہ پوزیشنوں کو واپس لینے اور توسیع کا خطرہ ہے۔ ہر اضافی پوزیشن کی فیصد کو مناسب طریقے سے ایڈجسٹ کیا جاسکتا ہے۔

  3. روکنے کا نقطہ سیٹ بہت چھوٹا ہے جس کی وجہ سے کمائی کی جگہ محدود ہوسکتی ہے۔ مختلف اقسام کے مطابق ایڈجسٹ کیا جاسکتا ہے۔

  4. کھلے ہوئے فنڈز کا تناسب مناسب طریقے سے مختص کرنے کی ضرورت ہے تاکہ انفرادی قسم کی تجارت اکاؤنٹ کی حد سے تجاوز نہ کرے۔

اصلاح کی سمت

یہ حکمت عملی مندرجہ ذیل پہلوؤں سے بہتر بنائی جا سکتی ہے۔

  1. مختلف پیرامیٹرز کے ساتھ MACD اشارے کی جانچ کریں تاکہ انڈیکیٹر پیرامیٹرز کو تلاش کیا جاسکے جو مخصوص قسم کے تجارت کے لئے زیادہ موزوں ہوں۔

  2. ہر پوزیشن میں شامل کرنے کے لئے فنڈز کی فیصد اور واپسی کی حد کے پیرامیٹرز کو بہتر بنائیں تاکہ بہترین پیرامیٹرز کا مجموعہ تلاش کیا جاسکے۔

  3. لمبی لائن اور مختصر لائن آپریٹنگ روکنے کے پیرامیٹرز کو الگ الگ ٹیسٹ کریں ، بہترین روک تھام کی سطح کا تعین کریں۔

  4. اکاؤنٹس کی بڑھتی ہوئی پوزیشن کی صلاحیت کا اندازہ کریں اور ایک مناسب قسم کی زیادہ سے زیادہ پوزیشن کی حد مقرر کریں.

  5. اسٹاپ نقصان کی منطق میں اضافہ کریں۔ جب مارکیٹ میں شدید تبدیلی آتی ہے تو ، اسٹاپ نقصان کو مؤثر طریقے سے کنٹرول کیا جاسکتا ہے۔

خلاصہ کریں۔

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

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TradingSoft_tech

//@version=5
strategy("MAPM-V1", overlay=true, default_qty_value=10, max_bars_back=5000,default_qty_type = strategy.percent_of_equity, commission_value=0.1, initial_capital = 100, pyramiding=6, currency=currency.USD)

///////// Options
SignalFast = input.int(300, step=10)
SignalSlow = input.int(600, step=10)
StepAddPurchases = input.float(2.5, step=0.1)
VolumePurchases = input.int(6,step=1)
Buy = input(true)
Sell = input(true)
longProfitPerc = input.float(title="Long Take Profit (%)", minval=0.0, step=0.1, defval=1) * 0.01
shortProfitPerc = input.float(title="Short Take Profit (%)", minval=0.0, step=0.1, defval=1) * 0.01
Martingale = input.float(1.6, minval = 1, step = 0.1)
VolumeDepo = input.int(100, step=1)
PercentOfDepo = input.float(10, step=1)
Close = (close)
EnterVolume = VolumeDepo*PercentOfDepo*0.01/Close

///////// Calculation indicator
fastAverage = ta.ema(close, 8)
slowAverage = ta.ema(close, 49)
macd = fastAverage - slowAverage
macdSignalF = ta.ema(macd,SignalFast)
macdSignalS = ta.ema(macd,SignalSlow)

// Test Start
startYear = input(2005, "Test Start Year")
startMonth = input(1, "Test Start Month")
startDay = input(1, "Test Start Day")
startTest = timestamp(startYear,startMonth,startDay,0,0)

//Test End
endYear = input(2050, "Test End Year")
endMonth = input(12, "Test End Month")
endDay = input(30, "Test End Day")
endTest = timestamp(endYear,endMonth,endDay,23,59)

timeRange = time > startTest and time < endTest ? true : false

///////// Plot Data
//plot(macd, style = plot.style_histogram)
//plot(macdSignalF*10000, style = plot.style_line, color=color.red)
//plot(macdSignalS*10000, style = plot.style_line, color=color.blue)
//plot(fastAverage, style = plot.style_line, color=color.red)
//plot(slowAverage, style = plot.style_line, color=color.blue)

///////// Calculation of the updated value
var x = 0.0
if strategy.opentrades>strategy.opentrades[1]
    x := x + 1
else if strategy.opentrades==0
    x := 0
y = x+1

///////// Calculation of reference price data
entryPrice = strategy.opentrades==0? 0 : strategy.opentrades.entry_price(0)
limitLong = strategy.position_avg_price * (1 + longProfitPerc)
limitShort = strategy.position_avg_price * (1 - shortProfitPerc)
SteplimitLong = entryPrice[0]*(1-StepAddPurchases*y/100)
SteplimitShort = entryPrice[0]*(1+StepAddPurchases*y/100)

///////// Conditions for a long
bool EntryLong = ta.crossover(macdSignalF, macdSignalS) and Buy and strategy.opentrades==0 and strategy.position_size==0
bool PurchasesLong = Buy and strategy.opentrades==x and strategy.position_size>0 and x<=VolumePurchases
bool CancelPurchasesLong = strategy.position_size==0 and strategy.opentrades==0
bool TPLong = strategy.position_size>0 and strategy.opentrades!=0
///////// Entry Long + add.purchases + cancel purchases + Take profit Long
switch 
    EntryLong => strategy.entry("Entry Long", strategy.long, qty = EnterVolume)
    PurchasesLong => strategy.entry("PurchasesLong", strategy.long, qty = EnterVolume*math.pow(Martingale,y), limit = SteplimitLong)
    CancelPurchasesLong => strategy.cancel("PurchasesLong")
switch
    TPLong => strategy.exit("TPLong", qty_percent = 100, limit = limitLong)

///////// Conditions for a Short
bool EntryShort = ta.crossunder(macdSignalF, macdSignalS) and Sell and strategy.opentrades==0 and strategy.position_size==0
bool PurchasesShort = Sell and strategy.opentrades==x and strategy.position_size<0 and x<=VolumePurchases
bool CancelPurchasesShort = strategy.position_size==0 and strategy.opentrades==0
bool TPShort = strategy.position_size<0 and strategy.opentrades!=0

///////// Entry Short + add.purchases + cancel purchases + Take profit Short
switch
    EntryShort => strategy.entry("Entry Short", strategy.short, qty = EnterVolume)
    PurchasesShort => strategy.entry("PurchasesShort", strategy.short, qty = EnterVolume*math.pow(Martingale,y), limit = SteplimitShort)
    CancelPurchasesShort => strategy.cancel("PurchasesShort")
switch
    TPShort => strategy.exit("TPShort", qty_percent = 100, limit = limitShort)
    
/////////Calculation of conditions and reference data for level drawing
InTradeLong = strategy.position_size<0
InTradeShort = strategy.position_size>0
PickInLong = strategy.opentrades.entry_price(0)*(1-StepAddPurchases*y/100)
PickInShort = strategy.opentrades.entry_price(0)*(1+StepAddPurchases*y/100)

/////////Displaying the level of Take Profit
plot(InTradeLong ? na : limitLong, color=color.new(#00d146, 0), style=plot.style_linebr, linewidth=1)
plot(InTradeShort ? na : limitShort, color=color.new(#00d146, 0), style=plot.style_linebr, linewidth=1)

/////////Displaying the level of add.purchases
plot(InTradeLong ? na : PickInLong, color=color.white, style=plot.style_linebr, linewidth=1)
plot(InTradeShort ? na : PickInShort, color=color.white, style=plot.style_linebr, linewidth=1)