پچھلے مضمون میں ، ہم نے پروگرامٹک ٹریڈنگ اسکرپٹس کے بارے میں بات کی تھی۔ در حقیقت ، تجارتی حکمت عملی ایک تجارتی اسکرپٹ پروگرام ہے۔ مضمون بنیادی طور پر تجارتی اسکرپٹ پروگرام (جہاں پروگرام چلتا ہے) کے لئے ہارڈ ویئر کیریئر کی ضرورت کے بارے میں بات کرتا ہے ، اور اسکرپٹ ٹریڈنگ پروگرام کو کس قسم کی کمپیوٹر پروگرامنگ زبان میں لکھا جاسکتا ہے (ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم پر استعمال ہونے والی تین پروگرامنگ زبانیں درج ہیں۔ یقینا ، آپ پروگرامٹک ٹریڈنگ کے لئے حکمت عملیوں کو نافذ کرنے کے لئے کسی بھی پروگرامنگ زبان کا استعمال کرسکتے ہیں۔ اس مضمون میں ، ہم cryptocurrency کی مقدار پر تبادلہ خیال کرتے رہتے ہیں اور اس کے بارے میں سیکھتے ہیں۔
تجارتی حکمت عملی کی اقسام پروگرام شدہ تجارت اور مقداری تجارت میں نئے آنے والوں کو اصطلاحات سے الجھن ہوسکتی ہے ، جیسے مختلف رجحان کی حکمت عملی ، ثالثی کی حکمت عملی ، اعلی تعدد کی حکمت عملی ، گرڈ کی حکمت عملی وغیرہ۔ در حقیقت ، پروگرام شدہ تجارت اور مقداری تجارت میں مشترکہ قسم کی حکمت عملی صرف کئی سمت ہیں۔
مندرجہ بالا تجارتی حکمت عملیوں کے نقطہ نظر سے تقسیم کیا گیا ہے۔ ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم پر حکمت عملی کے ڈیزائن کے نقطہ نظر سے ، حکمت عملیوں کو بھی تقسیم کیا جاسکتا ہے:
Exchange API انٹرفیس
پروگرامٹک ٹریڈنگ اسکرپٹ ایکسچینج اکاؤنٹ کو کس طرح چلاتا ہے؟ یہ ایکسچینج کے ذریعہ کھولی گئی API انٹرفیس کے ذریعے ہے۔
تو کس قسم کے انٹرفیس تبادلے کے لئے کھلے ہیں؟ پچھلے مضمون میں ، ہم نے تبادلہ کے بارے میں بات کی ہے REST اور ویب ساکٹ انٹرفیس عام طور پر
انٹرفیس جن کی تصدیق کی ضرورت نہیں ہے
عام طور پر API KEY
(اگر آپ بھول گئے ہیں کہ API KEY کیا ہے تو ، آپ پچھلے مضمون کی طرف رجوع کرسکتے ہیں۔) اس قسم کا انٹرفیس عام طور پر مارکیٹ انٹرفیس ہوتا ہے ، جیسے گہرائی میں مارکیٹ کی قیمتوں سے استفسار کرنا ، K- لائن ڈیٹا سے استفسار کرنا ، فنڈنگ کی شرحوں سے استفسار کرنا ، تجارتی اقسام کے بارے میں معلومات سے استفسار کرنا ، ایکسچینج سرور ٹائم اسٹیمپ وغیرہ سے استفسار کرنا۔
سادہ الفاظ میں، انٹرفیس آپ کے اکاؤنٹ سے متعلق نہیں ہے کہ تقریبا ایک عوامی انٹرفیس کے طور پر مقرر کیا جا سکتا ہے (کوئی تصدیق کی ضرورت ہے)
ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم پر ، جب غیر تصدیق شدہ API فنکشن کو کال کیا جاتا ہے (ایکسچینج کے غیر تصدیق شدہ انٹرفیس ، عوامی انٹرفیس کو احاطہ کرتا ہے) ، یہاں تک کہ اگر API KEY ترتیب غلط ہے تو ، انٹرفیس کے ذریعہ واپس آنے والے ڈیٹا کو عام طور پر حاصل کیا جاسکتا ہے (غیر تصدیق کی وجہ سے) ۔
انٹرفیس جن کی تصدیق کی ضرورت ہے آسان الفاظ میں ، یہ انٹرفیس ہے جس کی تصدیق کی ضرورت ہے (API KEY کے ذریعے) ، اس قسم کے انٹرفیس کو نجی انٹرفیس کہا جاتا ہے۔ یہ عام طور پر آپ کے اکاؤنٹ کے کچھ آپریشنز یا معلومات سے متعلق ہوتا ہے ، جیسے اکاؤنٹ کے اثاثوں سے استفسار کرنا ، اکاؤنٹ کی پوزیشنوں سے استفسار کرنا ، زیر التواء آرڈرز سے استفسار کرنا ، منتقلی سے استفسار کرنا ، کرنسی کی منتقلی ، بیعانہ کو ایڈجسٹ کرنا ، پوزیشن موڈ ترتیب دینا ، وغیرہ۔ ان تمام کارروائیوں کی تصدیق ہونی چاہیے۔ ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم پر ، جب API فنکشن کو کال کرتے ہیں جس کی تصدیق کی ضرورت ہے (انٹرفیس جو انکیپسولڈ ایکسچینج کے لئے تصدیق کی ضرورت ہے ، نجی انٹرفیس) ، اگر API KEY کو غلط طریقے سے تشکیل دیا گیا ہے تو ، جب انٹرفیس کو بلایا جاتا ہے تو ایک غلطی کی اطلاع دی جائے گی ، اور ایک null قدر واپس کردی جائے گی۔
تو FMZ کوانٹ ٹریڈنگ پلیٹ فارم پر ان انٹرفیس کو کس طرح استعمال کیا جاتا ہے؟
ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم تبادلہ رویے اور مستقل تعریفوں کے ساتھ انٹرفیس کو احاطہ کرتا ہے (جیسے کے لائن انٹرفیس ، گہرائی سے مارکیٹ انٹرفیس ، موجودہ اثاثہ استفسار انٹرفیس ، آرڈر انٹرفیس ، آرڈر منسوخی انٹرفیس وغیرہ) ، ان انٹرفیس کو ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم API افعال کہا جاتا ہے ، اور اس تک رسائی حاصل کی جاسکتی ہے API دستاویزات (https://www.fmz.com/api).
تو FMZ کوانٹ ٹریڈنگ پلیٹ فارم پر مختلف رویوں اور تعریفوں کے ساتھ تبادلہ انٹرفیس میں سے کچھ کس طرح استعمال ہوتے ہیں؟
ان تبادلے کے انٹرفیس میں شامل ہیں: اثاثوں کی منتقلی ، مشروط آرڈر ، بیچ آرڈر کی جگہ ، بیچ آرڈر منسوخی ، آرڈر میں ترمیم وغیرہ۔ کچھ تبادلے میں یہ انٹرفیس موجود ہیں ، کچھ نہیں ہیں ، اور ان کے افعال اور استعمال کی تفصیلات کافی مختلف ہوسکتی ہیں ، لہذا ان انٹرفیس تک رسائی حاصل کی جاسکتی ہےexchange.IO
ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم پر فنکشن (تفصیلات کے لئے، براہ کرم ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم API دستاویزات دیکھیں:https://www.fmz.com/api#exchange.io..ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم کی حکمت عملی مربع پر کچھ عملی آئی او مثال کی حکمت عملی بھی موجود ہیں۔
کیا FMZ Quant Trading Platform API دستاویز پر تمام API افعال نیٹ ورک کی درخواستیں پیدا کرتے ہیں؟
سب سے پہلے اور سب سے اہم بات ، ایکسچینج کے API انٹرفیس میں رسائی کی تعدد کی پابندیاں ہیں (جیسے 5 بار فی سیکنڈ) ، اور رسائی بہت کثرت سے نہیں ہوسکتی ہے ، ورنہ یہ http 429 غلطی کی اطلاع دے گی ، اور رسائی سے انکار کردیا جائے گا (زیادہ تر تبادلے کی اطلاع 429) ۔ انوینٹر کوانٹیٹیٹیو ٹریڈنگ پلیٹ فارم پر انکیپسولڈ ایکسچینج انٹرفیس کو کال کرنے کے لئے ایک ہی حد ہے ، لیکن ایف ایم زیڈ ٹریڈنگ کوانٹ پلیٹ فارم پر نیٹ ورک کی درخواستیں پیدا نہ کرنے والے API افعال پر ایسی کوئی حد نہیں ہے۔ ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم کے تمام اے پی آئی افعال نیٹ ورک کی درخواستیں تیار نہیں کریں گے۔ ان میں سے کچھ صرف کچھ مقامی ترتیبات کو تبدیل کرتے ہیں ، جیسے موجودہ ٹریڈنگ جوڑی کی ترتیب ، معاہدے کا کوڈ ترتیب دینا ، اشارے کے حساب کتاب کی تقریب اور تبادلہ آبجیکٹ کا نام حاصل کرنا وغیرہ۔ عام طور پر ، یہ فیصلہ کیا جاسکتا ہے کہ آیا کسی فنکشن کے مقصد سے نیٹ ورک کی درخواست ہوتی ہے۔ جب تک کہ تبادلہ ڈیٹا ، تبادلہ اکاؤنٹ کے آپریشنز وغیرہ نیٹ ورک کی درخواستیں پیدا ہوتے ہیں ، ان انٹرفیسز کو کالنگ فریکوئنسی پر توجہ دینے کی ضرورت ہے۔
آئیے FMZ کوانٹ ٹریڈنگ پلیٹ فارم پر API افعال استعمال کرتے وقت کچھ عام مسائل اور تجربات کے بارے میں بات کرتے ہیں
غلطی کی رواداری یہ سب سے عام غلطی ہے ، جس نے بے شمار ابتدائیوں کو پریشان کیا ہے۔ حکمت عملی کے بیک ٹیسٹنگ کا ہر چیز اکثر معمول کی بات ہوتی ہے ، اصلی بوٹ تھوڑی دیر کے لئے کیوں چلتا ہے (کسی بھی وقت متحرک ہوسکتا ہے) اور پھر ناکام ہوجاتا ہے؟
حکمت عملی لکھتے وقت ، ہم سب کو انٹرفیس کے ذریعہ واپس آنے والے اعداد و شمار کا فیصلہ کرنے اور ان کی تصدیق کرنے کی ضرورت ہے۔ مثال کے طور پر ، ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم پر حاصل کرنے کے لئے مارکیٹ کی قیمت کا کوڈ (اپنے آپ کو براہ راست ایکسچینج انٹرفیس تک رسائی حاصل کرنے کے لئے پروگرام لکھنے کے برابر):var ticker = exchange. GetTicker()
، اگر ہمیں استعمال کرنے کی ضرورت ہےLast
(آخری قیمت) کے اعداد و شمارticker
متغیر (فنکشن GetTicker کی طرف سے واپس کی ساخت کا حوالہ دیتے ہیں) ، ہم استعمال کرنے کی ضرورت ہےvar newPrice = ticker.Last
اس طرح کے اعداد و شمار حاصل کرنے کے لئے (کیا ہے newPrice؟ نیا: تازہ ترین، قیمت: قیمت، جی ہاں!GetTicker()
تقریب معمول کے اعداد و شمار پر واپس آتا ہے، یہ ٹھیک ہے، لیکن ایک درخواست ٹائم آؤٹ، نیٹ ورک کی خرابی ہے تو، تبادلہ نیٹ ورک کیبل ھیںچتا ہے، کیبل کاٹ دیا جاتا ہے، بچے بجلی کے سوئچ ھیںچتا ہے، وغیرہ... یہ وجہ سے ہو گاGetTicker()
واپس کرنے کے لئے تقریبnull
اس وقت، کی قدرticker
ہےnull
، اور اگر میں اس تک رسائی حاصل کرنے کے لئے جاناLast
، ایک پروگرام استثناء واقع ہو جائے گا اور حکمت عملی کے پروگرام کو روک دیا جائے گا.
ایسا لگتا ہے کہ انٹرفیس کال کی ناکامی (GetTicker کال ناکام ہو جاتا ہے اور null لوٹاتا ہے) کی حکمت عملی کی روک تھام کی براہ راست وجہ نہیں ہے null
متغیر تک رسائی حاصل کی جاتی ہے). انٹرفیس کال کی ناکامی کی غلطی کی رپورٹ حقیقی بوٹ سٹاپ کا سبب نہیں بنے گی (توجہ).
تو ہم حقیقی روبوٹ کے غیر معمولی سٹاپ سے بچنے کے لئے کیا کر سکتے ہیں؟
جواب انٹرفیس کی طرف سے واپس آئے اعداد و شمار پر غلطی برداشت پروسیسنگ انجام دینے کے لئے ہے. یہ بہت آسان ہے، صرف فیصلہ کیا ہے کہ آیا واپس آئے اعداد و شمار ہےnull
(جاوا اسکرپٹ زبان کی ایک مثال، دیگر زبانوں عام طور پر ایک ہی ہیں)
وضاحت کے لئے ایک مختصر کوڈ سیگمنٹ لکھیں (یہ صرف ایک وضاحت ہے، آپ اسے براہ راست نہیں چلا سکتے ہیں!)
var ticker = exchange.GetTicker()
if (ticker) {
var newPrice = ticker.Last
Log("Print the latest price:", newPrice)
} else {
// The data is null, there will be no problem if no operation is performed
}
نہ صرفGetTicker
انٹرفیس کو غلطی برداشت کرنے کی ضرورت ہے، لیکن نیٹ ورک کی درخواستوں کے ساتھ انٹرفیس کو واپسی کی قیمت کے لئے غلطی برداشت کرنے کی ضرورت ہے (اگر آپ فنکشن کی واپسی کی قیمت استعمال کرتے ہیں)
بہت سے غلطی برداشت کے طریقوں ہیں، آپ کو استعمال کر سکتے ہیں_C()
تقریب (FMZ API دستاویزات کا حوالہ دیتے ہیں) غلطی برداشت کرنے والی تقریب لکھنے اور غلطی برداشت کرنے والے میکانزم اور منطق کو خود سے ڈیزائن کرنے کے لئے۔
کے استعمال کے بارے میں_C()
اس کا استعمال غلط طریقے سے کیا جاتا ہے۔ نوٹ کریں کہ اس کے پیرامیٹر میں_C()
فنکشن ایک فنکشن ریفرنس ہے، فنکشن کال نہیں._C(funcName, param1, param2)
، کال درست ہے، funcName کراسٹس کے بغیر ہے، اور param1 اور param2 فنکشن funcName کو منتقل کرنے والے پیرامیٹرز ہیں۔_C(funcName(param1, param2))
، کال غلط ہے، عام طور پر ابتدائیوں کی طرف سے لکھا جاتا ہے جو FMZ API دستاویزات کو سنجیدگی سے نہیں پڑھتے ہیں.
اسپاٹ مارکیٹ میں خریدنے کے آرڈر کی مقدار
اسپاٹ مارکیٹ آرڈر خریدنے کے آرڈر کی آرڈر کی مقدار بھی ابتدائیوں کی طرف سے غلطیاں کرنے کے لئے آسان ہے، جیسا کہ پچھلے مضمون میں ذکر کیا گیا ہے، اسپاٹ مارکیٹ آرڈر خریدنے کے آرڈر کی آرڈر کی مقدار عام طور پر رقم ہے (بہت کم تبادلے دیگر ترتیبات ہوسکتی ہے، عام طور پر، FMZ پر یہ خصوصی تبادلے کی ترتیبات FMZ API دستاویز میں وضاحت کی جائے گی) ، مثال کے طور پر میں ٹیسٹ کرنے کے لئے OKEX V5 ڈیمو استعمال کرتا ہوں:
ٹریڈنگ جوڑی اس طرح مقرر کی گئی ہے:LTC_USDT
function main() {
exchange.IO("simulate", true) // Switch to the demo of OKEX exchange
exchange.Buy(-1, 1) // The price is -1, indicating that the order placed is a market order, and the quantity is 1, indicating that the order amount is 1USDT
}
چونکہ ایکسچینجز میں عام طور پر آرڈر کی رقم کی حد ہوتی ہے ، لہذا اس حد سے کم کے آرڈر نہیں دیئے جائیں گے (مثال کے طور پر ، بائننس اسپاٹ کو کامیابی کے ساتھ رکھنے سے پہلے ہر آرڈر کے لئے 5USDT سے زیادہ کی ضرورت ہوتی ہے) ۔ لہذا ، اگر آپ اس طرح کا آرڈر دیتے ہیں تو یہ غلطی کی اطلاع دے گا:
Error Buy(-1, 1): map[code:1 data:[map[clOrdId: ordId: sCode:51020 sMsg:Order amount should be greater than the min available amount. tag:]] msg:]
مستقبل کے احکامات کی جگہ میں سمت فیوچر کی حکمت عملی بنانے کے دوران ، آرڈر دینے کی سمت اکثر ابتدائیوں کے ذریعہ غلطیاں ہوتی ہیں ، جس سے مسائل پیدا ہوتے ہیں۔ مثال کے طور پر ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم پر حکمت عملی لکھنا۔ آئیے سب سے پہلے API دستاویزات پر وضاحت پر نظر ڈالیں:https://www.fmz.com/api#exchange.setdirection...
کے طور پر حکم کی تقریب صرف ہےBuy
, Sell
تاہم ، فیوچر (یقینی طور پر ، اسپاٹ کے ساتھ کوئی مسئلہ نہیں ہے ، اسپاٹ صرف خریدا اور فروخت کیا جاتا ہے) میں لانگ کھولنے ، لانگ بند کرنے ، شارٹ کھولنے اور شارٹ بند کرنے کی سمتیں ہیں ، لہذا یہ واضح ہے کہ خرید / فروخت اتنی زیادہ سمتوں میں کارروائیوں کا اظہار نہیں کرسکتی ہے۔ اس وقت فنکشن متعارف کرانا ضروری ہےexchange.SetDirection()
، جو فیوچر ٹریڈنگ کی سمت طے کرتا ہے۔
FMZ پر،exchange.SetDirection("buy")
(سب سے پہلے سمت مقرر) کے ساتھ مل کر استعمال کیا جاتا ہےexchange.Buy
، اس کا مطلب یہ ہے کہ جو آرڈر دیا گیا ہے وہ ایک طویل پوزیشن کھولنے کا آرڈر ہے۔
اور اسی طرح:exchange.SetDirection("sell")
کے ساتھ مل کر استعمال کیا جاتا ہےexchange.Sell
، اس کا مطلب یہ ہے کہ جو آرڈر دیا گیا ہے وہ ایک مختصر پوزیشن کھولنے کا آرڈر ہے۔exchange.SetDirection("closebuy")
کے ساتھ مل کر استعمال کیا جاتا ہےexchange.Sell
، اس کا مطلب یہ ہے کہ جو آرڈر دیا گیا ہے وہ ایک طویل پوزیشن بند کرنے کا آرڈر ہے۔exchange.SetDirection("closesell")
کے ساتھ مل کر استعمال کیا جاتا ہےexchange.Buy
، اس کا مطلب یہ ہے کہ جو آرڈر دیا گیا ہے وہ ایک مختصر پوزیشن بند کرنے کا آرڈر ہے۔
beginners عام طور پر استعمال کرتے ہیںexchange.SetDirection("sell")
کے ساتھ مل کرexchange.Buy
، یا دیگر غلط مجموعے۔ پھر ایک غلطی کی اطلاع دی جاتی ہے (بیک ٹیسٹنگ غلطی کی اطلاع نہیں دے سکتی ہے ، لیکن یہ ظاہر ہے کہ منطقی غلطی ہے ، جنونی مجبوری خرابی کو برداشت نہیں کیا جاسکتا ہے...).
ابتدائیوں کی ایک اور عام غلطی
function main() {
exchange.SetContractType("quarter") // Set the current contract as a quarterly contract
exchange.SetDirection("sell")
var id = exchange.Sell(-1, 1)
Log("See my market order is placed and the transaction is completed, there is a position", exchange.GetPosition())
exchange.SetDirection("closebuy") // closebuy is used in conjunction with Sell, yes~
exchange.Sell(-1, 1)
}
یہاں آپ پوچھ سکتے ہیں:
لاگ آؤٹ پٹ، ٹرانزیکشن کی معلومات کی نمائش
پروگرام شدہ اور مقداری تجارتی حکمت عملیوں کا ڈیزائن انسان کمپیوٹر تعامل کے ڈیزائن سے الگ نہیں ہے ، جیسے print
.
جاوا اسکرپٹ کا استعمالconsole.log
.
گولانگ کا استعمالfmt.Println()
.
C++ استعمالcout
آئیے ایف ایم زیڈ پلیٹ فارم پر انفارمیشن ڈسپلے کے بارے میں بات کرتے ہیں ، ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم پر ، دو اہم جگہیں ہیں جہاں معلومات دکھائی جاتی ہیں۔
حالت کالم اصلی بوٹ چلانے کے بعد، اصلی بوٹ کا صفحہ اس تصویر میں دکھایا گیا ہے:
ڈسپلے کا حصہ اسٹیٹس کالم کی معلومات ہے۔ اسٹیٹس کالم بنیادی طور پر کچھ ریئل ٹائم بدلتے ہوئے ڈیٹا کو ظاہر کرنے کے لئے استعمال ہوتا ہے (کیونکہ ریئل ٹائم تبدیلیوں کو ریئل ٹائم میں مشاہدہ کرنے کی ضرورت ہوتی ہے ، اور اسے ہر بار لاگ کے طور پر پرنٹ نہیں کیا جاسکتا ہے ، اس قسم کے ڈیٹا کو اسٹیٹس کالم میں دکھایا جاسکتا ہے۔ لاگ بہت سارے نقل شدہ اور بے معنی ڈیٹا کو دہرائے گا ، اگر ہر لاگ پرنٹ ہوجائے تو استفسار کو متاثر کرے گا۔)
حالت کالم پر دکھائے گئے اعداد و شمار کا استعمال کرتا ہےLogStatus
تفصیلات کے لئے، براہ مہربانی FMZ API دستاویزات سے رجوع کریں.
لاگ کالم اصل بوٹ پیج پر بھی ڈسپلی کیا گیا ہے، جیسا کہ شبیہہ میں دکھایا گیا ہے:
ڈسپلے کا حصہ لاگ کالم ہے۔ لاگ کالم بنیادی طور پر کسی خاص وقت پر مستقل طور پر کچھ ڈیٹا ریکارڈ کرنے کے لئے استعمال ہوتا ہے ، یا کسی خاص وقت پر کسی خاص حکمت عملی کے عمل کو ریکارڈ کرنے کے لئے۔ لکڑی کے مختلف قسم کے ہیں:
عام لاگ، FMZ پر حکمت عملی لاگ آؤٹ پٹ اور حکمت عملی لاگ میں پرنٹ کرنے کے لئے لاگ تقریب کو اپنانے.
آرڈر لاگ، استعمالexchange.Sell
/exchange.Buy
میں FMZ
منسوخی کا ریکارڈ،exchange.CancelOrder
FMZ
غلطی کا نوشتہ ، جب ایف ایم زیڈ پر حکمت عملی چل رہی ہے تو ، نیٹ ورک کی درخواست کرنے والے انٹرفیس پر کال کی غلطی واقع ہوتی ہے ، استثناء پھینک دیا جاتا ہے (جیسے پھینکنے کا بیان) ، غلطی کا نوشتہ خود بخود لاگ میں آؤٹ پٹ ہوتا ہے۔
ایف ایم زیڈ پر API افعال ، افعال جو لاگ آؤٹ پٹ جیسے لاگ ((...) ، تبادلہ.خریداری ((قیمت ، رقم) ، تبادلہ.منسوخ آرڈر ((آئی ڈی) ، وغیرہ پیدا کرسکتے ہیں ، ان سب کے بعد کچھ اضافی آؤٹ پٹ پیرامیٹرز کی پیروی کی جاسکتی ہے ، جیسے: تبادلہ۔ منسوخ آرڈر ((آرڈر[j]۔آئی ڈی ، آرڈر[j]) ، جب آرڈر کی ترتیب[j] منسوخ ہوجاتی ہے تو آرڈر کی معلومات کو آؤٹ پٹ کرنا ہے۔
function main() {
Log("data1", "data2", "data3", "...")
var data2 = 200
var id = exchange.Sell(100000, 0.1, "Attached data1", data2, "...")
exchange.CancelOrder(id, "Attached data1", data2, "...")
LogProfit(100, "Attached data1", data2, "...")
}
اشارے کے افعال کا استعمال
اشارے کے فنکشن کے بارے میں بات کرنے سے پہلے ، آئیے پہلے یہ سمجھیں کہ اشارے کیا ہے۔ آسان الفاظ میں ، یہ ایک لائن ہے ، جیسے حرکت پذیر اوسط ، ایم اے سی ڈی اور اے ٹی آر۔
س: یہ اشارے کہاں سے آئے؟
A: یقیناً یہ حساب لگایا جاتا ہے.
س: حساب کتاب کی بنیاد کیا ہے؟
A: K لائن کے اعداد و شمار پر مبنی حساب.
س: ایک مثال دیں؟
A: مثال کے طور پر سب سے آسان اشارے حرکت پذیر اوسط اشارے کو لیتے ہوئے ، اگر ہم اشارے کے حساب کے لئے ڈیٹا ماخذ کے طور پر روزانہ کے لائن (یعنی ، ایک مثبت یا منفی لائن ایک دن کی نمائندگی کرتی ہے) کے اعداد و شمار کا استعمال کرتے ہیں۔ حرکت پذیر اوسط اشارے کا پیرامیٹر 10 ہے ، پھر حساب کتاب شدہ حرکت پذیر اوسط اشارے 10 دن کی حرکت پذیر اوسط ہے۔
س: کیا اگر K لائن BARs کی تعداد 10 سے کم ہو تو اوسط اشارے کا حساب لگایا جاسکتا ہے؟
A: نہ صرف چلتی اوسط اشارے کا حساب نہیں کیا جا سکتا، لیکن کسی بھی اشارے مؤثر انڈیکس قدر کا حساب نہیں کر سکتے ہیں جب K لائن ڈیٹا BAR کی تعداد اشارے کی مدت پیرامیٹر کو پورا نہیں کرتا، اور حساب کی صف کے متعلقہ پوزیشن خالی اقدار کے ساتھ بھرا جائے گا، مثال کے طور پر،JavaScript
زبان کی حکمت عملی ظاہر کرے گاnull
جب حساب کردہ اشارے کے اعداد و شمار کو پرنٹ کیا جائے۔
یہ ہوتا ہے کہ حکمت عملی مربع میں ایک سبق مثال ہے:https://www.fmz.com/strategy/125770بیک ٹیسٹ ٹوٹوریل مثال کی حکمت عملی، ہم بیک ٹیسٹنگ کے نظام اور 10 مدت چلتی اوسط کی طرف سے پیدا چارٹ دیکھ سکتے ہیں:
حکمت عملی اپنی مرضی کے مطابق ڈرائنگ، تیار کی K لائن کے ساتھ ساتھ چلتی اوسط چارٹ.
س: اگر میں 10 گھنٹے کی اوسط اوسط چاہتا ہوں تو کیا ہوگا؟ A: K لائن کے اعداد و شمار کا استعمال کرتے ہوئے گھنٹے کی مدت کے ساتھ K لائن کے اعداد و شمار ٹھیک ہو گا.
عام لوگوں کے لحاظ سے ، K- لائن جو ہم دیکھتے ہیں وہ ایک صف ہے جب ہم اسے ڈیجیٹائز کرتے ہیں (آپ بائیڈو سے پوچھ سکتے ہیں اگر آپ صف کے تصور کو نہیں سمجھتے ہیں) ، جس کا ہر عنصر K- لائن کالم ہے ، جو ترتیب میں ترتیب دیا گیا ہے ، صف میں پہلا عنصر موجودہ وقت سے سب سے دور ہے ، اور صف کا آخری عنصر موجودہ وقت سے سب سے قریب ہے۔ عام طور پر ، K لائن کے اعداد و شمار کی آخری بار موجودہ مدت کی بار ہوتی ہے ، جو حقیقی وقت میں بدلتی ہے اور یہ نامکمل ہوتی ہے (آپ تبادلہ صفحے میں لاگ ان کرکے تبدیلیوں کا مشاہدہ کرسکتے ہیں اور K لائن کا مشاہدہ کرسکتے ہیں۔ حساب کتاب کے اشارے بھی K لائن کی سلاخوں کے ساتھ مطابقت رکھتے ہیں۔ مذکورہ بالا مثال میں ، ہم دیکھ سکتے ہیں کہ ایک اشارے کی قیمت K لائن بار سے مطابقت رکھتی ہے۔ نوٹ کریں کہ آخری K لائن بار حقیقی وقت میں بدلتی ہے ، اور حساب کتاب کا اشارہ بھی K لائن بار کی تبدیلی کے ساتھ بدل جائے گا۔
ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم پر ، ہم ٹی اے لائبریری (ایف ایم زیڈ پلیٹ فارم کے ذریعہ نافذ کردہ لائبریری ، ڈوکر میں مربوط ، اور مختلف زبانوں کو براہ راست استعمال کیا جاسکتا ہے) یا طالب لائبریری (پرانے طالب اشارے لائبریری ، جے ایس ، سی ++ انضمام ، پائیتھون کو خود انسٹال کرنے کی ضرورت ہے) استعمال کرسکتے ہیں۔ مثال کے طور پر، مندرجہ بالا مثال میں چلتی اوسط کا حساب لگانے کے لئے: ٹی اے لائبریری استعمال کریں:
function main() {
var records = exchange.GetRecords()
var ma = TA.MA(records, 10)
Log(ma) // print moving average
}
طالب لائبریری استعمال کریں:
function main() {
var records = exchange.GetRecords()
var ma = talib.MA(records, 10)
Log(ma) // print moving average
}
حساب اشارے کے اعداد و شمار ما ایک صف ہے، اور ہر عنصر K لائن صف (ریکارڈز) ایک سے ایک کے مطابق ہے، یعنی،ma[ma.length -1]
کے مطابق ہےrecords[records.length - 1]
، اور اسی طرح.
دوسرے پیچیدہ اشارے کے لئے بھی یہی بات ہے، اور ہمیں MACD جیسے اشارے پر توجہ دینے کی ضرورت ہے۔
var macd = TA.MACD(records) // In this way, only the K-line data is passed in, not the indicator parameters. The indicator parameters use the default values, and the same goes for other indicator functions.
اس وقت ، متغیر macd ایک دو جہتی صف ہے (اگر آپ اس تصور کو نہیں سمجھتے ہیں تو آپ بائیڈو سے پوچھ سکتے ہیں۔) ایک دو جہتی صف صرف ایک صف ہے ، اور اس کا ہر عنصر بھی ایک صف ہے۔ س: MACD اشارے کا ڈیٹا دو جہتی صف کیوں ہے؟ A: کیونکہ MACD اشارے دو لائنوں (ڈیف لائن، ڈی ای لائن) اور حجم باروں کا ایک سیٹ (MacD حجم بار، حقیقت میں، یہ حجم بار ڈیٹا بھی ایک لائن کے طور پر سمجھا جا سکتا ہے) پر مشتمل ہے. لہذا MACD متغیر میں تقسیم کیا جا سکتا ہے:
var dif = macd[0]
var dea = macd[1]
var macdColumn = macd[2]
یہاں ایک تیار شدہ سبق کی مثال بھی ہے ، اگر آپ دلچسپی رکھتے ہیں تو ، آپ پڑھ سکتے ہیں:https://www.fmz.com/strategy/151972