MACD موونگ ایوریج کراس ٹرینڈ ٹریلنگ اسٹاپ لاس سٹریٹیجی


تخلیق کی تاریخ: 2023-11-06 11:56:14 آخر میں ترمیم کریں: 2023-11-06 11:56:14
کاپی: 0 کلکس کی تعداد: 626
1
پر توجہ دیں
1621
پیروکار

MACD موونگ ایوریج کراس ٹرینڈ ٹریلنگ اسٹاپ لاس سٹریٹیجی

جائزہ

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

اصول

داخلہ سگنل

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

نقصان کو روکنے کے طریقے

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

آغاز کا طریقہ

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

فوائد

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

خطرات اور ان کا مقابلہ

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

اصلاح کی سمت

  • MACD پیرامیٹرز کو بہتر بنانے کے لئے تاکہ یہ رجحانات کا زیادہ درست فیصلہ کرسکے

  • اے ٹی آر سائیکل پیرامیٹرز کو بہتر بنانے کے لئے اسٹاپ نقصان کو بہتر بنائیں

  • آؤٹ پٹ تناسب اور پوزیشن کنٹرول کو بہتر بنانا ، بیعانہ کے خطرے کو کم کرنا

  • موبائل اسٹاپ کو بڑھانا یا اتار چڑھاؤ کے اشارے کو بہتر بنانے کے لئے اسٹاپ کو مدنظر رکھنا

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
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/
// © Deobald

//@version=4
strategy("MACD Strategy", overlay=true)

// FUNCTIONS

Ema(src,p) =>
    ema = 0.
    sf = 2/(p+1)
    ema := nz(ema[1] + sf*(src - ema[1]),src)

Sma(src,p) => a = cum(src), (a - a[max(p,0)])/max(p,0)

Atr(p) =>
    atr = 0.
    Tr = max(high - low, max(abs(high - close[1]), abs(low - close[1])))
    atr := nz(atr[1] + (Tr - atr[1])/p,Tr)

/// TREND
ribbon_period = input(34, "Period", step=1)

leadLine1 = ema(close, ribbon_period)
leadLine2 = sma(close, ribbon_period)

p3 = plot(leadLine1, color= #53b987, title="EMA", transp = 50, linewidth = 1)
p4 = plot(leadLine2, color= #eb4d5c, title="SMA", transp = 50, linewidth = 1)
fill(p3, p4, transp = 60, color = leadLine1 > leadLine2 ? #53b987 : #eb4d5c)


// MACD
fast_length = input(title="Fast Length", type=input.integer, defval=3)
slow_length = input(title="Slow Length", type=input.integer, defval=5)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 2)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=true)

// 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=plot.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)



// TAKE PROFIT AND STOP LOSS
long_tp1_inp = input(1, title='Long Take Profit 1 %', step=0.1)/100
long_tp1_qty = input(10, title="Long Take Profit 1 Qty", step=1)

long_tp2_inp = input(5, title='Long Take Profit 2%', step=0.1)/100
long_tp2_qty = input(50, title="Long Take Profit 2 Qty", step=1)

long_take_level_1 = strategy.position_avg_price * (1 + long_tp1_inp)
long_take_level_2 = strategy.position_avg_price * (1 + long_tp2_inp)




// Stop Loss
multiplier = input(2.2, "SL Mutiplier", minval=1, step=0.1)
ATR_period=input(17,"ATR period", minval=1, step=1)

// Strategy
entry_long=crossover(macd,signal) and leadLine2 < leadLine1
entry_price_long=valuewhen(entry_long,close,0)
SL_floating_long = entry_price_long - multiplier*Atr(ATR_period)
exit_long= close < SL_floating_long 

///// BACKTEST PERIOD ///////
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

testPeriod() => true

if testPeriod()
    strategy.entry("long", strategy.long, comment="Long", when=entry_long)
    strategy.exit("TP1","long", qty_percent=long_tp1_qty, limit=long_take_level_1)//, trail_points=entry_price_long * long_trailing / syminfo.mintick, trail_offset=entry_price_long * long_trailing / syminfo.mintick)
    strategy.exit("TP2", qty_percent=long_tp2_qty, limit=long_take_level_2) //, trail_points=entry_price_long * long_trailing / syminfo.mintick, trail_offset=entry_price_long * long_trailing / syminfo.mintick)
    strategy.close_all("long", when=exit_long, comment="exit long" )


// LONG POSITION
plot(strategy.position_size > 0 ? long_take_level_1 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="1st Long Take Profit")
plot(strategy.position_size > 0 ? long_take_level_2 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="2nd Long Take Profit")
plot(strategy.position_size > 0 ? SL_floating_long : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Stop Loss")