
یہ حکمت عملی اوسط حقیقی رینج ((ATR) اشارے اور اوسط سمت اشارے ((ADX) پر مبنی ایک موافقت پذیر قیمت چینل حکمت عملی ہے۔ اس کا مقصد قیمتوں کی نقل و حرکت میں بازار اور رجحانات کی شناخت کرنا ہے اور اس کے مطابق تجارت کرنا ہے۔
لمبائی کی جڑ K لائن پر ATR کا حساب کرتے ہوئے حالیہ لمبائی کی جڑ K لائن کی اعلی ترین قیمت ((HH) اور کم ترین قیمت ((LL) کا حساب لگائیں۔
قیمتوں میں اضافے اور کمی کے مطابق +DI اور -DI کا حساب لگائیں ، پھر ADX کا حساب لگائیں
اگر ADX <25 ہے تو ، اس کو بازار کی صفائی کے طور پر سمجھا جائے گا۔ اس وقت اگر قیمت کی بندش کی قیمت قیمت کے چینل کی اوپری حد سے زیادہ ہے تو HH - ATR ضرب*اے ٹی آر) ، زیادہ کام کریں؛ اگر بندش قیمت قیمت چینل کی نچلی حد سے نیچے ہے ((LL + ATR ضرب*اے ٹی آر) ۔
اگر ADX> = 25 اور + DI> -DI ہے تو ، اس کا فیصلہ بیل مارکیٹ کے طور پر کیا جاتا ہے۔ اس وقت ، اگر اختتامی قیمت قیمت کے راستے کی حد سے زیادہ ہے تو ، زیادہ کام کریں۔
اگر ADX> = 25 اور + DI <-DI ہے تو ، اسے خالی سر مارکیٹ سمجھا جاتا ہے۔ اس وقت ، اگر قیمت کی بندش کی قیمت قیمت کے نیچے کی حد سے کم ہے تو ، خالی کریں۔
جب آپ کسی پوزیشن میں داخل ہوجاتے ہیں ، اور اگر آپ exit_length جڑ K لائن سے تجاوز کرتے ہیں تو آپ کو روکنے کی ضرورت نہیں ہوتی ہے ، تو آپ کو لازمی طور پر کھلنے والی پوزیشن کو روکنا ہوگا۔
اس حکمت عملی کو مارکیٹ کے ماحول کے مطابق خود بخود ڈھال لیا جاسکتا ہے۔ مارکیٹ کو مرتب کرنے کے لئے قیمتوں کے راستے کی حکمت عملی کا استعمال کریں ، اور رجحان کے بازار میں رجحان کی سمت پر تجارت کریں۔
اے ٹی آر اور اے ڈی ایکس اشارے کا استعمال حکمت عملی کی موافقت کو یقینی بناتا ہے۔ اے ٹی آر کو قیمت کے چینل کی چوڑائی کو ایڈجسٹ کرنے کے لئے استعمال کیا جاتا ہے ، جبکہ اے ڈی ایکس مارکیٹ کے رجحانات کا اندازہ لگانے کے لئے استعمال ہوتا ہے۔
اسٹریٹجک استحکام کو روکنے کے لئے نقصانات کو روکنے کے لئے.
ADX کے فیصلے سے غلط سگنل پیدا ہونے کا امکان زیادہ ہے۔
اے ٹی آر اور اے ڈی ایکس اشارے کی غلط ترتیب سے حکمت عملی کی ناکامی کا سبب بن سکتا ہے۔
تبدیلیوں سے بچنے کے لئے ناکامی کا خطرہ۔
اے ٹی آر اور اے ڈی ایکس اشارے کے پیرامیٹرز کو بہتر بنانے کے ل.
نقصان کے خطرے کو کم کرنے کے لئے اسٹاپ لائن میں اضافہ کریں۔
اضافی فلٹر کی شرائط فلٹر غلط سگنل
خود لچکدار قیمت چینل حکمت عملی متعدد اشارے اور میکانزم کا جامع استعمال ، مختلف حالات کے حالات میں مختلف حکمت عملی اپنانے کے لئے ، اس میں کچھ خودکشی اور استحکام ہے۔ لیکن اشارے کی ترتیب اور پیرامیٹرز کے انتخاب کی حدود کی وجہ سے ، اس حکمت عملی کو غلط فہمی کا خطرہ بھی درپیش ہے۔ مستقبل میں اصلاح کی سمت پیرامیٹرز کی اصلاح ، خطرے کے کنٹرول وغیرہ میں ہے۔
/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Adaptive Price Channel Strategy", overlay=true)
length = input(20, title="Length")
exit_length = input(10, title="Exit After X Periods")
atr_multiplier = input(3.2, title="ATR Multiplier")
startDate = input(defval = timestamp("2019-01-15T08:15:15+00:00"), title = "Start Date")
endDate = input(defval = timestamp("2033-04-01T08:15:00+00:00"), title = "End Date")
hh = ta.highest(high, length)
ll = ta.lowest(low, length)
atr = ta.atr(length)
// calculate +DI and -DI
upMove = high - high[1]
downMove = low[1] - low
plusDM = na(upMove[1]) ? na : (upMove > downMove and upMove > 0 ? upMove : 0)
minusDM = na(downMove[1]) ? na : (downMove > upMove and downMove > 0 ? downMove : 0)
plusDI = ta.rma(plusDM, length) / atr * 100
minusDI = ta.rma(minusDM, length) / atr * 100
// calculate ADX
dx = math.abs(plusDI - minusDI) / (plusDI + minusDI) * 100
adx = ta.rma(dx, length)
var int barSinceEntry = na
if (not na(close[length]) )
if (adx < 25) // Sideways market
if (close > hh - atr_multiplier * atr)
strategy.entry("PChLE", strategy.long, comment="PChLE")
barSinceEntry := 0
else if (close < ll + atr_multiplier * atr)
strategy.entry("PChSE", strategy.short, comment="PChSE")
barSinceEntry := 0
else if (adx >= 25 and plusDI > minusDI) // Bullish market
if (close > hh - atr_multiplier * atr)
strategy.entry("PChLE", strategy.long, comment="PChLE")
barSinceEntry := 0
else if (adx >= 25 and plusDI < minusDI) // Bearish market
if (close < ll + atr_multiplier * atr)
strategy.entry("PChSE", strategy.short, comment="PChSE")
barSinceEntry := 0
if (na(barSinceEntry))
barSinceEntry := barSinceEntry[1] + 1
else if (barSinceEntry >= exit_length)
strategy.close("PChLE")
strategy.close("PChSE")
barSinceEntry := na
plot(hh, title="Highest High", color=color.green, linewidth=2)
plot(ll, title="Lowest Low", color=color.red, linewidth=2)