
یہ ایک خود کار طریقے سے رجحانات کی نگرانی کی حکمت عملی ہے جو اتار چڑھاؤ کی شرح اور ولیمز فی صد رینج کے ساتھ مل کر ہے۔ اس حکمت عملی میں قیمتوں میں اتار چڑھاؤ کی حد اور اپنی مرضی کے مطابق کیلکولیٹر کے حساب سے رجحانات کے فیصلے کی حساسیت کو ایڈجسٹ کیا جاتا ہے ، تاکہ مختلف مارکیٹ کے حالات میں بہتر موافقت ہو۔ حکمت عملی کا بنیادی مقصد قیمتوں میں اتار چڑھاؤ کی وسعت کو دیکھ کر ولیمز اشارے کے پیرامیٹرز کو متحرک طور پر ایڈجسٹ کرنا ہے تاکہ مارکیٹ کے رجحانات میں تبدیلی کے نقطہ کو زیادہ درست طریقے سے پکڑ سکے۔
حکمت عملی سب سے پہلے ایک دورانیے میں قیمتوں کے اتار چڑھاو کی حد (Range) اور اس کی چلتی اوسط (AvgRange) کا حساب لگاتی ہے۔ قیمتوں میں حقیقی وقت میں ہونے والی تبدیلیوں اور اوسط اتار چڑھاؤ کی حد کے مابین تعلقات کا موازنہ کرکے ، دو کیلکولیٹر (TrueCount اور TrueCount2) قائم کیے گئے ہیں تاکہ نمایاں اتار چڑھاؤ کی فریکوئنسی کو ریکارڈ کیا جاسکے۔ یہ کیلکولیٹر ولیم انڈیکس کے حساب کتاب پیرامیٹرز کو متحرک طور پر ایڈجسٹ کرنے کے لئے استعمال کیے جاتے ہیں ، تاکہ حکمت عملی مارکیٹ میں اتار چڑھاؤ کی حالت کے مطابق خود بخود اس کی حساسیت کو ایڈجسٹ کرسکے۔ جب ایڈجسٹ ولیم انڈیکس کی قیمتوں میں ایڈجسٹمنٹ کے بعد پیش گوئی کی قیمتوں سے تجاوز ہوجاتا ہے تو حکمت عملی اس کے مطابق خرید یا فروخت کا اشارہ پیدا کرتی ہے۔
یہ ایک جدید حکمت عملی ہے جس میں اتار چڑھاؤ کے تجزیہ اور رجحانات کی پیروی کا امتزاج کیا گیا ہے ، جس میں خود سے موافقت کے طریقہ کار کے ذریعہ حکمت عملی کی استحکام اور وشوسنییتا میں اضافہ کیا گیا ہے۔ اگرچہ اس میں کچھ موروثی خطرات موجود ہیں ، لیکن معقول پیرامیٹرز کی ترتیب اور اصلاح کی سمت کے نفاذ کے ذریعہ ، اس حکمت عملی کو مختلف مارکیٹ کے ماحول میں مستحکم کارکردگی برقرار رکھنے کا امکان ہے۔ حکمت عملی کا فریم ورک ڈیزائن مزید توسیع اور اصلاح کی اجازت دیتا ہے ، اور اس میں اچھی ترقی کی صلاحیت ہے۔
/*backtest
start: 2024-10-28 00:00:00
end: 2024-11-27 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("ASCTrend", shorttitle="ASCTrend", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
eternalfg = input(false, title="eternal 確定")
eternal = eternalfg ? 1 : 0
ASClength = input.int(title="ASC Length", minval=4, defval=10)
RISK = input.int(title="RISK", minval=0, defval=3)
// Custom sum function
customSum(source, length) =>
sum = 0.0
for i = 0 to length - 1
sum := sum + source[i]
sum
x1 = 67 + RISK
x2 = 33 - RISK
Range = ta.highest(ASClength) - ta.lowest(ASClength)
AvgRange = ta.sma(Range, ASClength)
CountFg = math.abs(open - close) >= AvgRange * 2.0 ? 1 : 0
TrueCount = customSum(CountFg, ASClength)
CountFg2 = math.abs(close[3] - close) >= AvgRange * 4.6 ? 1 : 0
TrueCount2 = customSum(CountFg2, ASClength - 3)
wpr3RR = ta.wpr(3 + RISK + RISK)
wpr3 = ta.wpr(3)
wpr4 = ta.wpr(4)
WprAbs = 100 + (TrueCount2 > 0 ? wpr4 : TrueCount > 0 ? wpr3 : wpr3RR)
ASC_Trend = 0
ASC_Trend := WprAbs[eternal] < x2[eternal] ? -1 : WprAbs[eternal] > x1[eternal] ? 1 : ASC_Trend[1]
if (ta.crossover(ASC_Trend, 0))
strategy.entry("Long", strategy.long)
if (ta.crossunder(ASC_Trend, 0))
strategy.entry("Short", strategy.short)
plotshape(ta.crossover(ASC_Trend, 0), location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, text="B", textcolor=color.white)
plotshape(ta.crossunder(ASC_Trend, 0), location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, text="S", textcolor=color.white)
alertcondition(ta.crossover(ASC_Trend, 0), title="ASC_Trend UP", message="ASC_Trend UP")
alertcondition(ta.crossunder(ASC_Trend, 0), title="ASC_Trend Down", message="ASC_Trend Down")