کواڈریٹک فٹنگ ٹریڈنگ سگنل کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-23 15:40:57
ٹیگز:

جائزہ

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

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

اہم اجزاء اور قواعد یہ ہیں:

  1. مربع رجعت کا استعمال کرتے ہوئے اعلی / کم پوائنٹس پر وکر فٹنگ.

  2. اوپر کی بینڈ کے اوپر قریبی وقفے جب خریدنے کے سگنل.

  3. جب قریب کم بینڈ سے نیچے ٹوٹ جاتا ہے تو سگنل فروخت کریں.

  4. غلط وقفے سے بچنے کے لئے N مدت کی تصدیق.

  5. کوئی فکسڈ باہر نکلنے کے قوانین، بیک ٹیسٹنگ کے ذریعے باہر نکلنے کو بہتر بنائیں.

یہ حکمت عملی اہم قیمتوں کو ریاضیاتی طور پر شناخت کرنے کی کوشش کرتی ہے اور بریکآؤٹس کی تجارت کرتی ہے ، ایک عام بریکآؤٹ سسٹم۔

فوائد

دیگر بریک آؤٹ سسٹم کے مقابلے میں، اہم فوائد یہ ہیں:

  1. ریاضی کی فٹنگ ذہنی فیصلے سے زیادہ معروضی ہے۔

  2. تکنیکی تجزیہ اور شماریاتی ماڈلز کو یکجا کرنے والا نیا نقطہ نظر۔

  3. کثیر دورانیہ کی تصدیق سے جھوٹے وقفے سے بچنے کے لئے.

  4. بیک ٹسٹنگ سے باہر نکلنے اور انتظار کی مدت کو بہتر بنایا جاسکتا ہے۔

  5. لچکدار ایڈجسٹمنٹ کے ساتھ لاگو کرنے کے لئے آسان.

  6. ماڈل دستی مداخلت کے بغیر خود کار طریقے سے اپ ڈیٹ کیا جاتا ہے.

  7. مصنوعات اور ٹائم فریموں میں پیرامیٹر استحکام کی جانچ کرسکتا ہے۔

  8. مشین لرننگ کے ساتھ مزید بہتر بنانے کی صلاحیت.

  9. مجموعی طور پر نئی نقطہ نظر کے ساتھ تلاش کی قدر.

خطرات

تاہم، خطرات یہ ہیں:

  1. فٹنگ کی کارکردگی پیرامیٹر کی ترتیب پر منحصر ہے، اوور فٹنگ کا خطرہ.

  2. منسلک لائنوں تاخیر، مکمل طور پر نقصانات سے بچنے کے لئے نہیں کر سکتے ہیں.

  3. حجم کی تصدیق نہیں، پھنس جانے کا خطرہ ہے.

  4. اعداد و شمار کی ثالثی مستقل الفا کے لئے ایک چیلنج ہے.

  5. محدود بیک ٹیسٹ کی مدت، استحکام کی تصدیق کرنے کی ضرورت ہے.

  6. کثیر مارکیٹ موافقت کو توثیق کی ضرورت ہے.

  7. مقررہ سائز میں متحرک ایڈجسٹمنٹ کی کمی ہے۔

  8. فائدہ/خطر کے تناسب کا سخت جائزہ لینے کی ضرورت ہے۔

بہتری

تجزیہ کی بنیاد پر، بہتری میں شامل ہوسکتا ہے:

  1. مارکیٹ کے نظام میں پیرامیٹرز کی مضبوطی کی جانچ کریں۔

  2. حجم کی تصدیق کے اشارے شامل کریں.

  3. اعلی معیار کے سگنل کے لئے انٹری / آؤٹ پٹ منطق کو بہتر بنائیں.

  4. متحرک پوزیشن سائزنگ ماڈل بنائیں.

  5. نقصانات کو محدود کرنے کے لئے رکاوٹوں کو شامل کریں.

  6. خطرے کے انتظام کی حکمت عملی کو بہتر بنائیں.

  7. رولنگ ونڈو بیک ٹیسٹ کی توثیق.

  8. کثیر مارکیٹ کے استحکام کا اندازہ کریں.

  9. ماڈل کی اصلاح کے لئے مشین لرننگ کا فائدہ اٹھائیں.

نتیجہ

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


/*backtest
start: 2023-08-23 00:00:00
end: 2023-09-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

strategy(title = " Strategy Quadratic Semaphore ",
         shorttitle = "SQS",
         overlay = true,
         precision = 8,
         calc_on_order_fills = true,
         calc_on_every_tick = true,
         backtest_fill_limits_assumption = 0,
         default_qty_type = strategy.fixed,
         default_qty_value = 2,
         initial_capital = 10000,
         pyramiding=5,
         currency = currency.USD,
         linktoseries = true)

//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

backTestSectionFrom = input(title = "═══════════════ From ═══════════════", defval = true, type = input.bool)

FromMonth         = input(defval = 1, title = "Month", minval = 1)
FromDay           = input(defval = 1, title = "Day", minval = 1)
FromYear          = input(defval = 2019, title = "Year", minval = 2014)

backTestSectionTo = input(title = "════════════════ To ════════════════", defval = true, type = input.bool)
ToMonth           = input(defval = 31, title = "Month", minval = 1)
ToDay             = input(defval = 12, title = "Day", minval = 1)
ToYear            = input(defval = 9999, title = "Year", minval = 2014)

Config            = input(title = "══════════════ Config ══════════════", defval = true, type = input.bool)
p = input(6)
length = input(30)
//
backTestPeriod() => (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))
//
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

x1 = bar_index
x2 = sqrt(x1)
y = high
//
S11 = sum(x2,length) - sqrt(sum(x1,length)) / length  
S12 = sum(x1*x2,length) - (sum(x1,length) * sum(x2,length)) / length  
S22 = sum(sqrt(x2),length) - sqrt(sum(x2,length)) / length            
Sy1 = sum (y*x1,length) - (sum(y,length) * sum(x1,length)) / length   
Sy2 = sum (y*x2,length) - (sum(y,length) * sum(x2,length)) / length   
//
max1 = sma(x1,length) 
max2 = sma(x2,length)
may = sma(y,length)
b2 = ((Sy1 * S22) - (Sy2*S12))/(S22*S11 - sqrt(S12))
b3 = ((Sy2 * S11) - (Sy1 * S12))/(S22 * S11 - sqrt(S12))
b1 = may - b2*max1 - b3*max2
qr = b1 + b2*x1 + b3*x2
//
yl = low
//
Sy1l = sum(yl*x1,length) - (sum(yl,length) * sum(x1,length)) / length  
Sy2l = sum(yl*x2,length) - (sum(yl,length) * sum(x2,length)) / length  
//
mayl = sma(yl,length)
b2l = ((Sy1l * S22) - (Sy2l*S12))/(S22*S11 - sqrt(S12))
b3l = ((Sy2l * S11) - (Sy1l * S12))/(S22 * S11 - sqrt(S12))
b1l = mayl - b2l*max1 - b3l*max2
qrl = b1l + b2l*x1 + b3l*x2
//
period = round(p/2)+1
hh = qr[period]
ll = qrl[period]
countH = 0
countL = 0
buy=0
sell=0
//
for i = 1 to period-1
    if qr[i]<hh
        countH:=countH+1
    if qrl[i]>ll
        countL:=countL+1

for i = period+1 to p+1
    if qr[i]<hh
        countH:=countH+1
    if qrl[i]>ll
        countL:=countL+1

if countH==p
    pivotH = high[period]
    buy := 1
    
if countL==p
    pivotL = low[period]
    sell := 1
//    
plotshape(buy == 1 , text='💣', style=shape.arrowup, location=location.belowbar, color=#32CD32, textcolor=color.white, offset=0, transp=0,size=size.auto)
plotshape(sell == 1 , text='🔨', style=shape.arrowdown, location=location.abovebar, color=#FF0000, textcolor=color.white, offset=0, transp=0,size=size.auto)
//

if (backTestPeriod())
    strategy.entry("long", true, 1, when = buy == 1)
    strategy.entry("short", false, 1, when = sell == 1) 


مزید