پچھلے مضمون میں ہم نے پروگرام شدہ ٹریڈنگ اسکرپٹ کے بارے میں بات کی تھی۔ دراصل ٹریڈنگ کی حکمت عملی ایک تجارتی اسکرپٹ ہے ، اس مضمون میں بنیادی طور پر یہ بات کی گئی ہے کہ تجارتی اسکرپٹ کو ہارڈویئر کیریئر کی ضرورت ہوتی ہے (جہاں پروگرام چلتا ہے) ، یہ تجارتی اسکرپٹ کمپیوٹر پروگرامنگ زبان میں لکھا جاسکتا ہے (مصنفین نے کوانٹیمیٹڈ ٹریڈنگ پلیٹ فارم پر استعمال ہونے والی تین پروگرامنگ زبانوں کی فہرست دی ہے ، اور یقینا خود کوانٹیمیٹڈ ٹریڈنگ کسی بھی پروگرامنگ زبان کو لاگو کرنے کی حکمت عملی کا استعمال کرسکتے ہیں) ۔ اس مضمون میں ہم کوئن ریل کوانٹیمیشن ، کوئن ریل کوانٹیمیشن کے بارے میں جاننے کے بارے میں بات کرتے ہیں۔
تجارت کی حکمت عملی کی اقسام ابتدائی پروگرامنگ ٹریڈنگ ، کوانٹیمیٹڈ ٹریڈنگ کے نئے آنے والوں کو مختلف اصطلاحات جیسے رجحانات کی حکمت عملی ، سودے کی حکمت عملی ، ہائی فریکوئنسی حکمت عملی ، گرڈ کی حکمت عملی وغیرہ کے ناموں سے آگاہ کیا جاسکتا ہے۔ در حقیقت ، پروگرامنگ ٹریڈنگ ، کوانٹیمیٹڈ ٹریڈنگ عام حکمت عملی کی اقسام صرف کئی سمتوں میں ہیں۔
مندرجہ بالا تجارت کی حکمت عملی کے نقطہ نظر سے تقسیم کیا گیا ہے ، اور ایجاد کنندہ کی طرف سے حکمت عملی کے ڈیزائن کے نقطہ نظر سے ، حکمت عملی کو بھی تقسیم کیا جاسکتا ہے:
ایکسچینج API انٹرفیس پروگرامنگ ٹرانزیکشن اسکرپٹ ایکسچینج اکاؤنٹس کو کس طرح کام کرتا ہے؟ جواب ایک API انٹرفیس ہے جو ایکسچینج کے ذریعہ کھلا ہے۔ تو تبادلے کے لئے کھلے انٹرفیس کی کیا اقسام ہیں؟ پچھلے مضمون میں ہم نے تبادلے کے سیکشن میں تبادلہ عام طور پر REST ، ویب ساکٹ انٹرفیس کے بارے میں بات کی تھی۔ یہاں ہم حکمت عملی کے پروگرام کی سطح سے تھوڑا سا تصور شامل کرتے ہیں۔ تبادلے کے انٹرفیس کو اس بات پر منحصر کیا گیا ہے کہ آیا وہ تصدیق شدہ ہیں (REST ، ویب ساکٹ دونوں) توثیق شدہ اور غیر توثیق شدہ ہیں۔
بغیر تصدیق کے انٹرفیس
عام طور پر پبلک انٹرفیس پلس کے نام سے جانا جاتا ہے، اس طرح کے انٹرفیس کو تصدیق کی ضرورت نہیں ہےAPI KEY
(اے پی آئی کیوئی کیا ہے بھول کر پچھلے مضمون میں پلٹ سکتے ہیں) ؛ اس طرح کے انٹرفیس عام طور پر مارکیٹ انٹرفیس ہوتے ہیں ، جیسے گہرائی کی مارکیٹ سے پوچھنا ، K لائن کے اعداد و شمار سے پوچھنا ، فنڈز کی شرح سے پوچھنا ، تجارت کی اقسام سے متعلق معلومات سے پوچھنا ، تبادلے کے سرور کے وقت سے پوچھنا وغیرہ۔
سادہ لفظوں میں، آپ کے اکاؤنٹ کے ساتھ بنیادی طور پر کوئی تعلق نہیں ہے کہ ایک انٹرفیس تقریبا یقینی طور پر ایک عوامی انٹرفیس ہے ((کوئی تصدیق کی ضرورت نہیں)
ایجاد کنندہ کے مقداری تجارتی پلیٹ فارم پر ، جب غیر تصدیق شدہ API فنکشن کو بلایا جاتا ہے (مربوط تبادلہ غیر تصدیق شدہ انٹرفیس ، عوامی انٹرفیس) تو API KEY کی ترتیب غلط ہونے کے باوجود بھی انٹرفیس کو واپس آنے والے ڈیٹا کو معمول کے مطابق حاصل کیا جاسکتا ہے۔ (کیونکہ غیر تصدیق شدہ)
انٹرفیس کی تصدیق کی ضرورت ہے سادہ لفظوں میں، یہ انٹرفیس ہیں جن کی تصدیق کی ضرورت ہوتی ہے (API KEY کی توثیق کے ذریعے) ۔ ان انٹرفیسوں کو نجی انٹرفیس کہا جاتا ہے۔ یہ انٹرفیس عام طور پر آپ کے اکاؤنٹ سے متعلق کچھ کارروائیوں یا معلومات سے متعلق ہوتے ہیں ، جیسے اکاؤنٹ کے اثاثوں کا پتہ لگانا ، اکاؤنٹ کی ہولڈنگ کا پتہ لگانا ، انکوائری لگانا ، صرف انکوائری کی منتقلی ، رقم کی منتقلی ، کرنسی کو ایڈجسٹ کرنا ، ہولڈنگ کا اندازہ لگانا وغیرہ۔ ان تمام کارروائیوں کی توثیق ضروری ہے۔ ایجاد کنندہ کوالٹی ٹریڈنگ پلیٹ فارمز پر ، API افعال کو کال کرنے پر تصدیق کی ضرورت ہوتی ہے (مربوط ایکسچینج انٹرفیس کی تصدیق کی ضرورت ہوتی ہے ، نجی انٹرفیس) ، اگر API KEY کو غلط ترتیب دیا جاتا ہے تو ، انٹرفیس کو کال کرنے پر غلطی کی اطلاع دی جاتی ہے ، اور خالی قدر واپس کردی جاتی ہے۔
تو پھر ان انٹرفیسز کو انوینٹرز کے کوانٹیٹیٹڈ ٹریڈنگ پلیٹ فارمز میں کیسے استعمال کیا جاتا ہے؟
ایجاد کنندہ کوالٹی ٹریڈنگ پلیٹ فارم میں تبادلہ کے رویے ، متفقہ طور پر بیان کردہ انٹرفیس (جیسے K لائن انٹرفیس ، گہرائی میں تجارت کرنے والے انٹرفیس ، موجودہ اثاثوں کے انٹرفیس سے پوچھ گچھ کرنے والے انٹرفیس ، ڈاؤن لوڈ کرنے والے انٹرفیس ، انکوائری انٹرفیس وغیرہ) شامل ہیں ، جن کو ایجاد کنندہ کوالٹی ٹریڈنگ پلیٹ فارم پر ایجاد کنندہ کوالٹی ٹریڈنگ پلیٹ فارم API افعال کہا جاتا ہے ، جو API دستاویزات سے پوچھ گچھ کرکے دیکھا جاسکتا ہے۔https://www.fmz.com/api )。
تو پھر ان کے بارے میں کیا خیال ہے کہ ان کے خیالات کو کس طرح استعمال کیا جا سکتا ہے؟
یہ انٹرفیس جیسے: اثاثوں کی منتقلی ، مشروط تفویض ، بلٹ آرڈر ، بلٹ منسوخی ، ترمیم کے احکامات وغیرہ۔ یہ انٹرفیس کچھ تبادلے میں دستیاب ہیں ، کچھ نہیں ، اور افعال ، استعمال کی تفصیلات میں بہت فرق ہوسکتا ہے ، لہذا یہ انٹرفیس ایجاد کنندہ کے مقداری تجارتی پلیٹ فارم پر منظور شدہ ہیں۔exchange.IO
اس فنکشن تک رسائی حاصل کرنے کے لئے ((مزید تفصیلات کے لئے ملاحظہ کریں ایجاد کنندہ کوالٹی ٹریڈنگ پلیٹ فارم API دستاویزات:https://www.fmz.com/api#exchange.io..آئی او کی حکمت عملی کے کچھ مثالیں بھی انوینٹرز کوانٹیمیٹڈ ٹریڈنگ پلیٹ فارم کی حکمت عملی کے میدان میں ہیں۔
کیا تمام API افعال جو ایجاد کنندہ کے API دستاویزات میں موجود ہیں وہ نیٹ ورک کی درخواستیں پیدا کرتے ہیں؟
اگر ہم یہ کہتے ہیں کہ ایکسچینج API انٹرفیس تک رسائی کی تعدد محدود ہے (مثال کے طور پر ایک سیکنڈ میں 5 بار وغیرہ) ، رسائی زیادہ کثرت سے نہیں ہوسکتی ہے ، ورنہ یہ HTTP 429 غلطی کی اطلاع دے گی ، اور اس سے انکار کردیا گیا ہے (زیادہ تر تبادلے 429 کی اطلاع دیتے ہیں) ۔ پھر ایجاد کنندہ کے کوانٹائزڈ ٹریڈنگ پلیٹ فارم پر کال کرنے کے لئے پیکڈ ایکسچینج انٹرفیس پر بھی یہ پابندی ہے ، ایجاد کنندہ کے کوانٹائزڈ ٹریڈنگ پلیٹ فارم پر نیٹ ورک کی درخواست پیدا نہ کرنے والے API افعال کے لئے یہ پابندی نہیں ہے۔ تمام ایجاد کنندہ کوالٹی ٹریڈنگ پلیٹ فارمز کے API افعال نیٹ ورک کی درخواستوں کو پیدا نہیں کرتے ہیں۔ کچھ ایجاد کنندہ کے API افعال صرف کچھ مقامی ترتیبات میں ترمیم کرتے ہیں ، جیسے موجودہ ٹریڈنگ جوڑی کو ترتیب دینا ، معاہدہ کوڈ ترتیب دینا ، اشارے کا حساب لگانے کا کام کرنا ، تبادلہ کرنے والے اعتراض کا نام حاصل کرنا وغیرہ۔ بنیادی طور پر فنکشن کے استعمال سے یہ فیصلہ کیا جاسکتا ہے کہ آیا نیٹ ورک کی درخواست کی گئی ہے ، جب تک کہ ایکسچینج ڈیٹا حاصل کرنے ، ایکسچینج اکاؤنٹ پر کارروائی کرنے وغیرہ کے لئے نیٹ ورک کی درخواستیں پیدا کی جائیں ، ان انٹرفیسز کو کال کی تعدد پر توجہ دینے کی ضرورت ہے۔
یہاں کچھ عام سوالات اور تجربات ہیں جو ایجاد کاروں کو API افعال کے ساتھ استعمال کرتے ہوئے ملتے ہیں۔
غلطی کرنا یہ سب سے عام غلطی ہے ، جس نے بے شمار جدت طرازیوں کو پریشان کیا ، اکثر حکمت عملیوں کو دوبارہ جانچنے کے لئے ، ٹھیک ہے ، سب کچھ ٹھیک ہے ، کیوں کچھ عرصے سے ریئل ڈسک چل رہا ہے (کسی بھی وقت ٹرگر ہوسکتا ہے) اور ریئل ڈسک بند ہوجاتا ہے ~
جب ہم حکمت عملی لکھتے ہیں تو ہمیں انٹرفیس کے ذریعہ واپس آنے والے اعداد و شمار کے بارے میں جائزہ لینے کی ضرورت ہوتی ہے ، مثال کے طور پر موجد کے کوانٹیٹڈ ٹریڈنگ پلیٹ فارم پر تجارت حاصل کرنے کے لئے اس لائن کا کوڈ (یہ خود پروگرام لکھنے کے لئے ایک ہی ہے جو براہ راست تبادلہ انٹرفیس تک رسائی حاصل کرتا ہے):var ticker = exchange.GetTicker()
اگر ہم اس کو استعمال کرنا چاہتے ہیںticker
متغیر (دیکھیں ساخت جس میں GetTicker فنکشن واپس آتا ہے)Last
(تازہ ترین قیمتوں) یہ اعداد و شمار ہیں جو ہمیں استعمال کرنے کی ضرورت ہے۔var newPrice = ticker.Last
یہ اعداد و شمار حاصل کرنے کے لئے ((newPrice کیا ہے؟new: تازہ ترین،Price: قیمت، جی ہاں!GetTicker()
یہ فنکشن معمول کی ڈیٹا واپس کرتا ہے، لیکن اگر کوئی درخواست ٹائم آؤٹ، نیٹ ورک کی خرابی، ایکسچینج کی لائن کو ہٹانے، کیبل کو کھودنے، بچے کو بجلی کے کنڈلی کو کھینچنے وغیرہ وغیرہ کی وجہ سے ہوتا ہے.GetTicker()
فنکشن لوٹتا ہےnull
اس وقتticker
اس کی قدرnull
میں نے اسے دوبارہ دیکھا۔Last
اس کے بعد، آپ کو اس بات کا یقین کرنے کی ضرورت ہے کہ آپ کے پاس کوئی حکمت عملی نہیں ہے.
اس کے نتیجے میں یہ ظاہر ہوتا ہے کہ انٹرفیس کال کی ناکامی (GetTicker کال کی ناکامی null واپس آتی ہے) اس کی براہ راست وجہ نہیں ہے جس کی وجہ سے حکمت عملی ڈسک کو روک دیا گیا ہے (براہ راست وجہ ایک تک رسائی حاصل کرنا ہے)null
متغیر کی خصوصیات) ، انٹرفیس کال کی ناکامی کی اطلاع دی گئی ہے جس کی وجہ سے ڈسک کو روکنے کا سبب نہیں بنتا ہے۔
تو کیا ہم ایسا کر سکتے ہیں کہ یہ ڈرائیو غیر معمولی طور پر بند نہ ہو؟
جواب یہ ہے کہ انٹرفیس کی طرف سے واپس آنے والے اعداد و شمار کو غلط طریقے سے سنبھالنا بہت آسان ہے صرف اس بات کا اندازہ لگانے کے لئے کہ آیا وہ واپس آئے ہیں یا نہیںnull
(جاوا اسکرپٹ زبان مثال کے طور پر، دیگر زبانوں میں تقریبا)
ایک چھوٹا سا کوڈ سیکشن لکھیں (یہ صرف ایک اشارہ ہے، براہ راست چلانے کے لئے ایک مشکل کام ہے!)
var ticker = exchange.GetTicker()
if (ticker) {
var newPrice = ticker.Last
Log("打印最新价格:", newPrice)
} else {
// 数据为null,不做操作就不会出问题
}
صرف نہیںGetTicker
انٹرفیس کو غلط کرنے کی ضرورت ہوتی ہے، نیٹ ورک کی درخواستوں کے ساتھ انٹرفیس کو غلط کرنے کی ضرورت ہوتی ہے (اگر آپ فنکشن کی واپسی کی قیمت کا استعمال کرتے ہیں)
غلطیاں کرنے کے بہت سے طریقے ہیں جو آپ استعمال کر سکتے ہیں۔_C()
افعال (فلمز API دستاویزات ملاحظہ کریں) ، اپنے غلطی کے قابل افعال لکھتے ہیں ، اپنے غلطی کے قابل میکانیزم ، منطق کو ڈیزائن کرتے ہیں۔
کے بارے میں_C()
اگر آپ کو یہ معلوم نہیں ہے کہ آپ کو کیا کرنا ہے تو ، آپ کو یہ بھی معلوم ہونا چاہئے کہ آپ کو کیا کرنا چاہئے۔_C()
فنکشن کے پیرامیٹرز فنکشن حوالہ دیتے ہیں ، فنکشن کال نہیں کرتے ہیں۔_C(funcName, param1, param2)
، کال کریں درست، funcName کو چھوٹا بریکٹ نہیں ہے، param1، param2 funcName کو منتقل کرنے کے لئے پیرامیٹرز ہیں._C(funcName(param1, param2))
اس کے علاوہ ، اس کے بارے میں مزید معلومات کے ل you ، آپ کو اس کے بارے میں مزید جاننے کی ضرورت ہوگی۔
فوری مارکیٹ کی قیمت پر خریداری کا کم سے کم آرڈر
فوری مارکیٹ کی قیمت کے لئے ادائیگی کی مقدار میں بھی بہت زیادہ غلطی ہوتی ہے ، جیسا کہ پچھلے مضمون میں بتایا گیا ہے کہ فوری مارکیٹ کی قیمت کے لئے ادائیگی کی مقدار میں عام طور پر رقم ہوتی ہے ((مختلف تبادلے میں مختلف ترتیبات ہوسکتی ہیں ، عام طور پر ایف ایم زیڈ پر یہ خصوصی تبادلے کی ترتیبات ایف ایم زیڈ API دستاویزات میں بیان کی جاتی ہیں) ، مثال کے طور پر میں نے اوکیکس وی 5 سمیلیٹر کے ساتھ تجربہ کیا:
ٹرانزیکشن جوڑی کو اس طرح ترتیب دیا گیا ہے:LTC_USDT
function main() {
exchange.IO("simulate", true) // 切换为OKEX交易所的模拟盘
exchange.Buy(-1, 1) // 价格是-1,表示下的订单为市价单,数量为1表示下单量是1USDT
}
چونکہ ایکسچینج میں عام طور پر جمع کروانے کی رقم کی حد ہوتی ہے ، لہذا کم سے کم آرڈر پیشگی جمع نہیں ہوتے ہیں (مثال کے طور پر ، بینآن کیش 5USDT سے زیادہ کی ہر اکائی کے لئے کامیاب ہونے کی ضرورت ہوتی ہے) ۔ لہذا ، جمع کروانے میں غلطی ہوتی ہے:
错误 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:]
مستقبل کے وقت کی سمت فیوچر کی حکمت عملی بنانے کے دوران ایک طرفہ سمت بھی ایک مسئلہ ہے جس کی وجہ سے نئے آنے والوں کو اکثر غلطیاں ہوتی ہیں ، مثال کے طور پر موجد کو کوٹیفیکیشن ٹریڈنگ پلیٹ فارم پر حکمت عملی لکھنا۔ اس کے علاوہ ، ہم نے اپنے صارفین کے لئے ایک نیا ایپلی کیشن تیار کیا ہے۔https://www.fmz.com/api#exchange.setdirection...
اور اس کا مطلب یہ ہے کہ یہ صرف ایک ہی ہے.Buy
,Sell
تاہم ، اگر مستقبل (مستقبل کی اشیا کا کوئی مسئلہ نہیں ہے ، صرف خرید و فروخت کی اشیا موجود ہیں) کھلی ، سست ، کھلی ، خالی یا خالی سمتوں میں ہیں تو ، ظاہر ہے کہ خرید / فروخت اس طرح کی کئی سمتوں کا مظاہرہ نہیں کرسکتا ہے ، اس وقت آپ کو اس فنکشن کو متعارف کرانے کی ضرورت ہوگی۔exchange.SetDirection()
◄
ایف ایم زیڈexchange.SetDirection("buy")
(پہلے سے مقرر سمت) اورexchange.Buy
اگر یہ استعمال کیا جاتا ہے تو ، اس کا مطلب یہ ہے کہ مندرجہ ذیل سیٹیں ایک سے زیادہ اسٹاک کا آرڈر ہیں۔
اس طرح کے خیالات:exchange.SetDirection("sell")
اورexchange.Sell
اس کے ساتھ ساتھ استعمال کیا جاتا ہے، اس کا مطلب یہ ہے کہ مندرجہ ذیل سیٹیں خالی اسٹور کے لئے ہیں.exchange.SetDirection("closebuy")
اورexchange.Sell
اگر ہم آہنگ استعمال کیا جائے تو ، اس کا مطلب یہ ہے کہ مندرجہ ذیل سیٹیں بہت سارے اسٹاک کے لئے سستے آرڈر ہیں۔exchange.SetDirection("closesell")
اورexchange.Buy
اگر ہم آہنگ استعمال کریں تو ، یہ ظاہر ہوتا ہے کہ ذیل میں سیلز خالی اسٹور کے احکامات ہیں۔
عام طور پر نئی ملاقاتیںexchange.SetDirection("sell")
اورexchange.Buy
اس کے بعد غلطیاں رپورٹ ہوتی ہیں۔ (دوبارہ جائزہ شاید غلطیاں نہیں بتائے گا ، لیکن یہ واضح طور پر منطقی غلطی ہے ، مجبوری برداشت نہیں کرسکتی ہے...) ۔
ایک اور غلطی جو زین نے اکثر کی
function main() {
exchange.SetContractType("quarter") // 设置当前合约为季度合约
exchange.SetDirection("sell")
var id = exchange.Sell(-1, 1)
Log("看我市价单下单了,成交了,就有持仓了", exchange.GetPosition())
exchange.SetDirection("closebuy") // closebuy 和Sell 搭配使用,嗯没错~
exchange.Sell(-1, 1)
}
یہاں دیکھ کر پوچھیں گے: کیوں میرے پاس ہولڈنگ ہے اور closebuy اور sell بھی مل کر استعمال کیا جاتا ہے ، کیوں غلطی کی اطلاع دی گئی ہے ، اور ہموار نہیں ہوسکتی ہے؟
مندرجہ بالا غلطی کا ایک اور امکان یہ بھی ہے کہ یہ غلطی درج کی گئی ہے: سیدھے موڑ کی سمت درست ہے ، نیچے والے فنکشن کا استعمال بھی درست ہے ، اور اس سمت کی پوزیشن کو برقرار رکھنا ہے ، لیکن پھر بھی یہ غلطی درج کی گئی ہے۔
اس کی وجہ یہ ہے کہ آپ کے پروگرام میں متعدد آرڈر دیئے گئے ہیں ، ابتدائی آرڈر میں کوئی عمل درآمد نہیں ہوا ہے ، اور بلیک آؤٹ آرڈر ڈسک پر ٹرانزیکشن کے منتظر ہے ، اس وقت جب پروگرام بلیک آؤٹ جاری رہتا ہے تو ، بلیک آؤٹ پوزیشن سے آگے کی غلطی کو اشارہ کیا جاتا ہے۔
لاگ آؤٹ پٹ، ٹرانزیکشن کی معلومات دکھائیں
ڈیزائن لکھنے پروگرامنگ، کوانٹیفیکیشن ٹرانزیکشن کی حکمت عملی غیر کھولے ہوئے اعداد و شمار کو ظاہر کرنے کے لئے ایک ہی، ایک ہی آپریٹنگ لاگ آؤٹ پٹ ایک ہی، وغیرہ کے ساتھ مشین کے ساتھ بات چیت کے ڈیزائن؛ عام طور پر مقامی پروگرامنگ زبانوں کا استعمال کرتے ہوئے اصلی ڈسک سکرپٹ، حکمت عملی پروگراموں لکھنے؛ براہ راست موجودہ زبان کی پیداوار افعال کا استعمال کرتے ہوئے.
مثال کے طور پر
python کے ساتھprint
◄
جاوا اسکرپٹconsole.log
◄
گولانگfmt.Println()
◄
C++ استعمال کریںcout
اس کے علاوہ ، ایف ایم زیڈ پلیٹ فارم پر موجود معلومات سے پتہ چلتا ہے کہ ایجاد کنندہ کے مقداری تجارتی پلیٹ فارم پر ، جہاں معلومات دکھائی جاتی ہیں وہاں دو اہم مقامات ہیں۔
حالت ایک بار جب یہ کام کرتا ہے تو، یہ صفحہ ظاہر ہوتا ہے.
اسٹیٹس ٹیب میں کچھ معلومات دکھائی جاتی ہیں ، اسٹیٹس ٹیب بنیادی طور پر کچھ حقیقی وقت کی تبدیلیوں کو ظاہر کرنے کے لئے ہے ((کیونکہ حقیقی وقت کی تبدیلیوں کو حقیقی وقت میں مشاہدہ کرنے کی ضرورت ہوتی ہے ، اور ہر بار لاگ میں پرنٹ نہیں کیا جاسکتا ہے ، لہذا اس طرح کے اعداد و شمار کو اسٹیٹس ٹیب میں دکھایا جاسکتا ہے ، اگر ہر بار لاگ پرنٹ کیا جائے تو بہت سارے بے معنی اعداد و شمار کی تکرار ہوگی ، جس سے سوالات متاثر ہوں گے)) ۔
اعداد و شمار کے استعمال کو اسٹیٹس بار پر دکھائیںLogStatus
اس کے علاوہ، آپ FMZ کے API دستاویزات کو دیکھ سکتے ہیں.
ڈائجسٹ اس کے علاوہ، یہ بھی ایک حقیقی ڈسک کے صفحے پر دکھایا گیا ہے، جیسا کہ یہ دکھایا گیا ہے:
اس کے علاوہ، آپ کو ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر. اس کے علاوہ ، آپ کو اپنی ویب سائٹ کے بارے میں مزید جاننے کی ضرورت ہے۔ 1، عام لاگ، ایف ایم زیڈ کی پالیسی میں لاگ فنکشن کا استعمال کرتے ہوئے آؤٹ پٹ، پالیسی لاگ میں پرنٹ کریں۔
ایف ایم زیڈ کی حکمت عملی میں استعمال کیا جاتا ہے۔exchange.Sell
/exchange.Buy
اس کے بعد، آپ کو اپنے لاگ ان میں خود کار طریقے سے ریکارڈ آؤٹ پٹ کرنے کی ضرورت ہے۔
ایف ایم زیڈ کی حکمت عملی میں استعمال ہونے والے 3، ڈیبٹ لاگexchange.CancelOrder
اس کے بعد ، آپ کو اپنے اکاؤنٹ میں لاگ ان کرنے کی ضرورت ہوگی۔
4، غلط لاگ، FMZ کی پالیسی چلتی ہے، جب نیٹ ورک کی درخواست کرنے والے انٹرفیس کو کال کرنے میں غلطی ہوتی ہے، جب غیر معمولی (جیسے تھرو جیسے جملے) پھینک دیا جاتا ہے تو، یہ خود بخود لاگ میں غلط لاگ آؤٹ کرتا ہے۔
ایف ایم زیڈ کے API افعال ، جو لاگ ان آؤٹ پٹ افعال جیسے لاگ ((...) ، exchange.Buy ((Price, Amount) ، exchange.CancelOrder ((Id)) وغیرہ پیدا کرسکتے ہیں ، ضروری پیرامیٹرز کے بعد کچھ اضافی آؤٹ پٹ پیرامیٹرز کے ساتھ ، جیسے: exchange.CancelOrder ((orders[j].Id ، orders[j]) ، لہذا جب آرڈر کو منسوخ کیا جاتا ہے تو ، آرڈر کی معلومات کو ضم کیا جاتا ہے۔
function main() {
Log("数据1", "数据2", "数据3", "...")
var data2 = 200
var id = exchange.Sell(100000, 0.1, "附带数据1", data2, "...")
exchange.CancelOrder(id, "附带数据1", data2, "...")
LogProfit(100, "附带数据1", data2, "...")
}
اشارے کے افعال کا استعمال
اس سے پہلے کہ ہم اشارے کے افعال کے بارے میں بات کریں ، ہمیں پہلے معلوم ہونا چاہئے کہ اشارے کیا ہیں ، جو کہ سیدھے سیدھے لائن ، MACD ، ATR ، وغیرہ ہیں۔
سوال: یہ اشارے کہاں سے آئے ہیں؟
جواب: یقیناً۔
سوال: کس بنیاد پر؟
جواب: K لائن کے اعداد و شمار کے مطابق۔
سوال: مثال کے طور پر؟
جواب: اگر ہم ایک دن کے لئے ایک دن کی لائن (یعنی ایک سورج کی لائن یا ایک دن کی نمائندگی کرتا ہے) کے اعداد و شمار کا استعمال کرتے ہیں تو، ہم اس کے اعداد و شمار کے ذریعہ اعداد و شمار کا استعمال کرتے ہیں.
سوال: اگر K لائن BAR کی تعداد 10 سے کم ہے تو کیا ہم اس کی اوسط لائن کا حساب لگاسکتے ہیں؟
جواب: نہ صرف ہموار اشاریہ قابل حساب نہیں ہے ، کسی بھی اشاریہ کے لئے ایک مؤثر اشاریہ کی قدر قابل حساب نہیں ہے جب K لائن ڈیٹا BAR کی تعداد اشاریہ کے دورانیے کی پیرامیٹرز کو پورا نہیں کرتی ہے ، حساب شدہ صفوں کے مطابق مقامات پر خالی جگہیں بھری جاتی ہیں ، مثال کے طور پرJavaScript
جب زبان کی حکمت عملی پرنٹ کی گئی اشارے کے اعداد و شمار کو ظاہر کرتی ہےnull
。
اس کے علاوہ ، اس کے بارے میں مزید معلومات حاصل کرنے کے لئے ، ہم آپ کو اس کے بارے میں بتاتے ہیں:https://www.fmz.com/strategy/125770اس سبق کی مثال کی حکمت عملی کو دوبارہ جانچنے کے بعد ، آپ کو ایک گراف نظر آئے گا جو ریورس سسٹم کے ذریعہ تیار کیا گیا ہے اور 10 دوروں کی اوسط لائن:
اپنی مرضی کے مطابق ڈرائنگ گراف، کٹر لائنز اور ہموار لائن چارٹ بنانے کی حکمت عملی:
سوال: اگر میں 10 گھنٹے کی اوسط لائن چاہتا ہوں تو کیا ہوگا؟ جواب: K لائن کے اعداد و شمار کو گھنٹے کے دورانیے کے لئے K لائن کے اعداد و شمار کے ساتھ استعمال کیا جا سکتا ہے.
عام طور پر کہا جاتا ہے کہ ہم جو K لائن دیکھتے ہیں ، ہم اسے ڈیٹاائز کرنے کے بعد ایک صف ہے (مجموعہ کا تصور نہیں سمجھا جاتا ہے ، باؤڈے میں جاسکتا ہے) ، جس میں ہر عنصر ایک K لائن کالم ہے ، جو ترتیب میں ترتیب دیا گیا ہے ، صف کا پہلا عنصر موجودہ وقت سے دور ترین ہے ، صف کا آخری عنصر موجودہ وقت سے قریب ترین ہے۔ عام طور پر K لائن کے اعداد و شمار کا آخری لائن کالم موجودہ دورانیے کا لائن کالم ہوتا ہے ، جو حقیقی وقت میں بدلتا ہے ، اور یہ نامکمل ہوتا ہے ((ایک تبادلے کے صفحے پر لاگ ان کریں اور اس کے K لائن کو دیکھیں تو اس میں تبدیلی دیکھی جاسکتی ہے) ؛ شمار کردہ اشارے بھی K لائن کالم کے برابر ہوتے ہیں ، مندرجہ بالا مثال میں دیکھا جاسکتا ہے کہ ایک اشارے کی قدر ایک K لائن کالم کے برابر ہے۔ نوٹ کریں کہ آخری K لائن کالم حقیقی وقت میں بدلتا ہے ، شمار کردہ اشارے بھی K لائن کالم کی تبدیلی کے ساتھ بدلتے ہیں۔
ایجاد کنندہ کوالٹی ٹریڈنگ پلیٹ فارم پر ، ٹی اے اسٹوری (ایف ایم زیڈ پلیٹ فارم کے ذریعہ نافذ کردہ اسٹوری ، میزبان میں مربوط ، مختلف زبانوں میں براہ راست استعمال کے قابل) یا طالب اسٹوری (طالب پرانے اشارے اسٹوری ، جے ایس ، سی ++ انضمام ، پطرون کو خود انسٹال کرنے کی ضرورت ہے) کا استعمال کیا جاسکتا ہے۔ مثال کے طور پر، مندرجہ بالا مثال میں، ہموار حساب لگائیں: ٹی اے لائبریری کا استعمال:
function main() {
var records = exchange.GetRecords()
var ma = TA.MA(records, 10)
Log(ma) // 打印均线
}
طالبان کا استعمال:
function main() {
var records = exchange.GetRecords()
var ma = talib.MA(records, 10)
Log(ma) // 打印均线
}
اعداد و شمار کے حساب سے اشارے ma ایک صف ہے جس میں ہر عنصر کے لئے ایک کے مطابق ہے K لائن صف (ریکارڈ) ، یعنیma[ma.length -1]
مطابقتrecords[records.length - 1]
اس طرح کے خیالات کے ساتھ۔
اس کے علاوہ، دیگر پیچیدہ اشارے بھی اسی طرح کے ہیں، جیسے MACD.
var macd = TA.MACD(records) // 这样只传入K线数据,不传入指标参数,指标参数采用的就是默认值,其它指标函数也是同理
اس وقت MACD متغیر ایک دو جہتی صف ہے (مجھے اس تصور کی سمجھ نہیں ہے) ، دو جہتی صفوں کو صرف ایک صف کہا جاتا ہے جس میں ہر عنصر بھی ایک صف ہے۔ سوال: MACD اشارے کا ڈیٹا دو جہتی صف کیوں ہے؟ جواب: چونکہ MACD اشارے دو لائنوں (ڈیف لائن، ڈی اے لائن) اور مقدار کے کالموں (MacD مقدار کالم، جس میں مقدار کالم کے اعداد و شمار کو بھی ایک لائن کے طور پر دیکھا جا سکتا ہے) کے ایک سیٹ پر مشتمل ہے؛ لہذا MACD متغیر کو تقسیم کیا جا سکتا ہے:
var dif = macd[0]
var dea = macd[1]
var macdColumn = macd[2]
یہاں ایک اور مثال ہے جو پہلے سے تیار کی گئی ہے اور دلچسپ تحقیق ہے:https://www.fmz.com/strategy/151972