
یہ حکمت عملی کاؤفمین کے خود کار طریقے سے چلنے والی اوسط ((KAMA) پر مبنی ہے ، جو مارکیٹ کے رجحانات کو خود بخود ٹریک کرنے کے لئے متحرک طور پر تجارت کی پوزیشن کو ایڈجسٹ کرتی ہے۔ حکمت عملی کی اہم خصوصیات میں شامل ہیں:
ان افعال کے استعمال سے ، حکمت عملی رجحانات کے اضافی فوائد حاصل کرنے کی کوشش کرتی ہے ، جبکہ خطرے کو کنٹرول کرتی ہے۔
یہ حکمت عملی کاوفمین کے متحرک اوسط اشارے کے مطابق کام کرتی ہے۔ KAMA قیمت کی نقل و حرکت اور اتار چڑھاؤ کے تناسب کا حساب کتاب کرکے اوسط کے وزن اور ہموار کو متحرک طور پر ایڈجسٹ کرتا ہے ، جس سے قیمت میں تبدیلیوں کا زیادہ تیزی سے جواب ملتا ہے۔
جب KAMA پر نیچے جانے والی اسٹاپ لائن کو عبور کیا جاتا ہے تو ، اس کا مطلب ہے کہ رجحان الٹ جاتا ہے ، جس سے خریدنے کا اشارہ ملتا ہے۔ جب KAMA کے نیچے جانے والی اسٹاپ لائن کو عبور کیا جاتا ہے تو ، اس کا مطلب ہے کہ رجحان الٹ جاتا ہے ، جس سے فروخت کا اشارہ ملتا ہے۔ پوزیشن میں داخل ہونے کے بعد ، حکمت عملی اے ٹی آر کے مطابق ایک متحرک اسٹاپ فاصلہ کا حساب لگاتی ہے ، اور اسٹاپ لائن قائم کرتی ہے۔ جب KAMA فائدہ مند سمت میں منتقل ہوتا ہے تو ، اسٹاپ لائن بھی اس کے ساتھ ساتھ ایڈجسٹ ہوجاتی ہے ، اور اسٹاپ لائن کو زیادہ فائدہ مند پوزیشن پر منتقل کرتی ہے ، تاکہ زیادہ منافع کو مقفل کیا جاسکے۔
اس طرح ، حکمت عملی رجحانات کی پیروی کر سکتی ہے ، آہستہ آہستہ اسٹاپ لائن کو منتقل کرتی ہے ، جب تک کہ اسٹاپ لائن کو متحرک نہیں کیا جاتا ہے یا ریورس سگنل کو متحرک نہیں کیا جاتا ہے۔
روایتی منتقل اوسط حکمت عملی کے مقابلے میں اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:
مجموعی طور پر، حکمت عملی تیز رفتار، قابل کنٹرول اور رجحانات کی پیروی کرنے والی حکمت عملی کی ایک قسم ہے.
اس حکمت عملی کے کچھ خطرات بھی ہیں:
ان خطرات کے لئے ، آپ کو روکنے کے فاصلے کو بہتر بنانے ، زیادہ سے زیادہ روکنے کا فیصد طے کرنے ، وغیرہ کے طریقوں سے کنٹرول کیا جاسکتا ہے۔ آپ کو غلط تجارت سے بچنے کے لئے تصدیق کے طور پر دوسرے اشارے کے ساتھ مل کر بھی استعمال کیا جاسکتا ہے۔
اس حکمت عملی میں مندرجہ ذیل نکات کو بہتر بنایا جا سکتا ہے:
مثال کے طور پر ، ایک ٹیسٹ کر سکتا ہے کہ MACD کو معاون توثیقی اشارے کے طور پر شامل کیا جائے ، اور KAMA گولڈ فورک کے ساتھ ساتھ MACDDif کو بھی مثبت اور بڑھا دیا جائے۔ اس سے کچھ غلط سگنل فلٹر ہوسکتے ہیں اور پوزیشنوں کو غیر ضروری طور پر کھولنے سے بچ سکتے ہیں۔
اس حکمت عملی کا مجموعی طور پر کام آسانی سے چلتا ہے ، متحرک اسٹاپ نقصانات کا استعمال کرتے ہوئے رجحانات کی پیروی کرتا ہے ، رجحانات کے منافع کو زیادہ سے زیادہ حد تک مقفل کرتا ہے۔ کاما اشارے کی موافقت بھی حکمت عملی کو مارکیٹ میں تیزی سے تبدیلیوں کے ساتھ رکھنے کی اجازت دیتی ہے۔ کچھ اصلاحات کے ساتھ ، حکمت عملی ایک موثر رجحانات کی پیروی کرنے والا پروگرام بن سکتی ہے ، جو درمیانی لمبی لائن کے لئے موزوں ہے۔
/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("THMA - Bharath Vc Improved", overlay=true, process_orders_on_close=true)
// Function to calculate pips with higher precision
getPips(price) =>
difc = syminfo.mintick
hlpips = price / difc
math.round(hlpips / syminfo.mintick) * syminfo.mintick
// Inputs
buyMess = input.string("Buy Message","Buy Alert Message")
sellMess = input.string("Sell Message","Sell Alert Message")
buyExitMessage = input.string("Buy Exit","Buy Exit Alert Message" )
sellExitMessage = input.string("Sell Exit","Sell Exit Alert Message" )
tmf = input.timeframe("", "Timeframe")
length = input(title='Length', defval=14)
fastLength = input(title='Fast EMA Length', defval=2)
slowLength = input(title='Slow EMA Length', defval=30)
src = input(title='Source', defval=close)
highlight = input(title='Highlight ?', defval=true)
awaitBarConfirmation = input(title='Await Bar Confirmation ?', defval=true)
// Function to calculate the TMA
gettma() =>
mom = math.abs(ta.change(src, length))
volatility = math.sum(math.abs(ta.change(src)), length)
er = volatility != 0 ? mom / volatility : 0
fastAlpha = 2 / (fastLength + 1)
slowAlpha = 2 / (slowLength + 1)
alpha = math.pow(er * (fastAlpha - slowAlpha) + slowAlpha, 2)
kama = 0.0
kama := alpha * src + (1 - alpha) * nz(kama[1], src)
await = awaitBarConfirmation ? barstate.isconfirmed : true
maColor = highlight ? kama > kama[1] and await ? color.green : color.red : color.new(color.purple, 0)
thma = kama
hma_dif = (thma - thma[2])/2
colour = hma_dif > 0 ? color.green : color.red
isGreen = hma_dif > 0
[thma, isGreen, colour]
// Dynamic pip size based on ATR to adapt better to smaller timeframes
pips = ta.atr(14) * 0.1
// Main execution logic
var float psl = na
var int lastSignal = 0
var float lastPsl = na
[thma, isGreen, colour] = request.security(syminfo.tickerid, tmf, gettma(), gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off)
plot(thma, title='KAMA', linewidth=2, color=colour)
if ta.crossover(thma, psl) and strategy.position_size < 0
strategy.exit("Sell Exit", stop=thma, alert_message=sellExitMessage)
if ta.crossunder(thma, psl) and strategy.position_size > 0
strategy.exit("Buy Exit", stop=thma, alert_message=buyExitMessage)
if isGreen and strategy.position_size <= 0
if na(psl)
psl := close + getPips(pips)
strategy.entry("Buy", strategy.long, alert_message=buyMess)
lastSignal := 1
if not isGreen and strategy.position_size >= 0
if na(psl)
psl := close - getPips(pips)
strategy.entry("Sell", strategy.short, alert_message=sellMess)
lastSignal := -1
if (thma >= lastPsl or na(lastPsl)) and thma > psl
psl := psl + getPips(pips)
lastPsl := psl
if (thma <= lastPsl or na(lastPsl)) and thma < psl
psl := psl - getPips(pips)
lastPsl := psl
plot(psl, title="Position Stop Level", style=plot.style_stepline, color=color.blue)
plot(lastPsl, title="Last Position Stop Level", style=plot.style_cross, color=color.red)