ایم اے سی ڈی حرکت پذیر اوسط کراس اوور رجحان ٹریلنگ اسٹاپ نقصان کے ساتھ حکمت عملی کے بعد

مصنف:چاؤ ژانگ، تاریخ: 2023-11-06 11:56:14
ٹیگز:

img

جائزہ

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

منطق

اندراج کا اشارہ

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

سٹاپ نقصان

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

باہر نکلنے کے اشارے

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

فوائد

  • ایم اے سی ڈی کے جائزے کا رجحان ای ایم اے/ایس ایم اے کراس اوور کے ساتھ مل کر انٹری ٹائمنگ کی تصدیق کرتا ہے
  • اے ٹی آر ٹریلنگ اسٹاپ ٹرینڈ کی پیروی کرتے ہوئے مؤثر سٹاپ نقصان کی اجازت دیتا ہے
  • جزوی باہر نکلنے سے منافع حاصل کرنے میں مدد ملتی ہے ، منافع میں مقفل ہوجاتا ہے اور مدت کے لئے برقرار رہتا ہے

خطرات اور حل

  • MACD اور رجحان اشارے سے غلط سگنل کا خطرہ۔ پیرامیٹرز کو ٹھیک کریں یا دوسرے اشارے شامل کریں۔

  • اے ٹی آر سٹاپ نقصان کا خطرہ۔ اے ٹی آر مدت یا سٹاپ نقصان ضرب کو بڑھا سکتا ہے۔

  • پسماندہ پوزیشن میں پھنس جانے کا خطرہ۔ پسماندہ پوزیشن کا سائز کم کریں اور وقت میں نقصان کو کم کریں۔

بہتر مواقع

  • بہتر رجحان کی تشخیص کے لئے MACD پیرامیٹرز کو بہتر بنائیں

  • بہتر سٹاپ نقصان کی سطح کے لئے ATR مدت کو بہتر بنائیں

  • پھنسے ہوئے خطرے کو کم کرنے کے لئے باہر نکلنے کے تناسب اور پوزیشن سائزنگ کو بہتر بنائیں

  • سٹاپ نقصان کو بہتر بنانے کے لئے منتقل منافع لینے یا اتار چڑھاؤ انڈیکس شامل کرنے پر غور کریں

خلاصہ

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


/*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")


مزید