ٹرینڈ ججمنٹ ملٹی فیکٹر مقداری تجارتی حکمت عملی کے ساتھ مل کر مومنٹم


تخلیق کی تاریخ: 2023-11-23 14:58:57 آخر میں ترمیم کریں: 2023-11-23 14:58:57
کاپی: 0 کلکس کی تعداد: 362
1
پر توجہ دیں
1166
پیروکار

ٹرینڈ ججمنٹ ملٹی فیکٹر مقداری تجارتی حکمت عملی کے ساتھ مل کر مومنٹم

جائزہ

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

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

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

طاقت کا تجزیہ

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

خطرے کا تجزیہ

  1. پیرامیٹرز کو بہتر بنانا مشکل ہے
    • زیادہ سے زیادہ پیرامیٹرز تلاش کرنے کے لئے بہت سارے تاریخی اعداد و شمار کی تلاش کی ضرورت ہے
  2. ٹرانزیکشنز کی کثرت
    • متعدد عوامل کا مجموعی فیصلہ ، ممکنہ طور پر زیادہ تجارت کا سبب بن سکتا ہے
  3. مارکیٹ سے متعلقہ اثرات
    • رجحانات کا اندازہ لگانے کی حکمت عملی، غیر منطقی رویے سے متاثر ہونے کا خطرہ

اصلاح کی سمت

  1. سٹاپ نقصان منطق شامل کریں
    • غیر معقول کارروائیوں سے بڑے نقصانات سے بچا جا سکتا ہے
  2. پیرامیٹرز کو بہتر بنائیں
    • حکمت عملی کے استحکام کو بہتر بنانے کے لئے زیادہ سے زیادہ پیرامیٹرز کا مجموعہ تلاش کریں
  3. مشین سیکھنے کے عناصر شامل کریں
    • ڈیپ لرننگ کا استعمال موجودہ مارکیٹ کی حالت کا اندازہ لگانے اور حکمت عملی کے فیصلوں میں معاونت کرنے کے لئے

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/03/2017
// 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.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////

strategy(title="Confluence", shorttitle="Confluence")
Harmonic = input(10, minval=1)
BuyBand = input(9)
SellBand = input(-9)
reverse = input(false, title="Trade reverse")
hline(SellBand, color=red, linestyle=line)
hline(BuyBand, color=green, linestyle=line)

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, 0, nz(pos[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("Long", when = possig == 0)	 
    strategy.close("Short", when = possig == 0)	 
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(Res1, color=green, title="Confluence", linewidth=3, style = histogram)
plot(Res2, color=red, title="Confluence", linewidth=3, style = histogram)
plot(Res3, color=gray, title="Confluence",  linewidth=3, style = histogram)