ملٹی فیکٹر ماڈل پر مبنی لمحے کی واپسی کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-21 16:26:10
ٹیگز:

img

جائزہ

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

حکمت عملی کا اصول

اسٹریٹیجی میں دو ذیلی حکمت عملی شامل ہیں: 123 الٹ پلٹ کی حکمت عملی اور سنگم اشارے کی حکمت عملی۔

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

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

آخر میں، حکمت عملی طویل یا مختصر پوزیشنوں کو قائم کرتی ہے جب دونوں سگنل مستقل ہوتے ہیں.

فوائد کا تجزیہ

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

  1. 123 واپسی کی حکمت عملی ایک واپسی سگنل ذریعہ کے طور پر، مختصر مدت کی واپسی سے اضافی منافع کو پکڑ سکتا ہے.

  2. کنفلوئنس اشارے بہت بڑی الٹ کی جگہ کی وجہ سے نقصان کے خطرے سے بچنے کے لئے رجحان کی سمت اور طاقت کا اندازہ لگاتا ہے.

  3. دونوں حکمت عملیوں کا امتزاج ایک دوسرے کی طاقتوں اور کمزوریوں کو کسی حد تک مکمل کرتا ہے اور سگنل کے معیار کو بہتر بناتا ہے۔

  4. ایک واحد ماڈل کے مقابلے میں ، متعدد عوامل کا امتزاج حکمت عملیوں کے استحکام کو بہتر بنا سکتا ہے۔

خطرے کا تجزیہ

اگرچہ ملٹی فیکٹر ماڈل پر مبنی لمحہ الٹ کرنے کی حکمت عملی میں کچھ فوائد ہیں ، پھر بھی کچھ خطرات موجود ہیں:

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

  2. جب دو سگنل متضاد ہوں تو سمت کا تعین کرنے میں ناکام۔ مماثلت کی ڈگری بڑھانے کے لئے پیرامیٹر ایڈجسٹمنٹ کی جاسکتی ہے۔

  3. ماڈل بہت زیادہ پیچیدہ ہے، بہت سے پیرامیٹرز کے ساتھ، جو ایڈجسٹ کرنے اور بہتر بنانے کے لئے مشکل ہے.

  4. متعدد ذیلی ماڈلوں کی بیک وقت نگرانی کرنے کی ضرورت ہے ، جس کے نتیجے میں آپریشن میں دشواری اور نفسیاتی دباؤ میں اضافہ ہوتا ہے۔ آپریشنل بوجھ کو کم کرنے کے لئے خودکار ٹریڈنگ عناصر متعارف کروائے جاسکتے ہیں۔

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

ملٹی فیکٹر ماڈل پر مبنی لمحے کی واپسی کی حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:

  1. 123 ریورسنگ حکمت عملی کے پیرامیٹرز کو ایڈجسٹ کریں تاکہ ریورسنگ سگنل زیادہ درست اور قابل اعتماد ہوں۔

  2. کنفلوئنس اشارے کے پیرامیٹرز کو ایڈجسٹ کریں تاکہ مقررہ رجحانات کو اصل رجحانات سے قریب تر بنایا جاسکے۔

  3. خودکار طور پر پیرامیٹر کے مجموعے کو بہتر بنانے کے لئے مشین لرننگ الگورتھم متعارف کروائیں۔

  4. پوزیشن ایڈجسٹمنٹ کو زیادہ مقداری اور منظم بنانے کے لئے پوزیشن مینجمنٹ ماڈیول شامل کریں.

  5. سٹاپ نقصان ماڈیول شامل کریں. سٹاپ نقصان کی قیمت پہلے سے مقرر کی طرف سے مؤثر طریقے سے واحد نقصان کو کنٹرول.

خلاصہ

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


/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 11/11/2019
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This is modified version of Dale Legan's "Confluence" indicator written by Gary Fritz.
// ================================================================
// Here is Gary`s commentary:
// Since the Confluence indicator returned several "states" (bull, bear, grey, and zero), 
// he modified the return value a bit:
// -9 to -1 = Bearish
// -0.9 to 0.9 = "grey" (and zero)
// 1 to 9 = Bullish
// The "grey" range corresponds to the "grey" values plotted by Dale's indicator, but 
// they're divided by 10.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

Confluence(Harmonic, BuyBand, SellBand) =>
    pos = 0.0
    Price = close
    STL = round((Harmonic * 2) - 1 - 0.5)
    ITL = round((STL * 2) - 1 - 0.5)
    LTL = round((ITL * 2) - 1 - 0.5)
    HOFF = round(Harmonic / 2 - 0.5)
    SOFF = round(STL / 2 - 0.5)
    IOFF = round(ITL / 2 - 0.5)
    xHavg = sma(Price, Harmonic)
    xSavg = sma(Price, STL)
    xIavg = sma(Price, ITL)
    xLavg = sma(Price, LTL)
    xvalue2 = xSavg - xHavg[HOFF]
    xvalue3 = xIavg - xSavg[SOFF]
    xvalue12 = xLavg - xIavg[IOFF]
    xmomsig = xvalue2 + xvalue3 + xvalue12
    xLavgOHLC = sma(ohlc4, LTL - 1)
    xH2 = sma(Price, Harmonic - 1)
    xS2 = sma(Price, STL - 1)
    xI2 = sma(Price, ITL - 1)
    xL2 = sma(Price, LTL - 1)
    DerivH = (xHavg * 2) - xHavg[1]
    DerivS = (xSavg * 2) - xSavg[1]
    DerivI = (xIavg * 2) - xIavg[1]
    DerivL = (xLavg * 2) - xLavg[1]
    SumDH = Harmonic * DerivH
    SumDS = STL * DerivS
    SumDI = ITL * DerivI
    SumDL = LTL * DerivL
    LengH = Harmonic - 1
    LengS = STL - 1
    LengI = ITL - 1
    LengL = LTL - 1
    N1H = xH2 * LengH
    N1S = xS2 * LengS
    N1I = xI2 * LengI
    N1L = xL2 * LengL
    DRH = SumDH - N1H
    DRS = SumDS - N1S
    DRI = SumDI - N1I
    DRL = SumDL - N1L
    SumH = xH2 * (Harmonic - 1)
    SumS = xS2 * (STL - 1)
    SumI = xI2 * (ITL - 1)
    SumL = xLavgOHLC * (LTL - 1)
    xvalue5 = (SumH + DRH) / Harmonic
    xvalue6 = (SumS + DRS) / STL
    xvalue7 = (SumI + DRI) / ITL
    xvalue13 = (SumL + DRL) / LTL
    value9 = xvalue6 - xvalue5[HOFF]
    value10 = xvalue7 - xvalue6[SOFF]
    value14 = xvalue13 - xvalue7[IOFF]
    xmom = value9 + value10 + value14
    HT = sin(xvalue5 * 2 * 3.14 / 360) + cos(xvalue5 * 2 * 3.14 / 360)
    HTA = sin(xHavg * 2 * 3.14 / 360) + cos(xHavg * 2 * 3.14 / 360)
    ST = sin(xvalue6 * 2 * 3.14 / 360) + cos(xvalue6 * 2 * 3.14 / 360)
    STA = sin(xSavg * 2 * 3.14 / 360) + cos(xSavg * 2 * 3.14 / 360)
    IT = sin(xvalue7 * 2 * 3.14 / 360) + cos(xvalue7 * 2 * 3.14 / 360)
    ITA = sin(xIavg * 2 * 3.14 / 360) + cos(xIavg * 2 * 3.14 / 360)
    xSum = HT + ST + IT
    xErr = HTA + STA + ITA
    Condition2 = (((xSum > xSum[SOFF]) and (xHavg < xHavg[SOFF])) or ((xSum < xSum[SOFF]) and (xHavg > xHavg[SOFF])))
    Phase = iff(Condition2 , -1 , 1)
    xErrSum = (xSum - xErr) * Phase
    xErrSig = sma(xErrSum, SOFF)
    xvalue70 = xvalue5 - xvalue13
    xvalue71 = sma(xvalue70, Harmonic)
    ErrNum = iff (xErrSum > 0 and xErrSum < xErrSum[1] and xErrSum < xErrSig, 1,
                  iff (xErrSum > 0 and xErrSum < xErrSum[1] and xErrSum > xErrSig, 2, 
                     iff (xErrSum > 0 and xErrSum > xErrSum[1] and xErrSum < xErrSig, 2,
                         iff (xErrSum > 0 and xErrSum > xErrSum[1] and xErrSum > xErrSig, 3,
                          iff (xErrSum < 0 and xErrSum > xErrSum[1] and xErrSum > xErrSig, -1,
                             iff (xErrSum < 0 and xErrSum < xErrSum[1] and xErrSum > xErrSig, -2,
                              iff (xErrSum < 0 and xErrSum > xErrSum[1] and xErrSum < xErrSig, -2,
                                 iff (xErrSum < 0 and xErrSum < xErrSum[1] and xErrSum < xErrSig, -3, 0))))))))

    momNum = iff (xmom > 0 and xmom < xmom[1] and xmom < xmomsig , 1,
              iff (xmom > 0 and xmom < xmom[1] and xmom > xmomsig, 2,
               iff (xmom > 0 and xmom > xmom[1] and xmom < xmomsig, 2,
                 iff (xmom > 0 and xmom > xmom[1] and xmom > xmomsig, 3,
                  iff (xmom < 0 and xmom > xmom[1] and xmom > xmomsig, -1,
                   iff (xmom < 0 and xmom < xmom[1] and xmom > xmomsig, -2,
                     iff (xmom < 0 and xmom > xmom[1] and xmom < xmomsig, -2,
                      iff (xmom < 0 and xmom < xmom[1] and xmom < xmomsig, -3, 0))))))))
    
    TCNum =  iff (xvalue70 > 0 and xvalue70 < xvalue70[1] and xvalue70 < xvalue71, 1,
              iff (xvalue70 > 0 and xvalue70 < xvalue70[1] and xvalue70 > xvalue71, 2,
               iff (xvalue70 > 0 and xvalue70 > xvalue70[1] and xvalue70 < xvalue71, 2,
                 iff (xvalue70 > 0 and xvalue70 > xvalue70[1] and xvalue70 > xvalue71, 3,
                  iff (xvalue70 < 0 and xvalue70 > xvalue70[1] and xvalue70 > xvalue71, -1,
                   iff (xvalue70 < 0 and xvalue70 < xvalue70[1] and xvalue70 > xvalue71, -2,
                     iff (xvalue70 < 0 and xvalue70 > xvalue70[1] and xvalue70 < xvalue71, -2,
                      iff (xvalue70 < 0 and xvalue70 < xvalue70[1] and xvalue70 < xvalue71, -3,0))))))))
    
    value42 = ErrNum + momNum + TCNum
    Confluence = iff (value42 > 0 and xvalue70 > 0, value42,
                  iff (value42 < 0 and xvalue70 < 0, value42,
                   iff ((value42 > 0 and xvalue70 < 0) or (value42 < 0 and xvalue70 > 0), value42 / 10, 0)))
    Res1 = iff (Confluence >= 1, Confluence, 0)
    Res2 = iff (Confluence <= -1, Confluence, 0)
    Res3 = iff (Confluence == 0, 0, iff (Confluence > -1 and Confluence < 1, 10 * Confluence, 0))
    pos := iff(Res2 >= SellBand and Res2 != 0, -1,
	         iff(Res1 <= BuyBand and Res1 != 0, 1, 
    	      iff(Res3 != 0, 2, nz(pos[1], 0))))
    pos

strategy(title="Combo Backtest 123 Reversal & Confluence", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Harmonic = input(10, minval=1)
BuyBand = input(9)
SellBand = input(-9)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posConfluence = Confluence(Harmonic, BuyBand, SellBand)
pos = iff(posReversal123 == 1 and posConfluence == 1 , 1,
	   iff(posReversal123 == -1 and posConfluence == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

مزید