ایم زبان میں حکمت عملیوں کو کیسے لاگو کیا جائے
پچھلے مضمون میں ، ہم نے ایم زبان ، بنیادی گرائمر ، ماڈل عملدرآمد کا طریقہ ، اور ماڈل کی درجہ بندی کے تعارف کے پہلوؤں سے تجارتی حکمت عملی کو سمجھنے کے مفروضے کی وضاحت کی۔ اس مضمون میں ، ہم عام طور پر استعمال ہونے والی حکمت عملی ماڈیولز اور ٹیکنالوجیز سے ، پچھلے حصے کو جاری رکھیں گے۔ اشارے ، قدم بہ قدم آپ کو قابل عمل انٹرا ڈے مقداری تجارتی حکمت عملی حاصل کرنے میں مدد کرنے کے لئے۔
اس کے بارے میں سوچیں ، آپ لیگو کے ٹکڑوں سے روبوٹ کیسے بناتے ہیں؟ آپ ہمیشہ اوپر سے نیچے یا نیچے سے اوپر تک ، ٹکڑے ٹکڑے کرکے ایک ساتھ نہیں رکھ سکتے ہیں۔ تھوڑا سا عقل مند لوگ جانتے ہیں کہ انہیں اپنے سروں ، بازوؤں ، ٹانگوں ، پنکھوں وغیرہ کو ایک ساتھ رکھنا چاہئے ، اور پھر انہیں ایک مکمل روبوٹ میں جوڑنا چاہئے۔ پروگرام لکھنے کے لئے بھی یہی سچ ہے ، مطلوبہ افعال کو ایک ہی حکمت عملی ماڈیول میں لکھنا ، اور پھر ان انفرادی حکمت عملی ماڈیول کو ایک مکمل تجارتی حکمت عملی میں جوڑنا۔ ذیل میں میں کچھ عام حکمت عملی ماڈیول درج کروں گا:
مرحلے میں اضافہ موجودہ K لائن کی اختتامی قیمت کا فیصد پچھلے N ادوار کے اختتامی قیمت کے فرق کے مقابلے میں حساب کتاب کر رہا ہے۔ مثال کے طور پر: تازہ ترین 10 K لائن مرحلے میں اضافے کا حساب کتاب ، لکھا جاسکتا ہے:
CLOSE_0:=CLOSE; //get the current K-line's closing price, and save the results to variable CLOSE_0.
CLOSE_10:=REF(CLOSE,10); //get the pervious 10 K-lines' closing price, and save the results to variable CLOSE_10
(CLOSE_0-CLOSE_10)/CLOSE_10*100;//calculating the percentage of current K line's closing price compare with previous N periods of closing price's difference.
نئی اعلی قیمت کا حساب اس بات سے لگایا جاتا ہے کہ آیا موجودہ K لائن N سائیکل
HHV_10:=HHV(HIGH,10); //Get the highest price of latest 10 K-lines, which includes the current K-line.
HIGH>REF(HHV_10,1); //Judge whether the current K-line's highest price is greater than pervious K-lines' HHV_10 value.
مثال کے طور پر: اگر موجودہ K لائن کی بندش کی قیمت پچھلی 10 K لائنوں کی بندش کی قیمت سے 1.5 گنا ہے ، جس کا مطلب ہے کہ 10 دن میں ، قیمت میں 50 فیصد اضافہ ہوا ہے۔ اور تجارتی حجم بھی پچھلی 10 K لائنوں کے 5 گنا سے زیادہ بڑھ گیا۔ لکھا جاسکتا ہے:
CLOSE_10:=REF(CLOSE,10); //get the 10th K-line closing price
IS_CLOSE:=CLOSE/CLOSE_10>1.5; //Judging whether the current K Line closing price is 1.5 times greater than the value of CLOSE_10
VOL_MA_10:=MA(VOL,10); //get the latest 10 K-lines' average trading volume
IS_VOL:=VOL>VOL_MA_10*5; //Judging whether the current K-line's trading volume is 5 times greater than the value of VOL_MA_10
IS_CLOSE AND IS_VOL; //Judging whether the condition of IS_CLOSE and IS_VOL are both true.
تنگ جھٹکا مارکیٹ کا مطلب یہ ہے کہ قیمت حالیہ مدت میں ایک خاص حد کے اندر برقرار ہے۔ مثال کے طور پر: اگر 10 سائیکلوں میں سب سے زیادہ قیمت 10 سائیکلوں میں سب سے کم قیمت کو کم کردیتی ہے تو ، موجودہ K- لائن
HHV_10:=HHV(CLOSE,10); //Get the highest price in 10 cycles(including current K-line)
LLV_10:=LLV(CLOSE,10); //Get the lowest price in 10 cycles(including current K-line)
(HHV_10-LLV_10)/CLOSE<0.05; //Judging whether the difference between HHV_10 and LLV_10 divided by current k-line's closing price is less than 0.05.
چلتی اوسط لمبی اور مختصر سمت کی نشاندہی کرتی ہے، K لائن 5,10,20,30,60 چلتی اوسط لائن کی حمایت یا مزاحمت کرتی ہے، چلتی اوسط بیل مارکیٹ یا ریچھ مارکیٹ کی نشاندہی کرتی ہے۔ لکھا جا سکتا ہے:
MA_5:=MA(CLOSE,5); //get the moving average of 5 cycle closing price.
MA_10:=MA(CLOSE,10);//get the moving average of 10 cycle closing price.
MA_20:=MA(CLOSE,20);//get the moving average of 20 cycle closing price.
MA_30:=MA(CLOSE,30);//get the moving average of 30 cycle closing price.
MA_5>MA_10 AND MA_10>MA_20 AND MA_20>MA_30; //determine wether the MA_5 is greater than MA_10, and MA_10 is greater than MA_20, and MA_20 is greater than MA_30.
پچھلی اعلی قیمت اور اس کے مقام کا مقام حاصل کرنے کے لئے، آپ براہ راست FMZ کوانٹ API استعمال کرسکتے ہیں. لکھا جا سکتا ہے:
HHV_20:=HHV(HIGH,20); //get the highest price of 20 cycle(including current K line)
HHVBARS_20:=HHVBARS(HIGH,20); //get the number of cycles from the highest price in 20 cycles to current K line
HHV_60_40:REF(HHV_20,40); //get the highest price between 60 cycles and 40 cycles.
قیمت کا فرق وہ صورت ہے جب دو K لائنوں کی اعلی ترین اور کم ترین قیمتیں منسلک نہیں ہوتی ہیں۔ اس میں دو K لائنیں ہوتی ہیں ، اور قیمت کا فرق مستقبل کی قیمت کی نقل و حرکت میں معاونت اور دباؤ کے نکات کی حوالہ قیمت ہے۔ جب قیمت کا فرق ہوتا ہے تو ، یہ فرض کیا جاسکتا ہے کہ اصل سمت کے ساتھ رجحان کے ساتھ ایک تیز رفتار شروع ہوگئی ہے۔ یہ لکھا جاسکتا ہے:
HHV_1:=REF(H,1); //get the pervious K line's highest price
LLV_1:=REF(L,1); //get the pervious K line's lowest price
HH:=L>HHV_1; //judging wether the current K line's lowest price is greater than pervious K line's highest price (jump up)
LL:=H<LLV_1; //judging wether the current K line's highest price is greater than pervious K line's lowest price (jump down)
HHH:=L/REF(H,1)>1.001; //adding additional condition, the bigger of the price gap, the stronger the signal (jump up)
LLL:=H/REF(L.1)<0.999; //adding additional condition, the bigger of the price gap, the stronger the signal (jump down)
JUMP_UP:HH AND HHH; //judging the overall condition, whether it is a jump up
JUMP_DOWN:LL AND LLL; //judging the overall condition, whether it is a jump down
چلتی اوسط
اعداد و شمار کے نقطہ نظر سے ، چلتی اوسط روزانہ کی قیمت کا ریاضیاتی اوسط ہے ، جو ایک رجحان قیمت کا راستہ ہے۔ چلتی اوسط نظام ایک عام تکنیکی ٹول ہے جو زیادہ تر تجزیہ کار استعمال کرتے ہیں۔ تکنیکی نقطہ نظر سے ، یہ ایک ایسا عنصر ہے جو تکنیکی تجزیہ کاروں کی نفسیاتی قیمت کو متاثر کرتا ہے۔ سوچنے کی تجارت کا فیصلہ سازی کا عنصر تکنیکی تجزیہ کاروں کے لئے ایک اچھا حوالہ ٹول ہے۔ ایف ایم زیڈ کوانٹ ٹول بہت ساری مختلف اقسام کے چلتے ہوئے اوسط کی حمایت کرتا ہے ، جیسا کہ ذیل میں دکھایا گیا ہے:
MA_DEMO:MA(CLOSE,5); // get the moving average of 5 cycle
MA_DEMO:EMA(CLOSE,15); // get the smooth moving average of 15 cycle
MA_DEMO:EMA2(CLOSE,10);// get the linear weighted moving average of 10 cycle
MA_DEMO:EMAWH(CLOSE,50); // get the exponentially weighted moving average of 50 cycle
MA_DEMO:DMA(CLOSE,100); // get the dynamic moving average of 100 cycle
MA_DEMO:SMA(CLOSE,10,3); // get the fixed weight of 3 moving average of closing price in 10 cycle
MA_DEMO:ADMA(CLOSE,9,2,30); // get the fast-line 2 and slow-line 30 Kaufman moving average of closing price in 9 cycle.
بولنگر بینڈ بھی شماریاتی اصول پر مبنی ہے۔ درمیانی ریل کا حساب N دن کی حرکت پذیر اوسط کے مطابق کیا جاتا ہے ، اور اوپری اور نچلی ریلوں کا حساب معیاری انحراف کے مطابق کیا جاتا ہے۔ جب BOLL چینل وسیع سے تنگ تک تبدیل ہونا شروع ہوتا ہے ، جس کا مطلب ہے کہ قیمت آہستہ آہستہ اوسط تک واپس آجائے گی۔ جب BOLL چینل تنگ سے وسیع تک تبدیل ہوتا ہے ، اس کا مطلب یہ ہے کہ مارکیٹ میں تبدیلی آنا شروع ہوجائے گی۔ اگر قیمت اوپر کی ریل کے پار ہے تو اس کا مطلب ہے کہ خریدار کی طاقت میں اضافہ ہوا ہے۔ اگر قیمت نیچے کی ریل کو عبور کرتی ہے تو اس سے یہ ظاہر ہوتا ہے کہ فروخت کی طاقت میں اضافہ ہوا ہے۔
تمام تکنیکی اشارے کے درمیان بولنگر بینڈس حساب کتاب کا طریقہ کار سب سے زیادہ پیچیدہ ہے، جو اعداد و شمار میں معیاری انحراف کا تصور متعارف کراتا ہے، جس میں درمیانی پٹری (ایم بی ) ، اوپری پٹری (یو پی) اور نچلی پٹری (ڈی این) شامل ہیں۔ خوش قسمتی سے، آپ کو حساب کتاب کی تفصیلات جاننے کی ضرورت نہیں ہے، آپ اسے براہ راست ایف ایم زیڈ کوانٹ پلیٹ فارم پر مندرجہ ذیل طور پر استعمال کرسکتے ہیں:
MID:MA(CLOSE,100); //calculating moving average of 100 cycle, call it Bollinger Bands middle trajectory
TMP2:=STD(CLOSE,100); //calculating standard deviation of closing price of 100 cycle.
TOP:MID+2*TMP2; //calculating middle trajectory plus 2 times of standard deviation, call it upper trajectory
BOTTOM:MID-2*TMP2; //calculating middle trajectory plus 2 times of standard deviation, call it lower trajectory
ایم اے سی ڈی اشارے میں تیز (قلیل مدتی) اور سست (طویل مدتی) حرکت پذیر اوسط اور ان کے مجموعہ اور علیحدگی کا استعمال کرتے ہوئے ایک ڈبل ہموار آپریشن ہے۔ حرکت پذیر اوسط کے اصول کے مطابق تیار کردہ ایم اے سی ڈی اس نقص کو دور کرتا ہے کہ حرکت پذیر اوسط اکثر غلط سگنل خارج کرتا ہے ، اور اس کے ساتھ ساتھ دوسرے اچھے پہلو کا اثر بھی برقرار رکھتا ہے۔ لہذا ، ایم اے سی ڈی اشارے میں حرکت پذیر اوسط کا رجحان اور استحکام ہے۔ اس کا استعمال اسٹاک کی خریداری اور فروخت کے وقت کا مطالعہ کرنے اور اسٹاک کی قیمت میں تبدیلی کی پیش گوئی کرنے کے لئے کیا گیا تھا۔ آپ اسے مندرجہ ذیل استعمال کرسکتے ہیں:
DIFF:EMA(CLOSE,10)-EMA(CLOSE,50); //First calculating the difference between short-term moving average and long-term moving average.
DEA:EMA(DIFF,10); //Then calculating average of the difference.
مندرجہ بالا مقداری تجارتی حکمت عملیوں کی ترقی میں عام طور پر استعمال ہونے والا حکمت عملی ماڈیول ہے۔ اس کے علاوہ ، اس سے کہیں زیادہ ہیں۔ مندرجہ بالا ماڈیول مثالوں کے ذریعہ ، آپ کئی تجارتی ماڈیول بھی نافذ کرسکتے ہیں جو آپ ذہنی تجارت میں اکثر استعمال کرتے ہیں۔ طریقے ایک جیسے ہیں۔ اگلا ، ہم نے قابل عمل انٹرا ڈے ٹریڈنگ حکمت عملی لکھنا شروع کی۔
فاریکس اسپاٹ مارکیٹ میں ، ایک مشہور حکمت عملی ہے جسے HANS123 کہا جاتا ہے۔ اس کا منطق بنیادی طور پر یہ فیصلہ کرنا ہے کہ آیا مارکیٹ کھولنے کے بعد K لائنوں کی تعداد کی سب سے زیادہ یا سب سے کم قیمت سے قیمت ٹوٹ جاتی ہے۔
کھولنے کے بعد 30 منٹ کے بعد مارکیٹ میں داخل ہونے کے لئے تیار؛
اوپری ریل = کھولنے کے بعد 30 منٹ کی اونچائی؛
نچلی ریل = کھولنے کے بعد 30 منٹ کم؛
جب قیمت اوپری حد سے تجاوز کرتی ہے تو ، خریدیں اور پوزیشن کھولیں۔
جب قیمت نچلی ریل سے نیچے آجاتی ہے تو بیچنے والا پوزیشن کھولتا ہے۔
دن کے اندر تجارت کی حکمت عملی، بندش سے پہلے بندش؛
// Data Calculation
Q:=BARSLAST(DATA<>REF(DATA,1))+1; //Calculating the number of period from
the first K line of the current trading day to current k line, and assign the results to N
HH:=VALUEWHEN(TIME=0930,HHV(H,Q)); //when time is 9:30, get the highest price of N cycles, and assign the results to HH
LL:=VALUEWHEN(TIME=0930,LLV(L,Q)); //When time is 9:30, get the lowest price of N cycles, and assign the results to LL
//Placing Orders
TIME>0930 AND TIME<1445 AND C>HH,BK; //If the time is greater than 9:30 and lesser than 14:45, and the closing price is greater than HH, opening long position.
TIME>0930 AND TIME<1445 AND C<LL,SK; //If the time is greater than 9:30 and lesser than 14:45, and the closing price is lesser than LL, opening short position.
TIME>=1445,CLOSEOUT; //If the time is greater or equal to 14:45, close all position.
//Filtering the signals
AUTOFILTER; //opening the filtering the signals mechanism
مندرجہ بالا ہم نے حکمت عملی ماڈیول کا تصور سیکھا ہے۔ متعدد عام طور پر استعمال ہونے والے حکمت عملی ماڈیول کیسز کے ذریعے ، ہمیں ایف ایم زیڈ کوانٹ پروگرامنگ ٹولز کا ایک عام خیال تھا ، یہ کہا جاسکتا ہے کہ حکمت عملی ماڈیول لکھنا سیکھنا اور پروگرامنگ منطق سوچ کو بہتر بنانا جدید مقداری تجارت میں ایک اہم قدم ہے۔ آخر میں ، ہم نے کلاسیکی فاریکس ٹریڈنگ حکمت عملی کے مطابق تجارتی حکمت عملی کو نافذ کرنے کے لئے ایف ایم زیڈ کوانٹ ٹول کا استعمال کیا۔
شاید کچھ لوگوں کے لئے ابھی بھی کچھ الجھن ہے ، بنیادی طور پر کوڈنگ کے حصے کی وجہ سے۔ فکر نہ کریں ، ہم نے پہلے ہی آپ کے لئے اس کے بارے میں سوچا ہے۔ ایف ایم زیڈ کوانٹ پلیٹ فارم پر ، ابتدائیوں کے لئے ایک اور آسان پروگرامنگ ٹول موجود ہے۔ یہ بصری پروگرامنگ ہے ، آئیے اسے جلد ہی سیکھیں!
کئی ٹریڈنگ ماڈیولز کو لاگو کرنے کی کوشش کریں جو آپ سبجیکٹو ٹریڈنگ میں اکثر استعمال کرتے ہیں.
ایف ایم زیڈ کوانٹ پلیٹ فارم پر ایم زبان کا استعمال کرتے ہوئے کے ڈی جے انڈیکس الگورتھم کو نافذ کرنے کی کوشش کریں۔