
اس حکمت عملی کو MACD روبوٹ ٹریڈنگ حکمت عملی کہا جاتا ہے۔ اس حکمت عملی میں MACD اشارے کی تیز اور سست لائنوں کے تعلقات کا حساب لگایا جاتا ہے ، مارکیٹ میں خرید و فروخت کا وقت طے کیا جاتا ہے ، اور اسٹریپ نقصان کی پیروی کرکے خطرے کو کنٹرول کیا جاتا ہے۔
یہ حکمت عملی بنیادی طور پر MACD اشارے پر مبنی تیار کی گئی ہے۔ MACD اشارے تیز اور سست لائنوں پر مشتمل ہے ، تیز لائن قلیل مدتی اوسط ہے ، اور سست لائن طویل مدتی اوسط ہے ، اور ان کا رشتہ مارکیٹ کی خرید و فروخت کی حالت کی عکاسی کرتا ہے۔ جب تیز لائن پر سست لائن کو عبور کیا جاتا ہے تو یہ خریدنے کا اشارہ ہوتا ہے ، نیچے سے گزرنا فروخت کا اشارہ ہوتا ہے۔
اس حکمت عملی میں ، تیز اور سست لائنوں کو ای ایم اے الگورتھم کے حساب سے حساب کیا جاتا ہے ، جس کی مدت اپنی مرضی کے مطابق کی جاسکتی ہے۔ سگنل کے معیار کو بہتر بنانے کے لئے ، سگنل لائنیں شامل کی گئیں ، ای ایم اے الگورتھم کے ذریعہ MACD قدر پر ایک بار پھر ہموار عملدرآمد کیا گیا۔
خریدنے کا وقت طے کرنے کے لئے ، نہ صرف تیز اور آہستہ تار کا کانٹا دیکھیں ، بلکہ یہ بھی فیصلہ کریں کہ آیا MACD کی مطلق قیمت اپنی مرضی کے مطابق خرید لائن سے زیادہ ہے۔ اگر یہ پورا ہوجائے تو ، خریدنے کا اشارہ جاری کیا جائے گا ، اور اس خطرے کو کنٹرول کرنے کے لئے ٹریکنگ اسٹاپ استعمال کیا جائے گا۔
فروخت کے وقت کا تعین کرنے کے لئے ، ایک ہی وقت میں فاسٹ اور سست لائن ڈیڈ فورک اور سگنل لائن کی مثبت شرط کو پورا کرنے کے لئے ، فروخت کا اشارہ جاری کریں اور پوزیشن کو برابر کریں۔
اس حکمت عملی کے درج ذیل فوائد ہیں:
اس حکمت عملی کے کچھ خطرات بھی ہیں:
ان خطرات کو کم کیا جاسکتا ہے جیسے مناسب پیرامیٹرز کو ایڈجسٹ کرنا ، دوسرے اشارے کو جوڑنا وغیرہ۔
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
یہ حکمت عملی مجموعی طور پر ایک اعلی وشوسنییتا رجحان ٹریکنگ حکمت عملی ہے۔ MACD اشارے کے ذریعہ رجحانات کا فیصلہ کریں ، اسٹاپ نقصان کنٹرول کے خطرے کا سراغ لگائیں ، مستحکم سرمایہ کاری کی واپسی حاصل کریں۔ NEXT STEP مزید اصلاح کے پیرامیٹرز ، دیگر اشارے کو جوڑنے ، مشین لرننگ وغیرہ کے ساتھ مل کر حکمت عملی کی منافع کو بہتر بنانا ہے۔
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(shorttitle = "GBPUSD MACD", title = "GBPUSD MACD")
fastMA = input(title="Fast moving average", defval = 12, minval = 7)
slowMA = input(title="Slow moving average", defval = 26, minval = 7)
lastColor = yellow
[currMacd,_,_] = macd(close[0], fastMA, slowMA, 9)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, 9)
plotColor = currMacd > 0 ? currMacd > prevMacd ? lime : green : currMacd < prevMacd ? maroon : red
plot(currMacd, style = histogram, color = plotColor, linewidth = 3)
plot(0, title = "Zero line", linewidth = 1, color = gray)
//MACD
// Getting inputs
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
src = input(title="Source", defval=close)
signal_length = input(title="Signal Smoothing", minval = 1, maxval = 50, defval =9)
sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=bool, defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
//plot(hist, title="Histogram", style=columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
///END OF MACD
//Long and Close Long Lines
linebuy = input(title="Enter Long", type=float, defval=-0.00045)
linesell = input(title="Close Long", type=float, defval=0.0001)
//Plot Long and Close Long Lines
plot(linebuy,color=green),plot(linesell,color=red)
//Stop Loss Input
sl_inp = input(0.05, title='Stop Loss %', type=float)/100
//Order Conditions
longCond = crossover(currMacd, linebuy)
exitLong = crossover(currMacd, signal) and signal > 0
stop_level = strategy.position_avg_price * (1 - sl_inp)
//Order Entries
strategy.entry("long", strategy.long, when=longCond==true)
strategy.close("long", when=exitLong==true)
strategy.exit("Stop Loss", stop=stop_level)