
ملٹی فیکٹر ماڈل کی حرکیات کی تبدیلی کی حکمت عملی ایک ملٹی فیکٹر ماڈل اور حرکیات کی تبدیلی کی حکمت عملی کے امتزاج کے ذریعہ زیادہ مستحکم اور زیادہ منافع حاصل کرتی ہے۔ یہ حکمت عملی 123 کی تبدیلی اور ہم آہنگی کے اشارے کو دو الگ الگ سگنل کے طور پر استعمال کرتی ہے اور جب دونوں سگنل ملتے ہیں تو پوزیشن قائم کرتی ہے۔
ملٹی فیکٹر ماڈل حرکیات کی الٹ حکمت عملی دو ذیلی حکمت عملیوں پر مشتمل ہے: 123 الٹ حکمت عملی اور ہم آہنگی اشارے کی حکمت عملی
123 واپسی کی حکمت عملی 2 دن میں مسلسل قیمتوں میں اضافے یا کمی پر مبنی ہے اور اسٹاک اشارے کے ساتھ مل کر یہ فیصلہ کرتی ہے کہ مارکیٹ بہت ٹھنڈی ہے یا بہت گرم ہے۔ خاص طور پر ، جب قیمتیں 2 دن مسلسل بڑھتی ہیں اور 9 دن اسٹاک کی سست لائن 50 سے نیچے ہوتی ہے تو زیادہ دیکھیں۔ جب قیمتیں 2 دن مسلسل کم ہوتی ہیں اور 9 دن اسٹاک کی تیز لائن 50 سے اوپر ہوتی ہے تو زیادہ دیکھیں۔
ہم آہنگی اشارے کی حکمت عملی رجحان کی سمت اور طاقت کا تعین کرنے کے لئے مختلف دورانیہ اوسط اور جھٹکے کے اشارے کا استحصال کرتی ہے۔ اس میں لکیری وزن ، سنجیدہ جمع اور دیگر طریقوں کو شامل کیا گیا ہے۔ یہ اشارے درجہ بندی کے بعد ، 1 سے 9 تک واپس آتا ہے جس کا مطلب ہے کہ زیادہ سے زیادہ طاقت ، اور 1 سے 9 تک مضبوط ہوا کا مطلب ہے۔
آخر میں ، حکمت عملی ایک ہی وقت میں ایک سے زیادہ یا خالی سر پوزیشن قائم کرنے کا انتخاب کرتی ہے۔
ملٹی فیکٹر ماڈل حرکیات الٹ حکمت عملی میں الٹ عنصر اور قوت عنصر کا امتزاج کیا گیا ہے ، جو الٹ مواقع کو پکڑنے کے لئے ایک ہی وقت میں ترتیب سے کام کرتا ہے ، اور جھوٹے توڑ سے بچتا ہے ، جس سے اس کی جیت کی شرح زیادہ ہوتی ہے۔ حکمت عملی کے فوائد میں شامل ہیں:
123 ریورسنگ حکمت عملی ریورسنگ سگنل کا ذریعہ ہے ، جو مختصر مدت کے ریورسنگ کو پکڑ سکتا ہے جس سے اضافی آمدنی ہوتی ہے۔
ریورسورس اشارے رجحان کی سمت اور طاقت کا اندازہ لگاتے ہیں ، اور الٹ جانے والے خلا میں زیادہ سے زیادہ نقصان کے خطرے سے بچتے ہیں۔
دونوں کو ملا کر ، کچھ حد تک ایک دوسرے کی طاقت کو پورا کریں ، کمی کو پورا کریں ، اور سگنل کے معیار کو بہتر بنائیں۔
ایک واحد ماڈل کے مقابلے میں، ایک سے زیادہ عوامل کو یکجا کرنے سے حکمت عملی کی استحکام میں اضافہ ہوتا ہے.
اگرچہ ملٹی فیکٹر ماڈل کی حرکیات کی تبدیلی کی حکمت عملی کے کچھ فوائد ہیں ، لیکن اس کے کچھ خطرات بھی ہیں:
ریورس مکمل نہیں ہوا ، قیمت ایک بار پھر پیچھے ہٹ گئی۔ نقصان کی روک تھام کو مناسب طریقے سے ایڈجسٹ کیا جاسکتا ہے۔
دونوں سگنل متضاد ہونے پر سمت کا تعین نہیں کیا جاسکتا۔ پیرامیٹرز کو ایڈجسٹ کرکے دونوں کی مماثلت کو زیادہ سے زیادہ بنایا جاسکتا ہے۔
ماڈل بہت پیچیدہ ہے، بہت سے پیرامیٹرز، آسانی سے ایڈجسٹ اور بہتر بنانے کے لئے.
ایک ہی وقت میں متعدد ذیلی ماڈلوں پر توجہ دینے کی ضرورت ہے ، عملی طور پر چلانے میں دشواری اور ذہنی دباؤ زیادہ ہے۔ آپریٹنگ بوجھ کو کم کرنے کے لئے کچھ خودکار تجارتی عناصر متعارف کرائے جاسکتے ہیں۔
ایک کثیر عنصر ماڈل کی حرکیات الٹ حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
ریورس سگنل کو زیادہ درست اور قابل اعتماد بنانے کے لئے 123 ریورس حکمت عملی کے پیرامیٹرز کو ایڈجسٹ کریں۔
ہم آہنگی کے اشارے کے پیرامیٹرز کو ایڈجسٹ کریں تاکہ فیصلے کے رجحانات کو حقیقی رجحانات کے قریب لایا جاسکے۔
مشین لرننگ الگورتھم کو متعارف کرانے کے لئے خود کار طریقے سے اصلاح کے پیرامیٹرز کا مجموعہ۔
پوزیشن مینجمنٹ ماڈیول شامل کریں تاکہ پوزیشن ایڈجسٹمنٹ کو زیادہ مقدار اور منظم بنایا جاسکے۔
اسٹاپ نقصان ماڈیول شامل کریں۔ اسٹاپ نقصان کی قیمت کو پہلے سے طے کرکے انفرادی نقصان کو مؤثر طریقے سے کنٹرول کریں۔
ملٹی فیکٹر ماڈل متحرک الٹ حکمت عملی کا استعمال کرتا ہے۔ الٹ فیکٹر اور قوت عنصر ، اعلی سگنل کے معیار کی ضمانت کی بنیاد پر ، ملٹی فیکٹر سلائڈنگ کے ذریعہ زیادہ کامیابی حاصل کریں۔ اس حکمت عملی میں الٹ کے مواقع کو پکڑنے ، تسلسل پر مبنی دوہری فائدہ ہے ، یہ ایک موثر استحکام کی حکمت عملی ہے۔ مستقبل میں پیرامیٹرز کو ایڈجسٹ کرنے ، خطرے پر قابو پانے وغیرہ کے لحاظ سے مستقل طور پر بہتر بنایا جاسکتا ہے ، جس سے حکمت عملی کے فوائد کے خطرے کا تناسب مزید بہتر ہوتا ہے۔
/*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 )