یہ حکمت عملی MACD اشارے کا استعمال کرتے ہوئے ٹریڈنگ سگنل تیار کرتی ہے اور اے ٹی آر پر مبنی موافقت پذیر اسٹاپ نقصان کا استعمال کرتے ہوئے خطرے کو کنٹرول کرتی ہے۔ یہ رجحان سے متعلق حکمت عملی ہے۔
MACD اشارے کی ڈیلیوری ڈیلٹ فریک لائن 0 محور کو توڑنے کے لئے خرید اور فروخت سگنل پیدا کرتی ہے۔
متحرک اسٹاپ نقصان کا حساب لگانے کے لئے اے ٹی آر کا حساب لگانا ، جو حالیہ N سائیکل پر مبنی ہے۔ اے ٹی آر مارکیٹ میں اتار چڑھاؤ کی شرح کی عکاسی کرسکتا ہے۔
اسٹاپ نقصان کی پوزیشن اتار چڑھاؤ کی شرح میں تبدیلی کے ساتھ خود کو ایڈجسٹ کرتی ہے ، اور اتار چڑھاؤ میں اضافے کے ساتھ اسٹاپ نقصان میں نرمی آتی ہے۔
منافع کو لاک کرنے اور خطرے پر قابو پانے کے لئے سگنل کے انعقاد کے دوران اسٹاپ نقصان کی جگہ کو حقیقی وقت میں اپ ڈیٹ کریں۔
جب اسٹاپ نقصان کی سطح ٹرگر ہوتی ہے تو ، پوزیشن سے باہر نکلیں اور رسک کنٹرول مکمل کریں۔
MACD اشارے رجحانات کی پیروی کرنے کے لئے زیادہ حساس ہیں.
متحرک اسٹاپ نقصان مارکیٹ کے حالات کے مطابق ڈھال سکتا ہے ، جس سے قریبی یا بہت دور کا نقصان نہیں ہوتا ہے۔
ایک بصری اسٹاپ نقصان کی لائن ، جو خطرے کی صورتحال کو ظاہر کرتی ہے۔
حکمت عملی کے قواعد سادہ اور واضح ہیں اور ان پر عمل درآمد کرنا آسان ہے۔
انخلا کنٹرول میں ہے، خطرے کا انتظام اچھا ہے۔
MACD اشارے غلط سگنل پیدا کرسکتے ہیں جس سے غیر ضروری نقصان ہوتا ہے۔
اے ٹی آر پیرامیٹرز کو غلط طریقے سے ترتیب دیا گیا ہے ، جو قریب یا بہت دور کی پریشانیوں کو ختم کرتا ہے۔
نقصانات کو روکنے کا خطرہ جو اکثر متحرک ہوتا ہے۔
ٹرینڈ ریورس اور ٹائم اسٹاپ۔
پیرامیٹرز کو بہتر بنانے کے دوران ممکنہ طور پر زیادہ فٹ ہونے کا خطرہ ہے۔
مختلف پیرامیٹرز MACDs کے مجموعے کی جانچ کریں اور بہترین پیرامیٹرز تلاش کریں۔
دوسرے نقصانات کو روکنے کے طریقوں کو آزمائیں، جیسے ٹریکنگ نقصانات وغیرہ۔
سٹاپ نقصان کے پیرامیٹرز کو بہتر بنائیں ، اسٹاپ نقصان کی تعدد اور خطرے کے کنٹرول کو متوازن کریں۔
رجحانات کا اندازہ لگانے کا طریقہ کار شامل کریں تاکہ ریورس اسٹاپ نقصان سے بچا جاسکے۔
ٹرانزیکشن لاگت کے اثرات کو مدنظر رکھتے ہوئے ، زیادہ تجارت کو روکیں۔
سلائیڈ پوائنٹ یا بڑھا ہوا اسٹاپ نقصان کو یقینی بناتا ہے۔
یہ حکمت عملی MACD اشارے پر مبنی سگنل بھیجتی ہے ، جس میں اے ٹی آر متحرک اسٹاپ نقصان کا استعمال کیا جاتا ہے۔ اس کی خصوصیات خطرے سے متعلق ہیں ، آسان عملی ہیں۔ تاہم ، MACD سگنل غلط فہمی کا شکار ہے ، اور اسٹاپ نقصان کے طریقہ کار کو مستقل طور پر بہتر بنانے کی ضرورت ہے۔ مجموعی طور پر ، پیرامیٹرز کو ایڈجسٹ کرنے ، اسٹاپ نقصان کی حکمت عملی کو بہتر بنانے وغیرہ کے ذریعہ ، اس کو ایک زیادہ مستحکم رجحان سے باخبر رہنے والے تجارتی نظام میں تبدیل کیا جاسکتا ہے۔
/*backtest
start: 2023-01-01 00:00:00
end: 2023-02-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
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)
/////////////// Time Frame ///////////////
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)
testPeriod() => true
/////////////// MACD ///////////////
fastLength = input(13)
slowlength = input(30)
MACDLength = input(12)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
/////////////// Strategy ///////////////
long = crossover(delta, 0)
short = crossunder(delta, 0)
last_long = 0.0
last_short = 0.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 = 0.0
last_open_short_signal = 0.0
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 = 0.0
last_short_signal = 0.0
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 = 0.0
last_low = 0.0
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])
since_longEntry = barssince(last_open_long_signal != last_open_long_signal[1])
since_shortEntry = barssince(last_open_short_signal != last_open_short_signal[1])
/////////////// Dynamic ATR Stop Losses ///////////////
atrLkb = input(2, minval=1, title='ATR Stop Period')
atrMult = input(1.25, step=0.25, title='ATR Stop Multiplier')
atr1 = atr(atrLkb)
longStop = 0.0
longStop := short_signal ? na : long_signal ? close - (atr1 * atrMult) : longStop[1]
shortStop = 0.0
shortStop := long_signal ? na : short_signal ? close + (atr1 * atrMult) : shortStop[1]
/////////////// Execution ///////////////
if testPeriod()
strategy.entry("Long", strategy.long, when=long)
strategy.entry("Short", strategy.short, when=short)
strategy.exit("Long SL", "Long", stop=longStop, when=since_longEntry > 0)
strategy.exit("Short SL", "Short", stop=shortStop, when=since_shortEntry > 0)
/////////////// Plotting ///////////////
barcolor(long ? color.lime : short ? color.red : na)
plot(strategy.position_size <= 0 ? na : longStop, title="Long Stop Loss", color=color.yellow, style=plot.style_circles, linewidth=2)
plot(strategy.position_size >= 0 ? na : shortStop, title="Short Stop Loss", color=color.orange, style=plot.style_circles, linewidth=2)
bgcolor(strategy.position_size > 0 ? color.lime : strategy.position_size < 0 ? color.red : color.white, transp=90)
bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=60)