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