اس حکمت عملی کا استعمال کرتے ہوئے کیمفمن ایڈجسٹمنٹ منتقل اوسط ((KAMA) کا فیصلہ کرنے کے لئے رجحان کی سمت، پکڑنے کے لئے طویل اور درمیانی لائن رجحانات پر غالب. جب KAMA لائن بڑھتی ہے تو زیادہ کام کرتے ہیں، جب KAMA لائن کم ہوتی ہے تو خالی. اس حکمت عملی کو متحرک اوسط کی رجحانات کی نگرانی کی خصوصیات اور کیمفمن ایڈجسٹمنٹ اوسط کی متحرک ایڈجسٹمنٹ کی خصوصیات کو یکجا کیا گیا ہے، جس کا مقصد ٹریڈنگ سگنل کی معیار کو بہتر بنانا ہے.
اس حکمت عملی کا بنیادی اشارہ ہے کہ کامف مین خود بخود چلنے والی اوسط ((KAMA) ۔ KAMA متحرک طور پر مارکیٹ میں اتار چڑھاؤ کی مقدار کے مطابق اپنے وزنی عنصر کو ایڈجسٹ کرتا ہے ، اس طرح منحنی خطوط کی حساسیت میں اضافہ ہوتا ہے۔ خاص طور پر ، جب مارکیٹ میں اتار چڑھاؤ بڑھ جاتا ہے تو KAMA کی منحنی خطوط زیادہ ہموار ہوجاتی ہیں اور جب مارکیٹ میں اتار چڑھاؤ کم ہوتا ہے تو KAMA کی منحنی خطوط زیادہ حساس ہوجاتی ہیں۔ اس طرح کچھ شور کو فلٹر کیا جاسکتا ہے ، جبکہ نئے رجحانات کو بروقت پکڑنے کے لئے بھی۔
حکمت عملی پہلے KAMA کی قیمت کا حساب لگاتی ہے۔ اس کے بعد KAMA لائن کی کھلی حالت کا فیصلہ کیا جاتا ہے۔ جب بند قیمت KAMA لائن کو عبور کرتی ہے تو خریدنے کا اشارہ پیدا ہوتا ہے۔ جب بند قیمت KAMA لائن کو عبور کرتی ہے تو فروخت کا اشارہ پیدا ہوتا ہے۔ ان تجارتی اشاروں کے مطابق پوزیشن کھولنے اور زیادہ خالی کرنے کے لئے۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ اس کا استعمال رجحانات کا تعین کرنے کے لئے کیا جاتا ہے۔ کاما اشارے میں خود ہی ایک مضبوط رجحانات کی پیروی کرنے کی صلاحیت ہے ، جو مارکیٹ کی صورتحال کے مطابق پیرامیٹرز کو متحرک طور پر ایڈجسٹ کرسکتا ہے ، جس سے زیادہ قابل اعتماد تجارتی سگنل پیدا ہوتا ہے۔ سادہ منتقل اوسط اور اشاریہ منتقل اوسط کے مقابلے میں ، کاما اشارے رجحانات کی بہتر شناخت کرتے ہیں ، جعلی سگنل کو کم کرتے ہیں۔
اس کے علاوہ ، اس حکمت عملی میں صرف KAMA کی خالی حالت کا استعمال کیا جاتا ہے تاکہ رجحان کی سمت کا فیصلہ کیا جاسکے۔ اس میں اضافی فلٹرنگ کی شرائط طے نہیں کی گئیں ، جس سے حکمت عملی کی منطق کو آسان بنایا گیا ہے ، اور اس سے کم پیرامیٹرز کو بھی کم کیا گیا ہے ، جس سے زیادہ سے زیادہ اصلاح کا خطرہ کم ہوجاتا ہے ، جو پیرامیٹرز کی استحکام اور کراس مارکیٹ موافقت کے لئے موزوں ہے۔
اس حکمت عملی کا بنیادی خطرہ یہ ہے کہ KAMA خود ہی ایک پیچھے رہ جانے والا اشارے ہے ، اور جب تجارتی سگنل پیدا ہوتا ہے تو مارکیٹ کا رجحان الٹ سکتا ہے۔ اس سے اسٹاپ نقصان کا خطرہ پیدا ہوتا ہے۔ اس کے علاوہ ، KAMA منحنی خطوط میں قلیل مدتی ہلچل بھی ہوسکتی ہے ، جس سے کچھ بار بار غلط سگنل پیدا ہوسکتے ہیں۔
خطرے کو کم کرنے کے لئے ، تجارت کے اشارے کی تصدیق کے لئے دوسرے اشارے کے ساتھ مل کر غور کیا جاسکتا ہے ، جیسے اتار چڑھاؤ کی شرح اشارے ، حجم اشارے وغیرہ۔ پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کیا جاسکتا ہے ، شناخت کاما وکر کو زیادہ ہموار کرتی ہے۔
اس حکمت عملی کو بہتر بنانے کے لیے بہت کچھ کیا جا سکتا ہے۔ اس میں مندرجہ ذیل نکات پر توجہ دی جا سکتی ہے۔
دیگر اشارے کے ساتھ مل کر سگنل فلٹرنگ ، جیسے ایم اے سی ڈی ، کمپن اشارے وغیرہ ، سگنل کے معیار کو بہتر بنانا
اضافی سٹاپ نقصان کی حکمت عملی، ایک ہی نقصان کو کنٹرول کرنے کے لئے منتقل سٹاپ یا بیلنس منحنی سٹاپ کا استعمال کرتے ہوئے
رجحانات کو زیادہ مؤثر طریقے سے پکڑنے کے لئے KAMA کو بہتر بنانے کے پیرامیٹرز
ایک سے زیادہ ٹائم سائیکل تجزیہ کو بڑھانا ، جس سے بڑے رجحانات کی سمت کا تعین کرنے کے لئے زیادہ ٹائم سائیکل استعمال کیا جاسکے
مشین لرننگ کے طریقوں کا استعمال کرتے ہوئے پیرامیٹرز کو خود بخود بہتر بنانے کے لئے تاکہ پیرامیٹرز کو مختلف اقسام کے مطابق بنایا جاسکے
اس حکمت عملی کا مجموعی نظریہ واضح ہے ، KAMA اشارے کے ذریعہ رجحان کی سمت کا فیصلہ کیا جاتا ہے ، اس میں رجحان کی پیروی کرنے کی مضبوط صلاحیت ، منطق کی سادگی اور کم پیرامیٹرز جیسے فوائد ہیں۔ لیکن رجحان کی تبدیلی کی تاخیر سے شناخت کا خطرہ بھی موجود ہے۔ اس حکمت عملی کو بہتر بنانے کے لئے متعدد طریقوں سے اصلاح کی جاسکتی ہے ، تاکہ اس کا اثر بہتر اور زیادہ قابل اطلاق ہو۔
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2019
//@version=3
strategy(title = "Noro's KAMA Strategy", shorttitle="KAMA str", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
length = input(3, minval = 1)
fast = input(2, minval = 1)
slow = input(30, minval = 1)
src = input(title = "Source", defval = close)
type = input(defval = "Trend", options = ["Trend", "Crossing"], title = "Type")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//KAMA
volatility = sum(abs(src-src[1]), length)
change = abs(src[1]-src[length])
er = iff(volatility != 0, change/volatility, 0)
fastSC = 2/(fast+1)
slowSC = 2/(slow+1)
sc = pow((er*(fastSC-slowSC))+slowSC, 2)
bid = hl2
kama = 0.0
kama := nz(kama[1])+(sc*(bid-nz(kama[1])))
plot(kama, color = black, title = "KAMA", trackprice = false, style = line, linewidth = 3)
//Signals
up = false
dn = false
up := (type == "Crossing" and kama > kama[1]) or (type == "Trend" and close > kama)
dn := (type == "Crossing" and kama < kama[1]) or (type == "Trend" and close < kama)
//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if up
strategy.entry("L", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if dn
strategy.entry("S", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))