دوہری حرکت پذیر اوسط کی الٹ ٹریکنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-20 17:08:43
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

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

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

جب فرق اور سگنل لائن میں مارکیٹ کی تبدیلی کے سگنل دکھائے جاتے ہیں، اور تجارتی حجم مارکیٹ کی تبدیلی کی تصدیق کے مطابق ہوتا ہے، تو تجارتی سگنل پیدا کیے جائیں گے.

فوائد

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

خطرات اور حل

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

اصلاح کی ہدایات

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

خلاصہ

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


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("3 10 Oscillator Profile Flagging", shorttitle="3 10 Oscillator Profile Flagging", overlay=true)

signalBiasValue = input(title="Signal Bias", defval=0.26)
macdBiasValue = input(title="MACD Bias", defval=0.8)
shortLookBack = input( title="Short LookBack", defval=3)
longLookBack = input( title="Long LookBack", defval=10)

fast_ma = ta.sma(close, 3)
slow_ma = ta.sma(close, 10)
macd = fast_ma - slow_ma
signal = ta.sma(macd, 16)
hline(0, "Zero Line", color = color.black)

buyVolume = volume*((close-low)/(high-low))
sellVolume = volume*((high-close)/(high-low))
buyVolSlope = buyVolume - buyVolume[1]
sellVolSlope = sellVolume - sellVolume[1]
signalSlope = ( signal - signal[1] )
macdSlope = ( macd - macd[1] )
//plot(macdSlope, color=color.red, title="Total Volume")
//plot(signalSlope, color=color.green, title="Total Volume")
intrabarRange = high - low

getLookBackSlope(lookBack) => signal - signal[lookBack]
getBuyerVolBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if buyVolume[i] > sellVolume[i]
            j += 1
    j

getSellerVolBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if sellVolume[i] > buyVolume[i]
            j += 1
    j

getVolBias(lookBack) =>
    float b = 0
    float s = 0
    for i = 1 to lookBack
        b += buyVolume[i]
        s += sellVolume[i]
    b > s

getSignalBuyerBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] > signalBiasValue
            j += 1
    j

getSignalSellerBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] < ( 0 - signalBiasValue )
            j += 1
    j

getSignalNoBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] < signalBiasValue and signal[i] > ( 0 - signalBiasValue )
            j += 1
    j

getPriceRising(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if close[i] > close[i + 1]
            j += 1
    j


getPriceFalling(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if close[i] < close[i + 1] 
            j += 1
    j

getRangeNarrowing(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if intrabarRange[i] < intrabarRange[i + 1] 
            j+= 1
    j

getRangeBroadening(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if intrabarRange[i] > intrabarRange[i + 1] 
            j+= 1
    j

bool isNegativeSignalReversal = signalSlope < 0 and signalSlope[1] > 0
bool isNegativeMacdReversal = macdSlope < 0 and macdSlope[1] > 0

bool isPositiveSignalReversal = signalSlope > 0 and signalSlope[1] < 0
bool isPositiveMacdReversal = macdSlope > 0 and macdSlope[1] < 0

bool hasBearInversion = signalSlope > 0 and macdSlope < 0
bool hasBullInversion = signalSlope < 0 and macdSlope > 0

bool hasSignalBias = math.abs(signal) >= signalBiasValue
bool hasNoSignalBias = signal < signalBiasValue and signal > ( 0 - signalBiasValue )

bool hasSignalBuyerBias = hasSignalBias and signal > 0
bool hasSignalSellerBias = hasSignalBias and signal < 0

bool hasPositiveMACDBias = macd > macdBiasValue
bool hasNegativeMACDBias = macd < ( 0 - macdBiasValue )

bool hasBullAntiPattern = ta.crossunder(macd, signal)
bool hasBearAntiPattern = ta.crossover(macd, signal)

bool hasSignificantBuyerVolBias = buyVolume > ( sellVolume * 1.5 )
bool hasSignificantSellerVolBias = sellVolume > ( buyVolume * 1.5 )

// 7.48 Profit 52.5% 
if ( hasSignificantBuyerVolBias and getPriceRising(shortLookBack) == shortLookBack  and getBuyerVolBias(shortLookBack) == shortLookBack and hasPositiveMACDBias and hasBullInversion)
    strategy.entry("Short1", strategy.short)
strategy.exit("TPS", "Short1", limit=strategy.position_avg_price - 0.75, stop=strategy.position_avg_price + 0.5)

// 32.53 Profit 47.91%
if ( getPriceFalling(shortLookBack) and (getVolBias(shortLookBack) == false) and signalSlope < 0 and hasSignalSellerBias)
    strategy.entry("Long1", strategy.long)
strategy.exit("TPS", "Long1", limit=strategy.position_avg_price + 0.75, stop=strategy.position_avg_price - 0.5)

مزید