
یہ حکمت عملی ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جس میں MACD اشارے کا استعمال کیا جاتا ہے جس میں کثیر مقصدی سمت کی نشاندہی کی جاتی ہے۔ یہ MACD مین لائن کو تیز رفتار اور آہستہ چلنے والی اوسط کے فرق کے حساب سے پیدا کرتا ہے۔ حکمت عملی خریدنے کے سگنل پیدا کرنے کے لئے MACD مین لائن اور سگنل لائن کے سنہری کراس کا استعمال کرتی ہے ، اور فروخت کے سگنل پیدا کرنے کے لئے ڈیڈ کراس کا استعمال کرتی ہے ، کثیر مقصدی توازن کی پیروی کرنے کے لئے۔
کوڈ میں سب سے پہلے ایک وقت مقرر کیا گیا ہے جس میں پیمائش کی تاریخ کی کارکردگی کی جانچ پڑتال کی جائے گی.
اس کے بعد MACD اشارے کا حساب لگایا جاتا ہے ، جس میں فاسٹ منتقل اوسط ، سست منتقل اوسط اور MACD اوسط لائن کی لمبائی کی ترتیب شامل ہے۔ تیز لائن کا رد عمل زیادہ حساس ہے ، اور سست لائن کا رد عمل زیادہ مستحکم ہے۔ ان کی مختلف قیمتیں MACD مین لائن بناتی ہیں ، اور پھر یکساں لائن کے ذریعے MACD سگنل لائن تشکیل دیتی ہیں۔ جب فرق کی قیمت صفر محور سے گزرتی ہے تو کثیر سر سگنل پیدا ہوتا ہے ، اور صفر محور سے گزرنے پر خالی سر سگنل پیدا ہوتا ہے۔
کثیر سر اور خالی سر سگنل کے مطابق ، سگنل کی آخری پیداوار کا وقت ریکارڈ کریں۔ جب فوری لائن اور سست لائن کا سیدھا سامنا ہوتا ہے تو اس کی تصدیق کی جاتی ہے اور خرید / فروخت کے سگنل کو ریکارڈ کیا جاتا ہے ، اس وقت پوزیشن کھولی جاسکتی ہے۔
داخل ہونے کے بعد ، پوزیشن کی اعلی ترین قیمت اور کم سے کم قیمت کو مستقل طور پر ٹریک کریں۔ ایک اسٹاپ نقصان کا فیصد طے کریں ، اور جب نقصان اس فیصد تک پہنچ جائے تو اسٹاپ نقصان سے باہر نکلیں۔
ایم اے سی ڈی اشارے رجحانات کو مؤثر طریقے سے پہچاننے کے لئے استعمال کیا جاتا ہے ، جو تکنیکی تجزیہ کے کلاسیکی اشارے میں سے ایک ہے۔
سست رفتار اوسط کے فرق کے ڈیزائن سے ، قیمتوں میں تبدیلی کی رفتار اور سمت کو جلدی سے پکڑ لیا جاسکتا ہے۔
ہم آہنگی کی فلٹرنگ کا استعمال کرتے ہوئے، کچھ جعلی سگنل کو فلٹر کیا جا سکتا ہے.
اس حکمت عملی میں خطرے کو کنٹرول کرنے کے لئے سٹاپ نقصان کا طریقہ کار شامل ہے۔
MACD اشارے جھوٹے سگنل پیدا کرنے کے لئے آسان ہے، اشارے خود کو بہتر بنانے کے لئے محدود جگہ ہے.
اسٹاپ نقصان کی غلط ترتیب زیادہ فعال یا قدامت پسند ہوسکتی ہے اور مختلف اقسام کے لئے انفرادی طور پر بہتر بنانے کی ضرورت ہے۔
فکسڈ نمبر کی پوزیشنوں سے لیورجنگ زیادہ ہوجاتی ہے ، جس کی وجہ سے فنڈ کے سائز کے مطابق خطرے کی حد طے کرنے پر غور کیا جاسکتا ہے۔
ریٹرننگ ٹائم ونڈو کے انتخاب کی معقولیت کی توثیق کی ضرورت ہے، زیادہ فٹ ہونے سے بچنے کے لئے.
تیز رفتار اور اوسط لائن پیرامیٹرز کے مجموعے کو بہتر بنائیں تاکہ مختلف اقسام کے لئے بہترین پیرامیٹرز مل سکیں۔
سگنل کی توثیق کرنے کے لئے دیگر اشارے فلٹرز شامل کریں ، جیسے K- لائن شکل ، برن بینڈ ، RSI وغیرہ۔
مختلف اسٹاپ نقصانات کی افادیت کا اندازہ لگانے کے لئے ریٹرو ، شارپ ریٹ وغیرہ جیسے اشارے استعمال کیے جاسکتے ہیں۔
نقصان کی روک تھام کی حکمت عملی کو بہتر بنائیں ، جیسے کہ موزوں روک تھام ، لٹکی ہوئی روک تھام وغیرہ۔
سرمایہ کی تبدیلیوں ، اتار چڑھاؤ ، وغیرہ کی بنیاد پر متحرک پوزیشنوں کو ترتیب دینے کی کوشش کریں۔
MACD کثیر خلا توازن حکمت عملی ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جو کلاسیکی تکنیکی اشارے پر مبنی ہے۔ اس میں قیمت میں تبدیلی کی حرکیات کی حساس گرفت کی صلاحیت ہے ، جو پیرامیٹرز کو بہتر بنانے کے ذریعہ مختلف اقسام کے لئے اچھی طرح سے ڈھال سکتی ہے۔ مزید ہلچل والے اشارے ، اسٹاپ نقصان کے طریقوں اور متحرک پوزیشن مینجمنٹ کے ساتھ مل کر ، حکمت عملی کی استحکام اور منافع کو بہتر بنانا جاری رکھ سکتا ہے۔
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("MACD BF", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)
/////////////// Component Code Start ///////////////
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)
testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)
// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
testPeriod() => true
/////////////// MACD Component - Default settings for one day. ///////////////
fastLength = input(12) // 72 for 4hr
slowlength = input(26) // 156 for 4 hr
MACDLength = input(12) // 12 for 4hr
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
long = crossover(delta, 0)
short = crossunder(delta, 0)
last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)
last_open_long_signal = long_signal ? open : nz(last_open_long_signal[1])
last_open_short_signal = short_signal ? open : nz(last_open_short_signal[1])
last_long_signal = long_signal ? time : nz(last_long_signal[1])
last_short_signal = short_signal ? time : nz(last_short_signal[1])
in_long_signal = last_long_signal > last_short_signal
in_short_signal = last_short_signal > last_long_signal
last_high = not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1])
last_low = not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1])
sl_inp = input(5.0, title='Stop Loss %', type=float)/100
/////////////// Strategy Component ///////////////
// Strategy Entry
if testPeriod()
strategy.entry("Long Entry", strategy.long, when=long_signal)
strategy.entry("Short Entry", strategy.short, when=short_signal)
since_longEntry = barssince(last_open_long_signal != last_open_long_signal[1]) // LONG SL
since_shortEntry = barssince(last_open_short_signal != last_open_short_signal[1]) // SHORT SL
slLong = in_long_signal ? strategy.position_avg_price * (1 - sl_inp) : na
slShort = strategy.position_avg_price * (1 + sl_inp)
long_sl = in_long_signal ? slLong : na
short_sl = in_short_signal ? slShort : na
// Strategy SL Exit
if testPeriod()
strategy.exit("Long SL", "Long Entry", stop=long_sl, when=since_longEntry > 1)
strategy.exit("Short SL", "Short Entry", stop=short_sl, when=since_shortEntry > 1)
//plot(strategy.equity, title="equity", color=blue, linewidth=2, style=areabr)