ایم زبان کیا ہے؟ نام نہاد ایم زبان پروگراماتی افعال کا ایک مجموعہ ہے جو اسٹاک ٹریڈنگ کے ابتدائی تکنیکی اشارے سے بڑھتی ہے۔ الگورتھم کو ایک ہی فنکشن میں جوڑ کر ، صارف کو حکمت عملی کی منطق کو نافذ کرنے کے لئے صرف ایک خاص فنکشن جیسے بلڈنگ بلاکس کو کال کرنے کی ضرورت ہے۔
یہ "چھوٹے گرائمر ، بڑے فنکشن" کے تعمیراتی موڈ کو اپناتا ہے ، جو پروگرامنگ کی کارکردگی کو بہت بہتر بناتا ہے۔ دیگر زبانوں میں 100 سے زیادہ جملوں کی حکمت عملی تحریر کو ایم زبانوں میں صرف چند لائنوں کے ساتھ مرتب کیا جاسکتا ہے۔ ایف ایم زیڈ کوانٹ ٹول کے ساتھ مل کر مالیاتی شماریاتی فنکشن لائبریری اور ڈیٹا ڈھانچہ بھی کچھ پیچیدہ تجارتی منطق کی حمایت کرسکتا ہے۔
اس سیکشن کے کلیدی علم کو جلدی سے سمجھنے میں آپ کی مدد کرنے کے ل before ، ایف ایم زیڈ کوانٹ ایم زبان کو متعارف کرانے سے پہلے ، آئیے پہلے اس سیکشن کے اسم تصور کی ابتدائی تفہیم حاصل کریں۔ ہم اب بھی طویل مدتی 50 دن کی حرکت پذیر اوسط اور قلیل مدتی 10 دن کی حرکت پذیر اوسط کو بنیادی کیس کے طور پر استعمال کریں گے ، اور پچھلے باب میں ذکر کردہ مکمل حکمت عملی کیس کا جائزہ لیں گے:
کھلی لمبی پوزیشن: اگر فی الحال کوئی پوزیشن موجود نہیں ہے ، اور اختتامی قیمت قلیل مدتی چلتی اوسط سے زیادہ ہے ، اور اختتامی قیمت طویل مدتی چلتی اوسط سے زیادہ ہے ، اور قلیل مدتی چلتی اوسط طویل مدتی چلتی اوسط سے زیادہ ہے ، اور طویل مدتی چلتی اوسط بڑھ رہی ہے۔
کھلی مختصر پوزیشن: اگر فی الحال کوئی پوزیشن موجود نہیں ہے، اور بند ہونے کی قیمت مختصر مدت کے چلتے ہوئے اوسط سے کم ہے، اور بند ہونے کی قیمت طویل مدتی چلتے ہوئے اوسط سے کم ہے، اور مختصر مدت کے چلتے ہوئے اوسط طویل مدتی چلتے ہوئے اوسط سے کم ہے، اور طویل مدتی چلتے ہوئے اوسط گر رہا ہے.
بند طویل پوزیشن: اگر آپ فی الحال طویل پوزیشن رکھتے ہیں، اور بند ہونے کی قیمت طویل مدتی چلتی اوسط سے کم ہے، یا مختصر مدت چلتی اوسط طویل مدتی چلتی اوسط سے کم ہے، یا طویل مدتی چلتی اوسط گر رہی ہے.
بند مختصر پوزیشن: اگر موجودہ مختصر پوزیشن رکھیں، اور بند ہونے کی قیمت طویل مدتی چلتی اوسط سے زیادہ ہے، یا مختصر مدت چلتی اوسط طویل مدتی چلتی اوسط سے زیادہ ہے، یا طویل مدتی چلتی اوسط بڑھ رہی ہے.
اگر آپ اسے ایم زبان میں لکھیں تو یہ ہوگا:
MA10:=MA(CLOSE,10); // Get the 10-cycle moving average of the latest K-line and save the result in variable MA10
MA50:=MA(CLOSE,50); // Get the 50-cycle moving average of the latest K-line and save the result in variable MA50
MA10_1:=REF(MA10,1); //Get the 10-cycle moving average of the pervious K line and save the result to variable MA10_1
MA50_1:=REF(MA50,1); //Get the 50-cycle moving average of the pervious K line and save the result to variable MA50_1
MA10_2:=REF(MA10,2); //Get the 10-cycle moving average of the latest K line and save the result to variable MA10_2
MA50_2:=REF(MA50,2); //Get the 50-cycle moving average of the latest K line and save the result to variable MA50_2
MA50_ISUP:=MA50>MA50_1 AND MA50_1>MA50_2; //Determine whether the current 50-line moving average of the K line is rising
MA50_ISDOWN:=MA50<MA50_1 AND MA50_1<MA50_2; //Determine whether the current 50-line moving average of the K line is falling
CLOSE>MA10 AND CLOSE>MA50 AND MA10>MA50 AND MA50_ISUP,BK; //open long position
CLOSE<MA10 AND CLOSE<MA50 AND MA10<MA50 AND MA50_ISUP,SK; //open short position
CLOSE<MA50 OR MA10<MA50,SP;//close long position
CLOSE>MA50 OR MA10>MA50,BP;//close short position
ایک مکمل تجارتی حکمت عملی لکھنے کے ل you ، آپ کو ضرورت ہوگی: ڈیٹا اکٹھا کرنا ، ڈیٹا کا حساب کتاب کرنا ، منطقی حساب کتاب کرنا ، اور آرڈر دینا۔ جیسا کہ اوپر دکھایا گیا ہے ، پورے کوڈ میں ، بنیادی ڈیٹا حاصل کرنے کے لئے صرف ایک API استعمال کیا جاتا ہے ، جو پہلی اور دوسری لائنوں میں " CLOSE " ہے ؛ پھر پہلی سے نویں لائنوں میں ڈیٹا کے حساب کتاب کے حصے ہیں۔ لائنیں 11 سے 14 تک منطقی حساب کتاب اور آرڈر دینے کا حصہ ہیں۔
نوٹ کریں کہ MA10، MA50، MA10_1، MA50_1، MA10_2، اور MA50_2 متغیر ہیں۔ پہلی سے نویں لائنوں میں ، ":=" تفویض کا نشان ہے ، اور تفویض کے نشان کے دائیں جانب ڈیٹا تفویض کے نشان کے بائیں جانب متغیر کو تفویض کیا جاتا ہے۔
بنیادی اعداد و شمار (افتتاحی قیمت ، اعلی ترین قیمت ، کم ترین قیمت ، اختتامی قیمت ، حجم) مقداری تجارت کا ایک ناگزیر حصہ ہے۔ حکمت عملی میں تازہ ترین بنیادی اعداد و شمار حاصل کرنے کے ل you ، آپ کو صرف ایف ایم زیڈ کوانٹ کے اے پی آئی کو کال کرنے کی ضرورت ہے۔ اگر آپ تاریخی قیمت کے بنیادی اعداد و شمار حاصل کرنا چاہتے ہیں تو ، آپ "ریف" استعمال کرسکتے ہیں ، جیسے: ریف (کلوز ، 1) کل کی اختتامی قیمت حاصل کرنا ہے۔
متغیرات کو تبدیل کیا جاسکتا ہے۔ متغیر کا نام کوڈ نام کے طور پر سمجھا جاسکتا ہے۔ اس کا نام انگریزی حروف ، اعداد ، اور لائنوں کے ذریعہ تعاون یافتہ ہے۔ تاہم ، لمبائی کو 31 حروف کے اندر کنٹرول کرنا ضروری ہے۔ متغیر ناموں کو کسی دوسرے کے ساتھ دہرا نہیں جاسکتا ، پیرامیٹر ناموں کے ساتھ نقل نہیں کیا جاسکتا ، فنکشن ناموں (API ) کے ساتھ دہرا نہیں جاسکتا ، اور ہر بیان کا اختتام نیم قطرہ سے ہونا چاہئے۔ " // " کے بعد تبصرے لکھنا۔ جیسا کہ ذیل میں دکھایا گیا ہے:
INT:=2; //Integer type
FLOAT:=3.1; //Floating point
ISTRUE:=CLOSE>OPEN; //Boolean type
متغیر تفویض کا مطلب یہ ہے کہ تفویض کے نشان کے دائیں طرف کی قیمت بائیں طرف متغیر کو دی جاتی ہے۔ چار قسم کے تفویض ہیں ، جو اس بات کو کنٹرول کرسکتے ہیں کہ آیا قیمت چارٹ پر دکھائی دیتی ہے یا ڈسپلے کی پوزیشن۔ وہ ہیں " : " ، " := " ، " ^^ " ، "... " ، اور نیچے دیئے گئے کوڈ تبصرے ان کے معنی کو تفصیل سے بیان کرتے ہیں۔
CC1: C; //Assign the closing price to the variable CC1 and display it in the sub-chart
CC2:=C; //Assign the closing price to variable CC2, but not display in the status bar and chart
CC3^^C; //Assign the closing price to the variable CC3 and display it in the main chart
CC4..0; //Assign the closing price to the variable CC4 and display it in the status bar, but not in the chart
ایم زبان میں متعدد ڈیٹا کی اقسام ہیں ، جن میں سے سب سے عام عددی اقسام ، سٹرنگ کی اقسام ، اور بولین اقسام ہیں۔ عددی قسم اعداد ہیں ، بشمول عدد ، اعشاریہ ، مثبت اور منفی اعداد وغیرہ ، جیسے: 1 ، 2 ، 3 ، 1.1234 ، 2.23456...؛ سٹرنگ کی قسم کو متن ، چینی ، انگریزی کے طور پر سمجھا جاسکتا ہے ، اعداد بھی سٹرنگ ہوسکتے ہیں ، جیسے:
رشتہ دار آپریٹرز ، جیسا کہ نام سے پتہ چلتا ہے ، وہ آپریٹرز ہیں جو دو اقدار کے تعلقات کا موازنہ کرنے کے لئے استعمال ہوتے ہیں۔ وہ برابر ، بڑے ، کم ، بڑے یا برابر ، کم یا برابر ، برابر نہیں ہیں ، جیسا کہ ذیل میں دکھایا گیا ہے:
CLOSE = OPEN; //when closing price equals to opening price, return 1 (true), otherwise return 0 (false)
CLOSE > OPEN; //when closing price greater than opening price, return 1 (true), otherwise return 0 (false)
CLOSE < OPEN; //when closing price less than opening price, return 1 (true), otherwise return 0 (false)
CLOSE >= OPEN; //when closing price greater than or equal to opening price, return 1 (true), otherwise return 0 (false)
CLOSE <= OPEN; //when closing price less than or equal to opening price, return 1 (true), otherwise return 0 (false)
CLOSE <> OPEN; //when closing price is not equal to opening price, return 1 (true), otherwise return 0 (false)
منطقی آپریشنز الگ الگ بولین قسم کے بیانات کو مجموعی طور پر جوڑ سکتے ہیں ، سب سے زیادہ استعمال ہونے والے "AND" اور "OR" ہیں۔ فرض کریں کہ بولین قسم کے دو اقدار ہیں ،
AA:=2>1; //return true
BB:=4>3; //return true
CC:=6>5; //return true
DD:=1>2; //return false
براہ مہربانی توجہ دیں:
"اور" جب تمام شرائط
"یا" کا مطلب ہے کہ تمام حالات میں، جب تک کہ کسی بھی شرط
"AND" کو "&&" کے طور پر لکھا جا سکتا ہے، اور "OR" کو "hyem" کے طور پر لکھا جا سکتا ہے۔
ایم زبانوں میں استعمال ہونے والے ریاضیاتی آپریٹرز (" +
AA:=1+1; //the result is 2
BB:=2-1; //the result is 1
CC:=2*1; //the result is 2
DD:=2/1; //the result is 2
اگر 100*(10-1)/(10+5) اظہار ہے، تو پروگرام کا پہلا مرحلہ کون سا ہے؟ مڈل اسکول ریاضی ہمیں بتاتی ہے:
1، یہ ایک ہی آپریشن کی سطح ہے تو، یہ عام طور پر بائیں سے دائیں حساب کیا جاتا ہے. 2، اگر جمع اور گھٹاؤ، اور ضرب اور تقسیم ہیں، تو پہلے ضرب اور تقسیم کا حساب لگائیں، پھر جمع اور گھٹاؤ۔ 3، اگر قوسین ہیں تو، پہلے قوسین کے اندر کا حساب لگائیں. 4، آسان آپریشن کے قانون کو پورا کیا جاتا ہے تو، قانون حساب کے لئے استعمال کیا جا سکتا ہے.
ایم زبان کے لئے بھی یہی سچ ہے، جیسا کہ ذیل میں دکھایا گیا ہے:
100*(10-1)/(10+5) //the result is 60
1>2 AND (2>3 OR 3<5) //the result is false
1>2 AND 2>3 OR 3<5 //the result is true
ایف ایم زیڈ کوانٹ ٹول کی ایم زبان میں ، پروگرام کے عمل درآمد کے دو طریقے ہیں ، یعنی ، اختتامی قیمت کا موڈ اور حقیقی وقت کی قیمت کا موڈ۔ اختتامی قیمت کا موڈ اس کا مطلب یہ ہے کہ جب موجودہ K- لائن سگنل قائم ہوتا ہے تو ، اگلے K- لائن پر آرڈر دینا۔ موجودہ K- لائن سگنل قائم ہونے پر فوری طور پر حقیقی وقت کا موڈ عمل میں آرہا ہے۔
اگر یہ ایک انٹرا ڈے ٹریڈنگ حکمت عملی ہے تو ، آپ کو " ٹائم " ٹائم فنکشن استعمال کرنے کی ضرورت ہے جب آپ کو آخر میں پوزیشن بند کرنے کی ضرورت ہو۔ یہ فنکشن دوسرے سائیکل سے اوپر اور دن کے سائیکل سے نیچے ہے ، جو چار ہندسوں کی شکل میں دکھایا گیا ہے: HHMM (1450 - 14: 50) ۔ نوٹ: سیشن کے آخر میں پوزیشن بند کرنے کی شرط کے طور پر ٹائم فنکشن کا استعمال کرتے ہوئے ، یہ تجویز کی جاتی ہے کہ افتتاحی پوزیشن کی شرائط اسی وقت کی حد سے مشروط ہوں۔ جیسا کہ ذیل میں دکھایا گیا ہے:
CLOSE>OPEN && TIME<1450,BK; //if it is a positive k-line and the time is less than 14:50, opening position.
TIME>=1450,CLOSEOUT; //if the time is beyond 14:50, closing all position.
ایم زبان میں ماڈل کی درجہ بندی کی دو اقسام ہیں: غیر فلٹرنگ ماڈل اور فلٹرنگ ماڈل۔ یہ دراصل بہت اچھی طرح سے سمجھا جاتا ہے: غیر فلٹرنگ ماڈل مسلسل افتتاحی یا اختتامی سگنلز کی اجازت دیتا ہے ، جس کا استعمال پوزیشنوں کو شامل کرنے اور کم کرنے کے لئے کیا جاسکتا ہے۔ فلٹرنگ ماڈل مسلسل افتتاحی یا اختتامی سگنلز کی اجازت نہیں دیتا ہے ، یعنی جب افتتاحی سگنل ظاہر ہوتا ہے تو ، اگلے افتتاحی سگنل کو اس وقت تک فلٹر کیا جائے گا جب تک کہ اختتامی سگنل ظاہر نہ ہو۔ غیر فلٹرنگ ماڈل کا آرڈر یہ ہے: کھلی پوزیشن - قریبی پوزیشن - کھلی پوزیشن - قریبی پوزیشن - کھلی پوزیشن...
مندرجہ بالا ایم زبان کے فوری آغاز کا مواد ہے ، اب آپ اپنی تجارتی حکمت عملی کو ابھی پروگرام کرسکتے ہیں۔ اگر آپ کو زیادہ پیچیدہ لکھنے کی ضرورت ہو تو ، آپ ایف ایم زیڈ کوانٹ پلیٹ فارم کی ایم زبان API دستاویزات کا حوالہ دے سکتے ہیں ، یا براہ راست سرکاری کسٹمر سروس سے مشورہ کرسکتے ہیں تاکہ آپ کے لئے لکھ سکیں۔
انٹرا ڈے ٹریڈنگ بھی ایک مشہور تجارتی موڈ ہے۔ یہ طریقہ راتوں رات پوزیشن نہیں رکھتا ہے۔ لہذا ، یہ مارکیٹ میں اتار چڑھاؤ کے کم خطرے سے مشروط ہے۔ ایک بار جب مارکیٹ کے سازگار حالات پیدا ہوجاتے ہیں تو ، اسے وقت میں ایڈجسٹ کیا جاسکتا ہے۔ اگلے حصے میں ، ہم آپ کو ایک قابل عمل انٹرا ڈے ٹریڈنگ حکمت عملی لکھنے کے ل. لے جائیں گے۔