نظام کا موجودہ ورژن نمبر لوٹاتا ہے۔
موجودہ سسٹم ورژن نمبر، جیسے:3.6
.
سٹرنگ
ورژن
function main() {
Log("version:", Version())
}
def main():
Log("version:", Version())
void main() {
Log("version:", Version());
}
سسٹم ورژن نمبر ڈوکر کے پروگرام کا ورژن نمبر ہے۔
نیند کا فنکشن، جس کی وجہ سے پروگرام ایک عرصے تک رک جاتا ہے۔
نیند ((ملسی سیکنڈ)
کےmillisecond
پیرامیٹر نیند کی مدت اور ملی سیکنڈ کی تعداد مقرر کرنے کے لئے استعمال کیا جاتا ہے.
ملی سیکنڈ
سچ
نمبر
function main() {
Sleep(1000 * 10) // Wait for 10 seconds
Log("Waited for 10 seconds")
}
def main():
Sleep(1000 * 10)
Log("Waited for 10 seconds")
void main() {
Sleep(1000 * 10);
Log("Waited for 10 seconds");
}
مثال کے طور پر،Sleep(1000)
تقریب، پروگرام 1 سیکنڈ کے لئے سوتے گا. یہ 1 ملی سیکنڈ سے کم سوتے وقت کے ساتھ آپریشن کی حمایت، مثال کے طور پر ترتیبSleep(0.1)
یہ کم از کم پیرامیٹر کی حمایت کرتا ہے0.000001
، یعنی نینو سیکنڈ ہائبرنیشن، جہاں 1 نینو سیکنڈ کے برابر ہے1e-6
ملی سیکنڈ.
میں حکمت عملی لکھنے جبPython
زبان،Sleep(millisecond)
کے لئے استعمال کیا جانا چاہئے پولنگ وقفہ، وقت انتظار کے آپریشن.time.sleep(second)
فنکشنPython
ہےtime
لائبریری. اس کا سبب یہ ہے کہtime.sleep(second)
ایک حکمت عملی میں فنکشن حکمت عملی پروگرام کو وقت کی ایک مدت کے لئے انتظار کرتا ہے اصل میں جب بیک ٹیسٹنگ (بیک ٹیسٹنگ سسٹم کی ٹائم سیریز پر کود نہیں) ، لہذا یہ حکمت عملی کو بہت آہستہ آہستہ بیک ٹیسٹ کرنے کا سبب بنتا ہے۔
اس بات کا تعین کریں کہ حکمت عملی کا چلانے کا ماحول بیک ٹسٹنگ سسٹم ہے یا نہیں۔
حکمت عملی ایک حقیقی قدر لوٹاتا ہے، مثال کے طور پر:true
جب بیک ٹسٹنگ سسٹم ماحول میں چلتا ہے۔ حکمت عملی ایک غلط قدر لوٹاتی ہے ، مثال کے طور پر:false
جب ایک زندہ ٹریڈنگ ماحول میں چل رہا ہے.
بول
ورچوئل ہے
function main() {
if (IsVirtual()) {
Log("The current backtest system environment.")
} else {
Log("The current live trading environment.")
}
}
def main():
if IsVirtual():
Log("The current backtest system environment.")
else:
Log("The current live trading environment.")
void main() {
if (IsVirtual()) {
Log("The current backtest system environment.");
} else {
Log("The current live trading environment.");
}
}
اس بات کا تعین کریں کہ آیا موجودہ چلنے والا ماحول بیک ٹسٹنگ سسٹم ہے ، جس کا استعمال بیک ٹسٹنگ اور براہ راست تجارت کے مابین فرق کے ساتھ ہم آہنگ ہونے کے لئے کیا جاتا ہے۔
ایک ای میل بھیجیں.
ایک کامیاب ای میل کی ترسیل ایک حقیقی قدر لوٹاتا ہے، مثال کے طور پر،true
، اور ایک ناکام ترسیل ایک غلط قدر لوٹاتا ہے، مثال کے طور پر،false
.
بول
میل ((smtpسرور، smtpصارف نام، smtpپاس ورڈ، mailTo، عنوان، جسم)
مخصوص کرنے کے لئے استعمالSMTP
ای میل بھیجنے والے کا سروس ایڈریس۔
smtpسرور
سچ
سٹرنگ
ای میل بھیجنے والے کا ای میل ایڈریس بتانے کے لئے استعمال کیا جاتا ہے۔
smtpصارف کا نام
سچ
سٹرنگ
کےSMTP
ای میل بھیجنے والے کے میل باکس کا پاس ورڈ۔
smtp پاس ورڈ
سچ
سٹرنگ
ای میل وصول کنندہ کا ای میل پتہ بتانے کے لئے استعمال کیا جاتا ہے۔
میل ٹو
سچ
سٹرنگ
ای میل کا عنوان۔
عنوان
سچ
سٹرنگ
ای میل جسم.
جسم
سچ
سٹرنگ
function main(){
Mail("smtp.163.com", "asdf@163.com", "password", "111@163.com", "title", "body")
}
def main():
Mail("smtp.163.com", "asdf@163.com", "password", "111@163.com", "title", "body")
void main() {
Mail("smtp.163.com", "asdf@163.com", "password", "111@163.com", "title", "body");
}
کےsmtpPassword
پیرامیٹر کے لئے پاس ورڈ مقرر کرتا ہےSMTP
سروس، میل باکس کا پاس ورڈ نہیں.
سیٹ اپ کرتے وقتsmtpServer
پیرامیٹر، اگر آپ کو بندرگاہ کو تبدیل کرنے کی ضرورت ہے، آپ کو براہ راست پیرامیٹر میں بندرگاہ نمبر شامل کر سکتے ہیںsmtpServer
مثال کے طور پر: کیو کیو میلsmtp.qq.com:587
، جو ٹیسٹنگ کے لیے دستیاب ہے۔
اگر غلطی کی اطلاع دی جائے تو:unencryped connection
، آپ کو ترمیم کرنے کی ضرورت ہےsmtpServer
کےMail
فنکشن۔ پیرامیٹر فارمیٹ ہے:ssl://xxx.com:xxx
، مثال کے طور پر،ssl
طریقہ کارSMTP
کیو کیو میل کے لئے:ssl://smtp.qq.com:465
یاsmtp://xxx.com:xxx
.
یہ بیک ٹیسٹنگ سسٹم میں کام نہیں کرتا.
{@fun/Global/Mail_Go میل_Go}
کے asynchronous ورژنMail
function.
کےMail_Go
تقریب فوری طور پر ایک متوازی اعتراض واپس، اور آپ کو استعمال کر سکتے ہیںwait
میل کی ترسیل کا نتیجہ حاصل کرنے کے لئے اس متوازی اعتراض کا طریقہ۔ ایک کامیاب میل کی ترسیل ایک حقیقی قدر واپس کرتی ہے ، مثال کے طور پر ،true
، اور ایک ناکام ترسیل ایک غلط قدر لوٹاتا ہے، مثال کے طور پر،false
.
چیز
Mail_Go ((smtpسرور، smtpصارف نام، smtpپاس ورڈ، mailTo، عنوان، جسم)
یہ SMTP
ای میل بھیجنے والے کا سروس ایڈریس۔
smtpسرور
سچ
سٹرنگ
یہ ای میل بھیجنے والے کے ای میل ایڈریس کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
smtpصارف کا نام
سچ
سٹرنگ
کےSMTP
ای میل بھیجنے والے کے میل باکس کا پاس ورڈ۔
smtp پاس ورڈ
سچ
سٹرنگ
یہ ای میل وصول کنندہ کے ای میل ایڈریس کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
میل ٹو
سچ
سٹرنگ
ای میل کا عنوان۔
عنوان
سچ
سٹرنگ
ای میل جسم.
جسم
سچ
سٹرنگ
function main() {
var r1 = Mail_Go("smtp.163.com", "asdf@163.com", "password", "111@163.com", "title", "body")
var r2 = Mail_Go("smtp.163.com", "asdf@163.com", "password", "111@163.com", "title", "body")
var ret1 = r1.wait()
var ret2 = r2.wait()
Log("ret1:", ret1)
Log("ret2:", ret2)
}
# Not supported.
// Not supported.
یہ بیک ٹیسٹنگ سسٹم میں کام نہیں کرتا.
{@ تفریح/گلوبل/میل میل}
فلٹر غلطی کے نوشتہ جات.
SetErrorFilter ((فلٹرز)
باقاعدہ اظہار تار. فلٹر سچ سٹرنگ
function main() {
SetErrorFilter("502:|503:|tcp|character|unexpected|network|timeout|WSARecv|Connect|GetAddr|no such|reset|http|received|EOF|reused")
}
def main():
SetErrorFilter("502:|503:|tcp|character|unexpected|network|timeout|WSARecv|Connect|GetAddr|no such|reset|http|received|EOF|reused")
void main() {
SetErrorFilter("502:|503:|tcp|character|unexpected|network|timeout|WSARecv|Connect|GetAddr|no such|reset|http|received|EOF|reused");
}
عام غلطیوں کو فلٹر کرنا۔
function main() {
// A random query for a non-existent order with an id of 123, allowing the interface to report an error deliberately
var order = exchange.GetOrder("123")
Log(order)
// Filter http502 errors, GetOrder interface errors, after setting the error filter, the second call to GetOrder will no longer report errors
SetErrorFilter("502:|GetOrder")
order = exchange.GetOrder("123")
Log(order)
}
def main():
order = exchange.GetOrder("123")
Log(order)
SetErrorFilter("502:|GetOrder")
order = exchange.GetOrder("123")
Log(order)
void main() {
TId orderId;
Order order = exchange.GetOrder(orderId);
Log(order);
SetErrorFilter("502:|GetOrder");
order = exchange.GetOrder(orderId);
Log(order);
}
ایک انٹرفیس غلطی پیغام فلٹر کریں.
اس باقاعدہ اظہار سے ملنے والے غلطی کے نوشتہ جات کو لاگ سسٹم میں اپ لوڈ نہیں کیا جائے گا۔ آپ اسے متعدد بار (وقت کی تعداد پر کوئی حد نہیں) کال کر سکتے ہیں تاکہ متعدد فلٹر کی شرائط طے کی جاسکیں۔ متعدد بار طے شدہ باقاعدہ اظہار جمع ہوجائیں گے اور ایک ہی وقت میں اثر انداز ہوجائیں گے۔ آپ غلطی کے نوشتہ جات کو فلٹر کرنے کے لئے استعمال ہونے والے باقاعدہ اظہار کو ری سیٹ کرنے کے لئے ایک خالی تار طے کرسکتے ہیں۔SetErrorFilter("")
. فلٹر شدہ لاگ اب ڈوکر ڈائرکٹری میں لائیو ٹریڈنگ ID کے مطابق ڈیٹا بیس فائل میں نہیں لکھے جاتے ہیں تاکہ ڈیٹا بیس فائل کو پھولنے سے اکثر غلطی کی اطلاع دینے سے بچایا جاسکے۔
لائیو ٹریڈنگ کے عمل کی شناخت حاصل کریں.
لائیو ٹریڈنگ کے عمل کی شناخت واپس کریں۔ سٹرنگ
GetPid ((()
function main(){
var id = GetPid()
Log(id)
}
def main():
id = GetPid()
Log(id)
void main() {
auto id = GetPid();
Log(id);
}
آخری غلطی کا پیغام حاصل کریں.
آخری غلطی کا پیغام. سٹرنگ
GetLastError()
function main(){
// Because the order number 123 does not exist, so there will be an error.
exchange.GetOrder("123")
var error = GetLastError()
Log(error)
}
def main():
exchange.GetOrder("123")
error = GetLastError()
Log(error)
void main() {
// Order ID type: TId, so you can't pass in a string, we place an order that doesn't meet the exchange specification to trigger
exchange.GetOrder(exchange.Buy(1, 1));
auto error = GetLastError();
Log(error);
}
یہ بیک ٹیسٹنگ سسٹم میں کام نہیں کرتا.
اسٹریٹجی انٹرایکشن کمانڈ حاصل کرتا ہے.
واپسی کمانڈ کی شکل ہےControlName:Data
. ControlName
کنٹرول کا نام ہے، اورData
کنٹرول میں درج کردہ ڈیٹا ہے۔ اگر انٹرایکٹو کنٹرول میں ان پٹ باکس ، ڈراپ ڈاؤن باکس اور دیگر اجزاء نہیں ہیں (مثال کے طور پر ان پٹ باکس کے بغیر بٹن کنٹرول) تو واپس آنے والا کمانڈ فارمیٹ ہےControlName
، جو صرف کنٹرول کا نام واپس کرتا ہے.
سٹرنگ
کمانڈ حاصل کریں
function main(){
while(true) {
var cmd = GetCommand()
if (cmd) {
Log(cmd)
}
Sleep(1000)
}
}
def main():
while True:
cmd = GetCommand()
if cmd:
Log(cmd)
Sleep(1000)
void main() {
while(true) {
auto cmd = GetCommand();
if(cmd != "") {
Log(cmd);
}
Sleep(1000);
}
}
تعامل کمانڈ کا پتہ لگاتا ہے اور استعمال کرتا ہےLog
جب یہ پتہ چلا جاتا ہے جب انٹرایکشن کمانڈ کو آؤٹ پٹ کرنے کے لئے تقریب.
function main() {
while (true) {
LogStatus(_D())
var cmd = GetCommand()
if (cmd) {
Log("cmd:", cmd)
var arr = cmd.split(":")
if (arr[0] == "buy") {
Log("Buy, the control without number")
} else if (arr[0] == "sell") {
Log("Sell, the control with the number of:", arr[1])
} else {
Log("Other controls trigger:", arr)
}
}
Sleep(1000)
}
}
def main():
while True:
LogStatus(_D())
cmd = GetCommand()
if cmd:
Log("cmd:", cmd)
arr = cmd.split(":")
if arr[0] == "buy":
Log("Buy, the control without number")
elif arr[0] == "sell":
Log("Sell, the control with the number of:", arr[1])
else:
Log("Other controls trigger:", arr)
Sleep(1000)
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
void split(const string& s,vector<string>& sv,const char flag = ' ') {
sv.clear();
istringstream iss(s);
string temp;
while (getline(iss, temp, flag)) {
sv.push_back(temp);
}
return;
}
void main() {
while(true) {
LogStatus(_D());
auto cmd = GetCommand();
if (cmd != "") {
vector<string> arr;
split(cmd, arr, ':');
if(arr[0] == "buy") {
Log("Buy, the control without number");
} else if (arr[0] == "sell") {
Log("Sell, the control with the number of:", arr[1]);
} else {
Log("Other controls trigger:", arr);
}
}
Sleep(1000);
}
}
مثال کے طور پر حکمت عملی انٹرایکٹو کنٹرول ان پٹ باکس کے بغیر ایک کنٹرول شامل کرتا ہے، انٹرایکٹو کنٹرول کا نام ہے:buy
، کنٹرول کی تفصیل کی معلومات یہ ہے:buy
، جو ایک بٹن کنٹرول ہے۔ ان پٹ باکس کے ساتھ ایک کنٹرول شامل کرکے جاری رکھیں۔ انٹرایکٹو کنٹرول کا نام ہے:sell
اور کنٹرول کی تفصیل کا پیغام ہے:sell
، جو ایک انٹرایکٹو کنٹرول ہے جو ایک بٹن اور ان پٹ باکس کا امتزاج ہے۔ انٹرایکشن کوڈ کو مختلف انٹرایکشن کنٹرولز کا جواب دینے کے لئے حکمت عملی میں ڈیزائن کیا گیا ہے۔
یہ بیک ٹیسٹنگ سسٹم میں کام نہیں کرتا.
حکمت عملی رجسٹریشن کوڈ پیدا کرتے وقت میٹا کی قدر لکھا حاصل کریں.
Meta
ڈیٹا.
سٹرنگ
GetMeta()
function main() {
// The maximum asset value of the denominated currency allowed by the strategy.
var maxBaseCurrency = null
// Get the metadata when creating the registration code.
var level = GetMeta()
// Detecting the conditions corresponding to Meta.
if (level == "level1") {
// -1 for unrestricted
maxBaseCurrency = -1
} else if (level == "level2") {
maxBaseCurrency = 10
} else if (level == "level3") {
maxBaseCurrency = 1
} else {
maxBaseCurrency = 0.5
}
while(1) {
Sleep(1000)
var ticker = exchange.GetTicker()
// Detect asset values
var acc = exchange.GetAccount()
if (maxBaseCurrency != -1 && maxBaseCurrency < acc.Stocks + acc.FrozenStocks) {
// Stop executing strategy trading logic
LogStatus(_D(), "level:", level, "Positions exceeding the usage limit of the registration code will no longer execute the strategy trading logic!")
continue
}
// Other trading logic
// Normal output of status bar information
LogStatus(_D(), "level:", level, "The strategy is working properly! ticker data: \n", ticker)
}
}
def main():
maxBaseCurrency = null
level = GetMeta()
if level == "level1":
maxBaseCurrency = -1
elif level == "level2":
maxBaseCurrency = 10
elif level == "level3":
maxBaseCurrency = 1
else:
maxBaseCurrency = 0.5
while True:
Sleep(1000)
ticker = exchange.GetTicker()
acc = exchange.GetAccount()
if maxBaseCurrency != -1 and maxBaseCurrency < acc["Stocks"] + acc["FrozenStocks"]:
LogStatus(_D(), "level:", level, "Positions exceeding the usage limit of the registration code will no longer execute the strategy trading logic!")
continue
# Other trading logic
# Normal output of status bar information
LogStatus(_D(), "level:", level, "The strategy is working properly! ticker data: \n", ticker)
void main() {
auto maxBaseCurrency = 0.0;
auto level = GetMeta();
if (level == "level1") {
maxBaseCurrency = -1;
} else if (level == "level2") {
maxBaseCurrency = 10;
} else if (level == "level3") {
maxBaseCurrency = 1;
} else {
maxBaseCurrency = 0.5;
}
while(1) {
Sleep(1000);
auto ticker = exchange.GetTicker();
auto acc = exchange.GetAccount();
if (maxBaseCurrency != -1 && maxBaseCurrency < acc.Stocks + acc.FrozenStocks) {
// Stop execution strategy trading logic.
LogStatus(_D(), "level:", level, "Positions exceeding the usage limit of the registration code will no longer execute the strategy trading logic!");
continue;
}
// Other trading logic
// Normal output of status bar information
LogStatus(_D(), "level:", level, "The strategy is working properly! ticker data: \n", ticker);
}
}
مثال کے طور پر درخواست کا منظر نامہ: استعمالMeta
حکمت عملی کے ذریعہ چلائے جانے والے اثاثوں کی مقدار کو محدود کرنا۔
درخواست کے منظر نامے: مختلف حکمت عملی کرایہ داروں کے لئے کیپٹل حدود کرنے کی ضرورت ہے.Meta
رجسٹریشن کوڈ پیدا کرتے وقت مقرر کردہ قدر 190 حروف سے زیادہ نہیں ہوسکتی ہے اورGetMeta()
اگر کوئی میٹا ڈیٹا (Meta
) ایک حکمت عملی رجسٹریشن کوڈ پیدا کرنے کے وقت مقرر کیا جاتا ہے،GetMeta()
فنکشن null لوٹاتا ہے۔ یہ بیک ٹسٹنگ سسٹم میں کام نہیں کرتا ہے۔
ابتدائی کے لئےSocket
رسائی، حمایتtcp
, udp
, tls
, unix
پروٹوکول۔ 4 مقبول مواصلاتی پروٹوکول کی حمایت:mqtt
, nats
, amqp
, kafka
ڈیٹا بیس سے رابطہ قائم کرنے کی حمایت:sqlite3
, mysql
, postgres
, clickhouse
.
کےDial()
اگر یہ ٹائم آؤٹ ہوتا ہے تو فنکشن null لوٹاتا ہے۔ ایک عام کال ایک کنکشن آبجیکٹ لوٹاتا ہے جس میں تین طریقے ہیں:read
, write
اورclose
.read
ڈیٹا کو پڑھنے کے لئے استعمال کیا جاتا ہے،write
ڈیٹا بھیجنے کے لئے استعمال کیا جاتا ہے اورclose
کنکشن بند کرنے کے لئے استعمال کیا جاتا ہے.
کےread
طریقہ مندرجہ ذیل پیرامیٹرز کی حمایت کرتا ہے:
ws.read()
.ws.read(2000)
دو سیکنڈ (2000 ملی سیکنڈ) کا ٹائم آؤٹ بتاتا ہے۔-1
اس کا مطلب یہ ہے کہ فنکشن فوری طور پر پیغام کی موجودگی یا غیر موجودگی سے قطع نظر واپس آتا ہے، مثال کے طور پر:ws.read(-1)
.
پیرامیٹر منتقل کرنا-2
اس کا مطلب یہ ہے کہ فنکشن فوری طور پر پیغام کے ساتھ یا اس کے بغیر واپس آتا ہے ، لیکن صرف تازہ ترین پیغام واپس کیا جاتا ہے ، اور بفر شدہ پیغام کو ضائع کردیا جاتا ہے۔ مثال کے طور پر ،ws.read(-2)
.read()
فنکشن بفر کی تفصیل:
ویب ساکٹ پروٹوکول کی طرف سے دھکا آنے والے اعداد و شمار کی حکمت عملی کے درمیان وقت کے وقفے اگر ڈیٹا جمع ہو سکتا ہےread()
فنکشن کالز بہت لمبی ہوتی ہیں۔ یہ ڈیٹا بفر میں محفوظ ہوتے ہیں ، جس میں زیادہ سے زیادہ 2000 کی قطار کی ڈیٹا ڈھانچہ ہوتی ہے۔ 2000 سے تجاوز کرنے کے بعد ، تازہ ترین ڈیٹا بفر میں داخل ہوتا ہے اور پرانے ڈیٹا کو صاف کردیا جاتا ہے۔
منظرنامہ | کوئی پیرامیٹر نہیں | پیرامیٹر: -1 | پیرامیٹر: -2 | پیرامیٹر: 2000، ملی سیکنڈ میں |
---|---|---|---|---|
ڈیٹا پہلے ہی بفر میں ہے | فوری طور پر سب سے پرانے اعداد و شمار کو واپس کریں | فوری طور پر سب سے پرانے اعداد و شمار کو واپس کریں | فوری طور پر تازہ ترین ڈیٹا واپس کریں | فوری طور پر سب سے پرانے اعداد و شمار کو واپس کریں |
بفر میں کوئی ڈیٹا نہیں | جب ڈیٹا کو بلاک کیا جائے تو واپس کریں | فوری طور پر null لوٹائیں | فوری طور پر null لوٹائیں | انتظار کریں 2000 MS، null واپس اگر کوئی ڈیٹا نہیں ہے، null واپس اگر کوئی ڈیٹا ہے |
WebSocket کنکشن منقطع یا بنیادی کی طرف سے دوبارہ منسلک کیا جاتا ہے | read() فنکشن خالی سٹرنگ لوٹاتا ہے ، یعنی: |
چیز
ڈائل (ایڈریس) ڈائل کریں (ایڈریس، ٹائم آؤٹ)
درخواست کا پتہ۔ ایڈریس سچ سٹرنگ ٹائم آؤٹ سیکنڈ، ٹائم آؤٹ غلط نمبر
function main(){
// Dial supports tcp://,udp://,tls://,unix://protocol, you can add a parameter to specify the number of seconds for the timeout
var client = Dial("tls://www.baidu.com:443")
if (client) {
// write can be followed by a numeric parameter to specify the timeout, write returns the number of bytes successfully sent
client.write("GET / HTTP/1.1\nConnection: Closed\n\n")
while (true) {
// read can be followed by a numeric parameter specifying the timeout in milliseconds. Returning null indicates an error or timeout or that the socket has been closed
var buf = client.read()
if (!buf) {
break
}
Log(buf)
}
client.close()
}
}
def main():
client = Dial("tls://www.baidu.com:443")
if client:
client.write("GET / HTTP/1.1\nConnection: Closed\n\n")
while True:
buf = client.read()
if not buf:
break
Log(buf)
client.close()
void main() {
auto client = Dial("tls://www.baidu.com:443");
if(client.Valid) {
client.write("GET / HTTP/1.1\nConnection: Closed\n\n");
while(true) {
auto buf = client.read();
if(buf == "") {
break;
}
Log(buf);
}
client.close();
}
}
ڈائل فنکشن کال کا مثال:
function main() {
LogStatus("Connecting...")
// Accessing WebSocket interface of Binance
var client = Dial("wss://stream.binance.com:9443/ws/!ticker@arr")
if (!client) {
Log("Connection failed, program exited")
return
}
while (true) {
// read returns only the data retrieved after the read call
var buf = client.read()
if (!buf) {
break
}
var table = {
type: 'table',
title: 'Ticker Chart',
cols: ['Currency', 'Highest', 'Lowest', 'Buy 1', 'Sell 1', 'Last traded price', 'Volume', 'Update time'],
rows: []
}
var obj = JSON.parse(buf)
_.each(obj, function(ticker) {
table.rows.push([ticker.s, ticker.h, ticker.l, ticker.b, ticker.a, ticker.c, ticker.q, _D(ticker.E)])
})
LogStatus('`' + JSON.stringify(table) + '`')
}
client.close()
}
import json
def main():
LogStatus("Connecting...")
client = Dial("wss://stream.binance.com:9443/ws/!ticker@arr")
if not client:
Log("Connection failed, program exited")
return
while True:
buf = client.read()
if not buf:
break
table = {
"type" : "table",
"title" : "Ticker Chart",
"cols" : ['Currency', 'Highest', 'Lowest', 'Buy 1', 'Sell 1', 'Last traded price', 'Volume', 'Update time'],
"rows" : []
}
obj = json.loads(buf)
for i in range(len(obj)):
table["rows"].append([obj[i]["s"], obj[i]["h"], obj[i]["l"], obj[i]["b"], obj[i]["a"], obj[i]["c"], obj[i]["q"], _D(int(obj[i]["E"]))])
LogStatus('`' + json.dumps(table) + '`')
client.close()
void main() {
LogStatus("Connecting...");
auto client = Dial("wss://stream.binance.com:9443/ws/!ticker@arr");
if(!client.Valid) {
Log("Connection failed, program exited");
return;
}
while(true) {
auto buf = client.read();
if(buf == "") {
break;
}
json table = R"({
"type" : "table",
"title" : "Ticker Chart",
"cols" : ["Currency", "Highest", "Lowest", "Buy 1", "Sell 1", "Last traded price", "Volume", "Update time"],
"rows" : []
})"_json;
json obj = json::parse(buf);
for(auto& ele : obj.items()) {
table["rows"].push_back({ele.value()["s"], ele.value()["h"], ele.value()["l"], ele.value()["b"], ele.value()["a"], ele.value()["c"],
ele.value()["q"], _D(ele.value()["E"])});
}
LogStatus("`" + table.dump() + "`");
}
client.close();
}
بائننس کے ویب ساکٹ ٹکر انٹرفیس تک رسائی حاصل کرنے کے لئے:
var ws = null
function main(){
var param = {
"op": "subscribe",
"args": [{
"channel": "tickers",
"instId": "BTC-USDT"
}]
}
// When calling Dial function, specify reconnect=true to set reconnection mode and payload to be the message sent when reconnecting. When the WebSocket connection is disconnected, it will reconnect and send messages automatically.
ws = Dial("wss://ws.okx.com:8443/ws/v5/public|compress=gzip_raw&mode=recv&reconnect=true&payload="+ JSON.stringify(param))
if(ws){
var pingCyc = 1000 * 20
var lastPingTime = new Date().getTime()
while(true){
var nowTime = new Date().getTime()
var ret = ws.read()
Log("ret:", ret)
if(nowTime - lastPingTime > pingCyc){
var retPing = ws.write("ping")
lastPingTime = nowTime
Log("Send : ping", "#FF0000")
}
LogStatus("Current time:", _D())
Sleep(1000)
}
}
}
function onexit() {
ws.close()
Log("exit")
}
import json
import time
ws = None
def main():
global ws
param = {
"op": "subscribe",
"args": [{
"channel": "tickers",
"instId": "BTC-USDT"
}]
}
ws = Dial("wss://ws.okx.com:8443/ws/v5/public|compress=gzip_raw&mode=recv&reconnect=true&payload=" + json.dumps(param))
if ws:
pingCyc = 1000 * 20
lastPingTime = time.time() * 1000
while True:
nowTime = time.time() * 1000
ret = ws.read()
Log("ret:", ret)
if nowTime - lastPingTime > pingCyc:
retPing = ws.write("ping")
lastPingTime = nowTime
Log("Send: ping", "#FF0000")
LogStatus("Current time:", _D())
Sleep(1000)
def onexit():
ws.close()
Log("exit")
auto objWS = Dial("wss://ws.okx.com:8443/ws/v5/public|compress=gzip_raw&mode=recv&reconnect=true");
void main() {
json param = R"({
"op": "subscribe",
"args": [{
"channel": "tickers",
"instId": "BTC-USDT"
}]
})"_json;
objWS.write(param.dump());
if(objWS.Valid) {
uint64_t pingCyc = 1000 * 20;
uint64_t lastPingTime = Unix() * 1000;
while(true) {
uint64_t nowTime = Unix() * 1000;
auto ret = objWS.read();
Log("ret:", ret);
if(nowTime - lastPingTime > pingCyc) {
auto retPing = objWS.write("ping");
lastPingTime = nowTime;
Log("Send: ping", "#FF0000");
}
LogStatus("Current time:", _D());
Sleep(1000);
}
}
}
void onexit() {
objWS.close();
Log("exit");
}
OKX
var ws = null
function main(){
var param = {"sub": "market.btcusdt.detail", "id": "id1"}
ws = Dial("wss://api.huobi.pro/ws|compress=gzip&mode=recv&reconnect=true&payload="+ JSON.stringify(param))
if(ws){
while(1){
var ret = ws.read()
Log("ret:", ret)
// Respond to heartbeat packet operations
try {
var jsonRet = JSON.parse(ret)
if(typeof(jsonRet.ping) == "number") {
var strPong = JSON.stringify({"pong" : jsonRet.ping})
ws.write(strPong)
Log("Respond to ping, send pong:", strPong, "#FF0000")
}
} catch(e) {
Log("e.name:", e.name, "e.stack:", e.stack, "e.message:", e.message)
}
LogStatus("Current time:", _D())
Sleep(1000)
}
}
}
function onexit() {
ws.close()
Log("Execute the ws.close() function")
}
import json
ws = None
def main():
global ws
param = {"sub" : "market.btcusdt.detail", "id" : "id1"}
ws = Dial("wss://api.huobi.pro/ws|compress=gzip&mode=recv&reconnect=true&payload=" + json.dumps(param))
if ws:
while True:
ret = ws.read()
Log("ret:", ret)
# Respond to heartbeat packet operations
try:
jsonRet = json.loads(ret)
if "ping" in jsonRet and type(jsonRet["ping"]) == int:
strPong = json.dumps({"pong" : jsonRet["ping"]})
ws.write(strPong)
Log("Respond to ping, send pong:", strPong, "#FF0000")
except Exception as e:
Log("e:", e)
LogStatus("Current time:", _D())
Sleep(1000)
def onexit():
ws.close()
Log("Execute the ws.close() function")
using namespace std;
void main() {
json param = R"({"sub" : "market.btcusdt.detail", "id" : "id1"})"_json;
auto ws = Dial("wss://api.huobi.pro/ws|compress=gzip&mode=recv&reconnect=true&payload=" + param.dump());
if(ws.Valid) {
while(true) {
auto ret = ws.read();
Log("ret:", ret);
// Respond to heartbeat packet operations
try
{
auto jsonRet = json::parse(ret);
if(jsonRet["ping"].is_number()) {
json pong = R"({"pong" : 0})"_json;
pong["pong"] = jsonRet["ping"];
auto strPong = pong.dump();
ws.write(strPong);
Log("Respond to ping, send pong:", strPong, "#FF0000");
}
} catch(exception &e)
{
Log("e:", e.what());
}
LogStatus("Current time:", _D());
Sleep(1000);
}
}
}
void onexit() {
// ws.close();
Log("Execute the ws.close() function");
}
Huobi
function getLogin(pAccessKey, pSecretKey, pPassphrase) {
// Signature function for login
var ts = (new Date().getTime() / 1000).toString()
var login = {
"op": "login",
"args":[{
"apiKey" : pAccessKey,
"passphrase" : pPassphrase,
"timestamp" : ts,
"sign" : exchange.HMAC("sha256", "base64", ts + "GET" + "/users/self/verify", pSecretKey) // exchange.HMAC has been deprecated and is temporarily supported. Please use the latest exchange.Encode function instead.
}]
}
return login
}
var client_private = null
function main() {
// Because the read function uses a timeout setting, filtering the timeout reports errors that would otherwise be output with redundant errors
SetErrorFilter("timeout")
// Position channel subscription information
var posSubscribe = {
"op": "subscribe",
"args": [{
"channel": "positions",
"instType": "ANY"
}]
}
var accessKey = "xxx"
var secretKey = "xxx"
var passphrase = "xxx"
client_private = Dial("wss://ws.okx.com:8443/ws/v5/private")
client_private.write(JSON.stringify(getLogin(accessKey, secretKey, passphrase)))
Sleep(3000) // When logging in, you cannot subscribe to private channels immediately, you need to wait for server response
client_private.write(JSON.stringify(posSubscribe))
if (client_private) {
var lastPingTS = new Date().getTime()
while (true) {
var buf = client_private.read(-1)
if (buf) {
Log(buf)
}
// Detect disconnection, reconnect
if (buf == "" && client_private.write(JSON.stringify(posSubscribe)) == 0) {
Log("Disconnection detected, close connection, reconnect")
client_private.close()
client_private = Dial("wss://ws.okx.com:8443/ws/v5/private")
client_private.write(JSON.stringify(getLogin(accessKey, secretKey, passphrase)))
Sleep(3000)
client_private.write(JSON.stringify(posSubscribe))
}
// Send heartbeat packets
var nowPingTS = new Date().getTime()
if (nowPingTS - lastPingTS > 10 * 1000) {
client_private.write("ping")
lastPingTS = nowPingTS
}
}
}
}
function onexit() {
var ret = client_private.close()
Log("Close the connection!", ret)
}
import json
import time
def getLogin(pAccessKey, pSecretKey, pPassphrase):
ts = str(time.time())
login = {
"op": "login",
"args":[{
"apiKey" : pAccessKey,
"passphrase" : pPassphrase,
"timestamp" : ts,
"sign" : exchange.HMAC("sha256", "base64", ts + "GET" + "/users/self/verify", pSecretKey)
}]
}
return login
client_private = None
def main():
global client_private
SetErrorFilter("timeout")
posSubscribe = {
"op": "subscribe",
"args": [{
"channel": "positions",
"instType": "ANY"
}]
}
accessKey = "xxx"
secretKey = "xxx"
passphrase = "xxx"
client_private = Dial("wss://ws.okx.com:8443/ws/v5/private")
client_private.write(json.dumps(getLogin(accessKey, secretKey, passphrase)))
Sleep(3000)
client_private.write(json.dumps(posSubscribe))
if client_private:
lastPingTS = time.time() * 1000
while True:
buf = client_private.read(-1)
if buf:
Log(buf)
if buf == "" and client_private.write(json.dumps(posSubscribe)) == 0:
Log("Disconnection detected, close connection, reconnect")
ret = client_private.close()
client_private = Dial("wss://ws.okx.com:8443/ws/v5/private")
client_private.write(json.dumps(getLogin(accessKey, secretKey, passphrase)))
Sleep(3000)
client_private.write(json.dumps(posSubscribe))
nowPingTS = time.time() * 1000
if nowPingTS - lastPingTS > 10 * 1000:
client_private.write("ping")
lastPingTS = nowPingTS
def onexit():
ret = client_private.close()
Log("Close the connection!", ret)
auto client_private = Dial("wss://ws.okx.com:8443/ws/v5/private");
json getLogin(string pAccessKey, string pSecretKey, string pPassphrase) {
auto ts = std::to_string(Unix());
json login = R"({
"op": "login",
"args": [{
"apiKey": "",
"passphrase": "",
"timestamp": "",
"sign": ""
}]
})"_json;
login["args"][0]["apiKey"] = pAccessKey;
login["args"][0]["passphrase"] = pPassphrase;
login["args"][0]["timestamp"] = ts;
login["args"][0]["sign"] = exchange.HMAC("sha256", "base64", ts + "GET" + "/users/self/verify", pSecretKey);
return login;
}
void main() {
SetErrorFilter("timeout");
json posSubscribe = R"({
"op": "subscribe",
"args": [{
"channel": "positions",
"instType": "ANY"
}]
})"_json;
auto accessKey = "xxx";
auto secretKey = "xxx";
auto passphrase = "xxx";
client_private.write(getLogin(accessKey, secretKey, passphrase).dump());
Sleep(3000);
client_private.write(posSubscribe.dump());
if (client_private.Valid) {
uint64_t lastPingTS = Unix() * 1000;
while (true) {
auto buf = client_private.read(-1);
if (buf != "") {
Log(buf);
}
if (buf == "") {
if (client_private.write(posSubscribe.dump()) == 0) {
Log("Disconnection detected, close connection, reconnect");
client_private.close();
client_private = Dial("wss://ws.okx.com:8443/ws/v5/private");
client_private.write(getLogin(accessKey, secretKey, passphrase).dump());
Sleep(3000);
client_private.write(posSubscribe.dump());
}
}
uint64_t nowPingTS = Unix() * 1000;
if (nowPingTS - lastPingTS > 10 * 1000) {
client_private.write("ping");
lastPingTS = nowPingTS;
}
}
}
}
void onexit() {
client_private.close();
Log("exit");
}
OKX
var client = null
function main() {
// client = Dial("sqlite3://:memory:") // Using an in-memory database
client = Dial("sqlite3://test1.db") // Open/connect to the database file in the docker's directory
// record handle
var sqlite3Handle = client.fd()
Log("sqlite3Handle:", sqlite3Handle)
// Querying tables in the database
var ret = client.exec("SELECT name FROM sqlite_master WHERE type='table'")
Log(ret)
}
function onexit() {
Log("Execute client.close()")
client.close()
}
// Not supported
// Not supported
ایک ڈیٹا بیس سے منسلک ہونے پر ڈائل فنکشن کے ذریعہ واپس آنے والے کنکشن آبجیکٹ میں دو طریقہ کار افعال ہیں جو اس کے لئے منفرد ہیں:
exec(sqlString)
: SQL بیانات کو اسی طرح کے انداز میں چلانے کے لئے استعمال کیا جاتا ہےDBExec()
function.fd()
:fd()
فنکشن ایک ہینڈل (مثال کے طور پر، ہینڈل متغیر ہینڈل ہے) واپس آتا ہے جو دوسرے موضوعات کی طرف سے دوبارہ منسلک کرنے کے لئے استعمال کیا جائے گا (یہاں تک کہ اگر ڈائل کی طرف سے پیدا کردہ آبجیکٹ پہلے ہی عملدرآمد کی طرف سے بند کر دیا گیا ہےclose()
کنکشن کو بند کرنے کے لئے تقریب) ہینڈل میں منتقل کر کےDial()
مثال کے طور پر،Dial(handle)
دوبارہ استعمال کنکشن.
مندرجہ ذیل ایک ڈائل تقریب سے منسلک ایک مثال ہےsqlite3
database.تفصیلاتaddress
پیرامیٹر، کی طرف سے الگ|
عام ایڈریس کے بعد علامت:wss://ws.okx.com:8443/ws/v5/public
. اگر ہیں|
پیرامیٹر سٹرنگ میں حروف، پھر||
علیحدگی کے نشان کے طور پر استعمال کیا جاتا ہے. اس کے بعد حصہ کچھ تقریب پیرامیٹر کی ترتیبات ہیں، اور ہر پیرامیٹر کے ساتھ منسلک ہے&
حروف. مثال کے طور پر،ss5
پراکسی اور کمپریشن پیرامیٹرز مندرجہ ذیل کے طور پر ایک ساتھ مقرر کیا جا سکتا ہے:Dial("wss://ws.okx.com:8443/ws/v5/public|proxy=socks5://xxx:9999&compress=gzip_raw&mode=recv")
ڈائل فنکشن کے ایڈریس پیرامیٹر کے ذریعہ تعاون یافتہ افعال | پیرامیٹر کی تفصیل |
---|---|
ویب ساکٹ پروٹوکول ڈیٹا کمپریشن سے متعلق پیرامیٹرز: compress=parameter value | کمپریس کمپریشن کا طریقہ ہے، کمپریس پیرامیٹر کے اختیارات ہیں: gzip_raw، gzip، وغیرہ. اگر gzip طریقہ معیاری gzip نہیں ہے، تو آپ توسیعی طریقہ استعمال کر سکتے ہیں: gzip_raw |
ویب ساکٹ پروٹوکول ڈیٹا کمپریشن سے متعلق پیرامیٹرز: mode=parameter value | موڈ کمپریشن موڈ ہے، موڈ پیرامیٹر دوہری ہو سکتا ہے، بھیجیں، recv. دوہری دو طرفہ کمپریشن ہے، کمپریسڈ ڈیٹا بھیجیں، کمپریسڈ ڈیٹا وصول کریں. بھیجنے کے کمپریسڈ ڈیٹا بھیجنے کے لئے ہے. recv کمپریسڈ ڈیٹا وصول کرنے کے لئے ہے، مقامی decompression. |
ویب ساکٹ پروٹوکول بنیادی آٹو دوبارہ مربوط پیرامیٹرز مقرر کرتا ہے: reconnect=parameter value | reconnect reconnect سیٹ کرنا ہے یا نہیں، reconnect=true reconnect کو فعال کرنا ہے۔ جب یہ پیرامیٹر سیٹ نہیں ہوتا ہے تو ڈیفالٹ reconnect نہیں ہے۔ |
ویب ساکٹ پروٹوکول بنیادی آٹو دوبارہ مربوط متعلقہ پیرامیٹرز مقرر کرتا ہے: وقفہ = پیرامیٹر کی قدر | interval دوبارہ کوشش کرنے کا وقفہ ہے، ملی سیکنڈ میں، interval=10000 10 سیکنڈ کا دوبارہ کوشش کرنے کا وقفہ ہے، ڈیفالٹ 1 سیکنڈ ہے جب یہ مقرر نہیں ہے، یعنی interval=1000. |
ویب ساکٹ پروٹوکول بنیادی آٹو ری کنکشن سے متعلق پیرامیٹرز مقرر کرتا ہے: پے لوڈ = پیرامیٹر ویلیو | پےلوڈ سبسکرپشن پیغام ہے جو ویب ساکٹ کو دوبارہ مربوط کرنے پر بھیجنے کی ضرورت ہے ، مثال کے طور پر: پےلوڈ = اوکوکوک۔ |
جرابوں سے متعلق پیرامیٹرز5 پراکسی: پراکسی = پیرامیٹر ویلیو | پراکسی ایس ایس 5 پراکسی سیٹنگ ہے، پیرامیٹر ویلیو فارمیٹ: socks5://name:pwd@192.168.0.1:1080، نام ایس ایس 5 سرور صارف نام ہے، PWD ایس ایس 5 سرور لاگ ان پاس ورڈ ہے، 1080 ایس ایس 5 سروس پورٹ ہے. |
کےDial()
فنکشن صرف لائیو ٹریڈنگ کے لیے معاون ہے۔
ڈائل فنکشن کا استعمال کرتے ہوئے ڈیٹا بیس سے رابطہ قائم کرتے وقت ، کنکشن سٹرنگ ہر ڈیٹا بیس کے لئے گو زبان ڈرائیور پروجیکٹ کے حوالے سے لکھی جاتی ہے۔
ڈیٹا بیس کی حمایت | ڈرائیونگ پروجیکٹس | کنکشن سٹرنگ | تبصرے |
---|---|---|---|
سکلائٹ3 | github.com/mattn/go-sqlite3 | sqlite3://file:test.db؟cache=shared&mode=memory | کےsqlite3:// سابقہ اس بات کی نشاندہی کرتا ہے کہ ایک sqlite3 ڈیٹا بیس استعمال کیا جا رہا ہے، مثال کال:Dial("sqlite3://test1.db") |
mysql | github.com/go-sql-driver/mysql | mysql://username:yourpassword@tcp(localhost:3306) /آپ کا ڈیٹا بیس؟charset=utf8mb4 | – |
پودوں کے بعد | github.com/lib/pq | postgres://user=postgres dbname=yourdatabase sslmode=disable password=yourpassword میزبان=localhost پورٹ=5432 | – |
کلک ہاؤس | github.com/ClickHouse/clickhouse-go | کلک ہاؤس://tcp://host:9000؟username=username&password=yourpassword&database=youdatabase | – |
براہ مہربانی نوٹ کریں کہ جبpayload
مواد میں مقررaddress
پیرامیٹر حروف پر مشتمل ہے=
یا دیگر خصوصی حروف، یہ تجزیہ پر اثر انداز کر سکتے ہیںaddress
پیرامیٹرDial
تقریب، جیسے مندرجہ ذیل مثال.
backPack Exchange websocket نجی انٹرفیس کال مثال:
var client = null
function main() {
// Base64-encoded public key of the key pair, i.e. the access key configured on FMZ
var base64ApiKey = "xxx"
var ts = String(new Date().getTime())
var data = "instruction=subscribe×tamp=" + ts + "&window=5000"
// Since signEd25519 returns a base64 encoding, it contains the character "="
var signature = signEd25519(data)
// The payload may contain the character "=" after being encoded by JSON
payload = {
"method": "SUBSCRIBE",
"params": ["account.orderUpdate"],
"signature": [base64ApiKey, signature, ts, "5000"]
}
client = Dial("wss://ws.backpack.exchange")
client.write(JSON.stringify(payload))
if (!client) {
Log("Connection failed, program exited")
return
}
while (true) {
var buf = client.read()
Log(buf)
}
}
function onexit() {
client.close()
}
function signEd25519(data) {
return exchange.Encode("ed25519.seed", "raw", "base64", data, "base64", "{{secretkey}}")
}
مندرجہ ذیل کال کوڈ میں ٹھیک کام کرتا ہے:
client = Dial("wss://ws.backpack.exchange")
client.write(JSON.stringify(payload))
اگر آپ اسے براہ راست لکھیںpayload
، یہ مناسب طریقے سے کام نہیں کرے گا، مثال کے طور پر:
client = Dial("wss://ws.backpack.exchange|payload=" + JSON.stringify(payload))
فی الحال، صرف جاوا اسکرپٹ کے استعمال کی حمایت کرتا ہےmqtt
, nats
, amqp
، اورkafka
ڈائل فنکشن میں مواصلاتی پروٹوکول۔ چار پروٹوکولوں کے استعمال کو ظاہر کرنے کے لئے جاوا اسکرپٹ زبان کی حکمت عملی کا کوڈ بطور مثال استعمال کیا جاتا ہے۔mqtt
, nats
, amqp
، اورkafka
:
// We need to configure and deploy proxy servers for each protocol first.
// For the sake of demonstration, the subscription (read operation) and publishing (write operation) of the topic test_topic are all performed in the current strategy.
var arrConn = []
var arrName = []
function main() {
LogReset(1)
conn_nats = Dial("nats://admin@127.0.0.1:4222?topic=test_topic")
conn_mqtt = Dial("mqtt://127.0.0.1:1883?topic=test_topic")
conn_amqp = Dial("amqp://q:admin@127.0.0.1:5672/?queue=test_Queue")
conn_kafka = Dial("kafka://localhost:9092/test_topic")
arrConn = [conn_nats, conn_amqp, conn_mqtt, conn_kafka]
arrName = ["nats", "amqp", "mqtt", "kafka"]
while (true) {
for (var i in arrConn) {
var conn = arrConn[i]
var name = arrName[i]
// Write data
conn.write(name + ", time: " + _D() + ", test msg.")
// Read data
var readMsg = conn.read(1000)
Log(name + " readMsg: ", readMsg, "#FF0000")
}
Sleep(1000)
}
}
function onexit() {
for (var i in arrConn) {
arrConn[i].close()
Log("close", arrName[i], "connect")
}
}
تفصیلی دستاویزات کا حوالہ:ایف ایم زیڈ کی تلاش: لائیو ٹریڈنگ کی حکمت عملیوں کے مابین مواصلاتی پروٹوکول کی مشق
ایک HTTP درخواست بھیجیں.
درخواست کے جواب کے اعداد و شمار کو واپس کرتا ہے. اگر واپسی کی قیمت ایک ہےJSON
تار، یہ کی طرف سے تجزیہ کیا جا سکتا ہےJSON.parse()
میں کردارJavaScript
زبان کی حکمت عملی، اورjson::parse()
میں کردارC++
زبان کی حکمت عملی۔ اگر ڈیبگ کو اختیارات کے ڈھانچے میں سچ پر مقرر کیا گیا ہے تو ، واپسی کی قیمت ایک آبجیکٹ (JSON) ہے۔ اگر ڈیبگ کو غلط پر مقرر کیا گیا ہے تو ، واپسی کی قیمت ایک تار ہے۔
تار، اعتراض
HttpQuery ((url) HttpQuery ((url، اختیارات)
ایچ ٹی پی درخواست یو آر ایل. یو آر ایل سچ سٹرنگ HTTP درخواست سے متعلق ترتیبات ، مثال کے طور پر ، مندرجہ ذیل طور پر تشکیل دی جاسکتی ہیں:
{
method: "POST",
body: "a=10&b=20&c=30",
charset: "UTF-8",
cookie: "session_id=12345; lang=en",
profile: "chrome_103",
debug: false,
headers: {"TEST-HTTP-QUERY": "123"},
timeout: 1000
}
tls
انگلی کے نشانات.
حمایت کی ترتیبات میں مندرجہ ذیل اختیارات شامل ہیں:
chrome_:"chrome_103"
, "chrome_104"
, "chrome_105"
, "chrome_106"
, "chrome_107"
, "chrome_108"
, "chrome_109"
, "chrome_110"
, "chrome_111"
, "chrome_112"
, "chrome_117"
سفاری_:"safari_15_6_1"
, "safari_16_0"
, "safari_ipad_15_6"
, "safari_ios_15_5"
, "safari_ios_15_6"
, "safari_ios_16_0"
فائر فاکس:"firefox_102"
, "firefox_104"
, "firefox_105"
, "firefox_106"
, "firefox_108"
, "firefox_110"
, "firefox_117"
اوپیرا_:"opera_89"
, "opera_90"
, "opera_91"
زالینڈو:"zalando_android_mobile"
, "zalando_ios_mobile"
nike_:"nike_ios_mobile"
, "nike_android_mobile"
بادل کش:"cloudscraper"
mms_:"mms_ios"
mesh_:"mesh_ios"
, "mesh_ios_1"
, "mesh_ios_2"
, "mesh_android"
, "mesh_android_1"
, "mesh_android_2"
تصدیق_:"confirmed_ios"
, "confirmed_android"
ٹھیک ہے:"okhttp4_android_7"
, "okhttp4_android_8"
, "okhttp4_android_9"
, "okhttp4_android_10"
, "okhttp4_android_11"
, "okhttp4_android_12"
, "okhttp4_android_13"
,true
،HttpQuery
فنکشن کال مکمل جواب پیغام واپس کرتا ہے.false
، صرف اعداد و شمارBody
کے جواب کے پیغام کو واپس کر دیا جاتا ہے.profile
میدان چھوڑا جا سکتا ہے.اختیارات غلط چیز
function main(){
// An example of GET access without parameters
var info = JSON.parse(HttpQuery("https://www.okx.com/api/v5/public/time"))
Log(info)
// An example of GET access with parameters
var ticker = JSON.parse(HttpQuery("https://www.okx.com/api/v5/market/books?instId=BTC-USDT"))
Log(ticker)
}
import json
import urllib.request
def main():
# HttpQuery does not support Python, you can use the urllib/urllib2 library instead
info = json.loads(urllib.request.urlopen("https://www.okx.com/api/v5/public/time").read().decode('utf-8'))
Log(info)
ticker = json.loads(urllib.request.urlopen("https://www.okx.com/api/v5/market/books?instId=BTC-USDT").read().decode('utf-8'))
Log(ticker)
void main() {
auto info = json::parse(HttpQuery("https://www.okx.com/api/v5/public/time"));
Log(info);
auto ticker = json::parse(HttpQuery("https://www.okx.com/api/v5/market/books?instId=BTC-USDT"));
Log(ticker);
}
OKX عوامی ٹکر API انٹرفیس تک رسائی کا ایک مثال.
function main() {
// Setting proxy and sending an http request for this time, no username, no password, this http request will be sent through the proxy
HttpQuery("socks5://127.0.0.1:8889/http://www.baidu.com/")
// Setting proxy and sending an http request for this time, enter the user name and password, only the current call to HttpQuery takes effect, and then call HttpQuery again ("http://www.baidu.com") so that the proxy will not be used.
HttpQuery("socks5://username:password@127.0.0.1:8889/http://www.baidu.com/")
}
# HttpQuery does not support Python, you can use the urllib/urllib2 library instead
void main() {
HttpQuery("socks5://127.0.0.1:8889/http://www.baidu.com/");
HttpQuery("socks5://username:password@127.0.0.1:8889/http://www.baidu.com/");
}
HttpQuery فنکشن پراکسی کی ترتیبات کا استعمال کرتا ہے.
کےHttpQuery()
فنکشن صرف حمایت کرتا ہےJavaScript
, C++
زبان،Python
زبان کا استعمال کر سکتے ہیںurllib
براہ راست HTTP درخواستوں کو بھیجنے کے لئے لائبریری.HttpQuery()
بنیادی طور پر تبادلے کے انٹرفیس تک رسائی کے لئے استعمال کیا جاتا ہے جس میں دستخط کی ضرورت نہیں ہے ، جیسے ٹکر کی معلومات جیسے عوامی انٹرفیس۔HttpQuery()
درخواستیں بھیجنے کے لئے بیک ٹسٹنگ سسٹم میں استعمال کیا جا سکتا ہے (صرفGET
اعداد و شمار حاصل کرنے کے لئے درخواستوں کی حمایت کی جاتی ہے۔ بیک ٹیسٹنگ 20 دوروں کے استعمال تک محدود ہےURLs
، اورHttpQuery()
دوروں ڈیٹا کیش کریں گے.URL
دوسری بار تک رسائی حاصل کی جاتی ہے،HttpQuery()
فنکشن کیشڈ ڈیٹا واپس کرتا ہے اور مزید حقیقی نیٹ ورک کی درخواستیں نہیں ہوتی ہیں۔
{@fun/Global/HttpQuery_Go HttpQuery_Go}
ایک HTTP درخواست بھیجتا ہے، ایک غیر متزلزل ورژنHttpQuery
function.
کےHttpQuery_Go()
تقریب فوری طور پر ایک متوازی آبجیکٹ واپس آتا ہے کہ HTTP درخواست کا نتیجہ حاصل کرنے کے لئے استعمال کیا جا سکتا ہے کا استعمال کرتے ہوئےwait
کے طریقہ کارJSON.parse()
تقریب کا استعمال کر سکتے ہیں تجزیہ کرنے کے لئےJSON.parse()
میں کردارJavaScript
زبان کی حکمت عملی.
چیز
HttpQuery_Go ((url) HttpQuery_Go ((url، اختیارات)
ایچ ٹی پی درخواست یو آر ایل. یو آر ایل سچ سٹرنگ HTTP درخواست سے متعلق ترتیبات ، مثال کے طور پر ، مندرجہ ذیل طور پر تشکیل دی جاسکتی ہیں:
{
method: "POST",
body: "a=10&b=20&c=30",
charset: "UTF-8",
cookie: "session_id=12345; lang=en",
// profile: "",
debug: false,
headers: {"TEST-HTTP-QUERY": "123"},
timeout: 1000
}
tls
fingerprints.true
، یہHttpQuery_Go
فنکشن کال مکمل جواب پیغام واپس کرتا ہے.false
، صرف اعداد و شمارBody
کے جواب کے پیغام کو واپس کر دیا جاتا ہے.profile
میدان چھوڑا جا سکتا ہے.اختیارات غلط چیز
function main() {
// Create the first asynchronous thread
var r1 = HttpQuery_Go("https://www.okx.com/api/v5/market/tickers?instType=SPOT")
// Create the second asynchronous thread
var r2 = HttpQuery_Go("https://api.huobi.pro/market/tickers")
// Get the return value of the first asynchronous thread call
var tickers1 = r1.wait()
// Get the return value of the second asynchronous thread call
var tickers2 = r2.wait()
// Print results
Log("tickers1:", tickers1)
Log("tickers2:", tickers2)
}
# Not supported
// Not supported
مجموعی ٹکر ڈیٹا کے لئے تبادلے کے عوامی انٹرفیس تک غیر متزلزل رسائی۔
کےHttpQuery_Go()
فنکشن صرف حمایت کرتا ہےJavaScript
،Python
زبان کے ساتھ استعمال کیا جا سکتا ہےurllib
براہ راست HTTP درخواستوں کو بھیجنے کے لئے لائبریری.HttpQuery_Go()
بنیادی طور پر ان انٹرفیس تک رسائی کے لئے استعمال کیا جاتا ہے جن کے تبادلے پر دستخط کی ضرورت نہیں ہے ، جیسے ٹکر کی معلومات جیسے عوامی انٹرفیس۔HttpQuery_Go
فنکشن backtesting کے نظام میں معاونت نہیں ہے.
{@fun/Global/HttpQuery HttpQuery} {@fun/Global/HttpQuery HttpQuery}
یہ فنکشن ڈیٹا کو منتقل کردہ پیرامیٹرز کے مطابق کوڈ کرتا ہے.
کےEncode
فنکشن کوڈنگ اور خفیہ کاری کے بعد ڈیٹا واپس کرتا ہے.
سٹرنگ
انکوڈ ((algo، inputFormat، outputFormat، ڈیٹا) انکوڈ کریں ((algo، inputFormat، outputFormat، ڈیٹا، keyFormat، key)
پیرامیٹرalgo
کوڈنگ کے حساب میں استعمال ہونے والا الگورتھم ہے۔ سپورٹ کی ترتیب یہ ہے:raw
(کوئی الگورتھم استعمال نہیں کیا جاتا ہے) ، "سائن" ، algo
بھی حمایت کرتا ہے: algo
بھی حمایت کرتا ہے: algo
ed25519.seed
حساب کتاب.
کچھ
سچ
سٹرنگ
ڈیٹا فارمیٹ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہےdata
پیرامیٹر.inputFormat
پیرامیٹر مندرجہ ذیل میں سے ایک کے طور پر مقرر کیا جا سکتا ہے:raw
, hex
, base64
, string
hex
کوڈت، base64
انکوڈ کیا جاتا ہے، اور outputFormat
پیرامیٹر مندرجہ ذیل میں سے ایک کے طور پر مقرر کیا جا سکتا ہے:raw
, hex
, base64
, string
hex
کوڈت، base64
انکوڈ کیا جاتا ہے، اور data
یہ وہ اعداد و شمار ہیں جن پر کارروائی کی جائے گی۔
اعداد و شمار
سچ
سٹرنگ
ڈیٹا فارمیٹ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہےkey
پیرامیٹر.key
پیرامیٹر مندرجہ ذیل میں سے ایک کے طور پر مقرر کیا جا سکتا ہے:raw
, hex
, base64
, string
hex
کوڈت، base64
انکوڈ کیا جاتا ہے، اور key
کے لئے استعمال کیا جاتا خفیہ کلید ہےHMAC
خفیہ کاری. پیرامیٹرkey
جب پیرامیٹر کی ضرورت ہےalgo
پر مقرر کیا گیا ہےsign
یاsignTx
.key
پیرامیٹر کے لئے استعمال نہیں کیا جاتاHMAC
خفیہ کاریalgo
پیرامیٹر
function main() {
Log(Encode("raw", "raw", "hex", "example", "raw", "123")) // 6578616d706c65
Log(Encode("raw", "raw", "hex", "example")) // 6578616d706c65
Log(Encode("sha256", "raw", "hex", "example", "raw", "123")) // 698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba
Log(Encode("sha256", "raw", "hex", "example", "", "123")) // 50d858e0985ecc7f60418aaf0cc5ab587f42c2570a884095a9e8ccacd0f6545c
Log(Encode("sha256", "raw", "hex", "example", null, "123")) // 50d858e0985ecc7f60418aaf0cc5ab587f42c2570a884095a9e8ccacd0f6545c
Log(Encode("sha256", "raw", "hex", "example", "string", "123")) // 698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba
Log(Encode("raw", "raw", "hex", "123")) // 313233
Log(Encode("raw", "raw", "base64", "123")) // MTIz
Log(Encode("sha256", "raw", "hex", "example", "hex", "313233")) // 698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba
Log(Encode("sha256", "raw", "hex", "example", "base64", "MTIz")) // 698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba
}
def main():
Log(Encode("raw", "raw", "hex", "example", "raw", "123")) # 6578616d706c65
Log(Encode("raw", "raw", "hex", "example", "", "")) # 6578616d706c65
Log(Encode("sha256", "raw", "hex", "example", "raw", "123")) # 698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba
Log(Encode("sha256", "raw", "hex", "example", "", "123")) # 50d858e0985ecc7f60418aaf0cc5ab587f42c2570a884095a9e8ccacd0f6545c
Log(Encode("sha256", "raw", "hex", "example", "string", "123")) # 698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba
Log(Encode("raw", "raw", "hex", "123", "", "")) # 313233
Log(Encode("raw", "raw", "base64", "123", "", "")) # MTIz
Log(Encode("sha256", "raw", "hex", "example", "hex", "313233")) # 698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba
Log(Encode("sha256", "raw", "hex", "example", "base64", "MTIz")) # 698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba
void main() {
Log(Encode("raw", "raw", "hex", "example", "raw", "123")); // 6578616d706c65
Log(Encode("raw", "raw", "hex", "example")); // 6578616d706c65
Log(Encode("sha256", "raw", "hex", "example", "raw", "123")); // 698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba
Log(Encode("sha256", "raw", "hex", "example", "", "123")); // 50d858e0985ecc7f60418aaf0cc5ab587f42c2570a884095a9e8ccacd0f6545c
Log(Encode("sha256", "raw", "hex", "example", "string", "123")); // 698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba
Log(Encode("raw", "raw", "hex", "123")); // 313233
Log(Encode("raw", "raw", "base64", "123")); // MTIz
Log(Encode("sha256", "raw", "hex", "example", "hex", "313233")); // 698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba
Log(Encode("sha256", "raw", "hex", "example", "base64", "MTIz")); // 698d54f0494528a759f19c8e87a9f99e75a5881b9267ee3926bcf62c992d84ba
}
انکوڈ فنکشن کال کا مثال.
function main(){
var ret1 = Encode("text.encoder.utf8", "raw", "hex", "hello") // e4bda0e5a5bd
Log(ret1)
var ret2 = Encode("text.decoder.utf8", "hex", "string", ret1)
Log(ret2)
var ret3 = Encode("text.encoder.gbk", "raw", "hex", "hello") // c4e3bac3
Log(ret3)
var ret4 = Encode("text.decoder.gbk", "hex", "string", ret3)
Log(ret4)
}
def main():
ret1 = Encode("text.encoder.utf8", "raw", "hex", "hello", "", "") # e4bda0e5a5bd
Log(ret1)
ret2 = Encode("text.decoder.utf8", "hex", "string", ret1, "", "")
Log(ret2)
ret3 = Encode("text.encoder.gbk", "raw", "hex", "hello", "", "") # c4e3bac3
Log(ret3)
ret4 = Encode("text.decoder.gbk", "hex", "string", ret3, "", "")
Log(ret4)
void main(){
auto ret1 = Encode("text.encoder.utf8", "raw", "hex", "hello"); // e4bda0e5a5bd
Log(ret1);
auto ret2 = Encode("text.decoder.utf8", "hex", "string", ret1);
Log(ret2);
auto ret3 = Encode("text.encoder.gbk", "raw", "hex", "hello"); // c4e3bac3
Log(ret3);
auto ret4 = Encode("text.decoder.gbk", "hex", "string", ret3);
Log(ret4);
}
پیرامیٹرalgo
بھی حمایت کرتا ہے:
کےEncode()
صرف لائیو ٹریڈنگ کے لئے حمایت کی جاتی ہے.key
اورkeyFormat
پیرامیٹرز منظور نہیں کر رہے ہیں، توkey
خفیہ کاری استعمال نہیں کی جاتی ہے۔
موجودہ لمحے کا نانوسکنڈ ٹائم اسٹیمپ حاصل کریں۔
کےUnixNano()
فنکشن نینو سیکنڈ ٹائم اسٹیمپ لوٹاتا ہے۔
نمبر
یونیکس نانو ((()
function main() {
var time = UnixNano() / 1000000
Log(_N(time, 0))
}
def main():
time = UnixNano()
Log(time)
void main() {
auto time = UnixNano();
Log(time);
}
اگر آپ کو ملی سیکنڈ کے ٹائم اسٹیمپ حاصل کرنے کی ضرورت ہے، تو آپ مندرجہ ذیل کوڈ استعمال کر سکتے ہیں:
{@ تفریح/گلوبل/یونیکس یونیکس}
دوسری سطح پر موجودہ لمحے کا ٹائم اسٹیمپ حاصل کریں۔
دوسری سطح کا ٹائم اسٹیمپ لوٹاتا ہے۔ نمبر
یونیکس ((()
function main() {
var t = Unix()
Log(t)
}
def main():
t = Unix()
Log(t)
void main() {
auto t = Unix();
Log(t);
}
{@fun/Global/UnixNano یونیکس نانو}
جہاں ڈوکر واقع ہے آلہ کے نظام کی معلومات حاصل کریں.
نظام کی معلومات. سٹرنگ
GetOS()
function main() {
Log("GetOS:", GetOS())
}
def main():
Log("GetOS:", GetOS())
void main() {
Log("GetOS:", GetOS());
}
مثال کے طور پر،GetOS()
پر چل رہا ہے ایک docker کے لئے تقریبمیک او ایسآپریٹنگ سسٹم واپس آ سکتا ہے:darwin/amd64
کیونکہ ایپل کمپیوٹرز میں متعدد ہارڈ ویئر فن تعمیرات ہیں۔darwin
کا نام ہےمیک او ایس system.
پیرامیٹر کے MD5 ہیش کا حساب لگاتا ہےdata
.
MD5 ہیش ویلیو۔ سٹرنگ
MD5 (ڈیٹا)
MD5 حساب کی ضرورت ہے کہ ڈیٹا. اعداد و شمار سچ سٹرنگ
function main() {
Log("MD5", MD5("hello world"))
}
def main():
Log("MD5", MD5("hello world"))
void main() {
Log("MD5", MD5("hello world"));
}
بلاتا ہےMD5("hello world")
فنکشن، واپسی کی قیمت ہے:5eb63bbbe01eeed093cb22bb8f5acdc3
.
{@fun/Global/EncodeEncode} {@fun/Global/EncodeEncode} {@fun/Global/EncodeEncode} {@fun/Global/EncodeEncode}
ڈیٹا بیس انٹرفیس افعال
ایک اعتراض جس میں ایک عمل کے عمل کا نتیجہ شامل ہےمربعبیان، مثال کے طور پر:
{"columns":["TS","HIGH","OPEN","LOW","CLOSE","VOLUME"],"values":[[1518970320000,100,99.1,90,100,12345.6]]}
چیز
DBExec ((sql)
مربعبیان کی تار. مربع سچ سٹرنگ
function main() {
var strSql = [
":CREATE TABLE TEST_TABLE(",
"TS INT PRIMARY KEY NOT NULL,",
"HIGH REAL NOT NULL,",
"OPEN REAL NOT NULL,",
"LOW REAL NOT NULL,",
"CLOSE REAL NOT NULL,",
"VOLUME REAL NOT NULL)"
].join("")
var ret = DBExec(strSql)
Log(ret)
// Add a piece of data
Log(DBExec(":INSERT INTO TEST_TABLE (TS, HIGH, OPEN, LOW, CLOSE, VOLUME) VALUES (1518970320000, 100, 99.1, 90, 100, 12345.6);"))
// Query data
Log(DBExec(":SELECT * FROM TEST_TABLE;"))
}
def main():
arr = [
":CREATE TABLE TEST_TABLE(",
"TS INT PRIMARY KEY NOT NULL,",
"HIGH REAL NOT NULL,",
"OPEN REAL NOT NULL,",
"LOW REAL NOT NULL,",
"CLOSE REAL NOT NULL,",
"VOLUME REAL NOT NULL)"
]
strSql = ""
for i in range(len(arr)):
strSql += arr[i]
ret = DBExec(strSql)
Log(ret)
# Add a piece of data
Log(DBExec(":INSERT INTO TEST_TABLE (TS, HIGH, OPEN, LOW, CLOSE, VOLUME) VALUES (1518970320000, 100, 99.1, 90, 100, 12345.6);"))
# Query data
Log(DBExec(":SELECT * FROM TEST_TABLE;"))
void main() {
string strSql = ":CREATE TABLE TEST_TABLE(\
TS INT PRIMARY KEY NOT NULL,\
HIGH REAL NOT NULL,\
OPEN REAL NOT NULL,\
LOW REAL NOT NULL,\
CLOSE REAL NOT NULL,\
VOLUME REAL NOT NULL)";
auto ret = DBExec(strSql);
Log(ret);
// Add a piece of data
Log(DBExec(":INSERT INTO TEST_TABLE (TS, HIGH, OPEN, LOW, CLOSE, VOLUME) VALUES (1518970320000, 100, 99.1, 90, 100, 12345.6);"));
// Query data
Log(DBExec(":SELECT * FROM TEST_TABLE;"));
}
میموری میں ڈیٹا بیس کی حمایت،DBExec
فنکشن پیرامیٹرز، اگرمربعبیان کے ساتھ شروع ہوتا ہے:
پھر ان میموری ڈیٹا بیس میں کام کریں ، یہ فائلوں کو لکھنے کے بغیر تیز تر ہوگا۔ یہ ڈیٹا بیس آپریشنز کے لئے موزوں ہے جس میں مستقل بچت کی ضرورت نہیں ہے ، مثال کے طور پر:
function main() {
var strSql = [
"CREATE TABLE TEST_TABLE(",
"TS INT PRIMARY KEY NOT NULL,",
"HIGH REAL NOT NULL,",
"OPEN REAL NOT NULL,",
"LOW REAL NOT NULL,",
"CLOSE REAL NOT NULL,",
"VOLUME REAL NOT NULL)"
].join("")
var ret = DBExec(strSql)
Log(ret)
}
def main():
arr = [
"CREATE TABLE TEST_TABLE(",
"TS INT PRIMARY KEY NOT NULL,",
"HIGH REAL NOT NULL,",
"OPEN REAL NOT NULL,",
"LOW REAL NOT NULL,",
"CLOSE REAL NOT NULL,",
"VOLUME REAL NOT NULL)"
]
strSql = ""
for i in range(len(arr)):
strSql += arr[i]
ret = DBExec(strSql)
Log(ret)
void main() {
string strSql = "CREATE TABLE TEST_TABLE(\
TS INT PRIMARY KEY NOT NULL,\
HIGH REAL NOT NULL,\
OPEN REAL NOT NULL,\
LOW REAL NOT NULL,\
CLOSE REAL NOT NULL,\
VOLUME REAL NOT NULL)";
auto ret = DBExec(strSql);
Log(ret);
}
ایک میز بنائیں.
function main() {
var strSql = [
"CREATE TABLE TEST_TABLE(",
"TS INT PRIMARY KEY NOT NULL,",
"HIGH REAL NOT NULL,",
"OPEN REAL NOT NULL,",
"LOW REAL NOT NULL,",
"CLOSE REAL NOT NULL,",
"VOLUME REAL NOT NULL)"
].join("")
Log(DBExec(strSql))
// Add a piece of data
Log(DBExec("INSERT INTO TEST_TABLE (TS, HIGH, OPEN, LOW, CLOSE, VOLUME) VALUES (1518970320000, 100, 99.1, 90, 100, 12345.6);"))
// Query data
Log(DBExec("SELECT * FROM TEST_TABLE;"))
// Modify data
Log(DBExec("UPDATE TEST_TABLE SET HIGH=? WHERE TS=?", 110, 1518970320000))
// Delete data
Log(DBExec("DELETE FROM TEST_TABLE WHERE HIGH=?", 110))
}
def main():
arr = [
"CREATE TABLE TEST_TABLE(",
"TS INT PRIMARY KEY NOT NULL,",
"HIGH REAL NOT NULL,",
"OPEN REAL NOT NULL,",
"LOW REAL NOT NULL,",
"CLOSE REAL NOT NULL,",
"VOLUME REAL NOT NULL)"
]
strSql = ""
for i in range(len(arr)):
strSql += arr[i]
Log(DBExec(strSql))
# Add a piece of data
Log(DBExec("INSERT INTO TEST_TABLE (TS, HIGH, OPEN, LOW, CLOSE, VOLUME) VALUES (1518970320000, 100, 99.1, 90, 100, 12345.6);"))
# Query data
Log(DBExec("SELECT * FROM TEST_TABLE;"))
# Modify data
Log(DBExec("UPDATE TEST_TABLE SET HIGH=? WHERE TS=?", 110, 1518970320000))
# Delete data
Log(DBExec("DELETE FROM TEST_TABLE WHERE HIGH=?", 110))
void main() {
string strSql = "CREATE TABLE TEST_TABLE(\
TS INT PRIMARY KEY NOT NULL,\
HIGH REAL NOT NULL,\
OPEN REAL NOT NULL,\
LOW REAL NOT NULL,\
CLOSE REAL NOT NULL,\
VOLUME REAL NOT NULL)";
Log(DBExec(strSql));
// Add a piece of data
Log(DBExec("INSERT INTO TEST_TABLE (TS, HIGH, OPEN, LOW, CLOSE, VOLUME) VALUES (1518970320000, 100, 99.1, 90, 100, 12345.6);"));
// Query data
Log(DBExec("SELECT * FROM TEST_TABLE;"));
// Modify data
Log(DBExec("UPDATE TEST_TABLE SET HIGH=? WHERE TS=?", 110, 1518970320000));
// Delete data
Log(DBExec("DELETE FROM TEST_TABLE WHERE HIGH=?", 110));
}
ٹیبل میں ریکارڈ شامل کریں، حذف کریں، چیک کریں اور تبدیل کریں۔
فنکشنDBExec()
پیرامیٹرز میں گزرنے کی طرف سے لائیو ٹریڈنگ ڈیٹا بیس (SQLite ڈیٹا بیس) کام کر سکتے ہیں. لائیو ٹریڈنگ ڈیٹا بیس میں اعداد و شمار کو شامل کرنے، حذف کرنے، چیک کرنے اور تبدیل کرنے کے آپریشن کا احساس، کی حمایتایس کیو ایلائٹنظام لائیو ٹریڈنگ ڈیٹا بیس میں محفوظ ٹیبلز:kvdb
, cfg
, log
, profit
, chart
، ان میزوں پر کام نہ کریں۔لین دینکی حمایت نہیں کی جاتی ہے اور اس طرح کے کاموں کو انجام دینے کی سفارش نہیں کی جاتی ہے، جس سے نظام میں تنازعات پیدا ہوسکتے ہیں.DBExec()
فنکشن صرف لائیو ٹریڈنگ کے لیے معاون ہے۔
{@fun/Global/_G _G}
ایک UUID بنائیں.
32 بٹ UUID. سٹرنگ
UUID (()
function main() {
var uuid1 = UUID()
var uuid2 = UUID()
Log(uuid1, uuid2)
}
def main():
uuid1 = UUID()
uuid2 = UUID()
Log(uuid1, uuid2)
void main() {
auto uuid1 = UUID();
auto uuid2 = UUID();
Log(uuid1, uuid2);
}
کےUUID()
فنکشن صرف لائیو ٹریڈنگ کی حمایت کرتا ہے.
واقعات کے لئے سننے کے لئے، یہ کوئی بھی ہے جب واپس آتا ہےWebSocket
پڑھنے کے قابل اعداد و شمار یا بیک وقت کام، جیسے:exchange.Go()
, HttpQuery_Go()
، وغیرہ مکمل کر رہے ہیں.
اگر لوٹایا اعتراض صفر قدر نہیں ہے،Event
واپسی کے مواد میں موجود واقعہ ٹرگر کی قسم ہے۔ مثال کے طور پر مندرجہ ذیل واپسی کی قیمت کا ڈھانچہ:
{"Seq":1,"Event":"Exchange_GetTrades","ThreadId":0,"Index":3,"Nano":1682068771309583400}
چیز
ایونٹ لوپ ((() ایونٹ لوپ (ٹائم آؤٹ)
پیرامیٹرtimeout
ٹائم آؤٹ سیٹنگ ہے، ملی سیکنڈ میں۔ پیرامیٹرtimeout
اگر یہ 0 پر مقرر کیا جاتا ہے تو واپسی سے پہلے کسی ایونٹ کے ہونے کا انتظار کرتا ہے۔ اگر یہ 0 سے بڑا ہے تو ، یہ ایونٹ کو ٹائم آؤٹ کا انتظار کرنے کے لئے مقرر کرتا ہے ، اور اگر یہ 0 سے کم ہے تو فوری طور پر تازہ ترین ایونٹ واپس کرتا ہے۔
ٹائم آؤٹ
غلط
نمبر
function main() {
var routine_getTicker = exchange.Go("GetTicker")
var routine_getDepth = exchange.Go("GetDepth")
var routine_getTrades = exchange.Go("GetTrades")
// Sleep(2000), if the Sleep statement is used here, it will cause the subsequent EventLoop function to miss the previous events, because after waiting for 2 seconds, the concurrent function has received the data, and the subsequent EventLoop listening mechanism started, it misses these events.
// These events will not be missed unless EventLoop(-1) is called at the beginning of the first line of code to first initialize the EventLoop's listening mechanism.
// Log("GetDepth:", routine_getDepth.wait()) If the wait function is called in advance to retrieve the result of a concurrent call to the GetDepth function, the event that the GetDepth function receives the result of the request will not be returned in the EventLoop function.
var ts1 = new Date().getTime()
var ret1 = EventLoop(0)
var ts2 = new Date().getTime()
var ret2 = EventLoop(0)
var ts3 = new Date().getTime()
var ret3 = EventLoop(0)
Log("The first concurrent task completed was:", _D(ts1), ret1)
Log("The second concurrent task completed was:", _D(ts2), ret2)
Log("The third concurrent task completed was:", _D(ts3), ret3)
Log("GetTicker:", routine_getTicker.wait())
Log("GetDepth:", routine_getDepth.wait())
Log("GetTrades:", routine_getTrades.wait())
}
import time
def main():
routine_getTicker = exchange.Go("GetTicker")
routine_getDepth = exchange.Go("GetDepth")
routine_getTrades = exchange.Go("GetTrades")
ts1 = time.time()
ret1 = EventLoop(0)
ts2 = time.time()
ret2 = EventLoop(0)
ts3 = time.time()
ret3 = EventLoop(0)
Log("The first concurrent task completed was:", _D(ts1), ret1)
Log("The second concurrent task completed was:", _D(ts2), ret2)
Log("The third concurrent task completed was:", _D(ts3), ret3)
Log("GetTicker:", routine_getTicker.wait())
Log("GetDepth:", routine_getDepth.wait())
Log("GetTrades:", routine_getTrades.wait())
void main() {
auto routine_getTicker = exchange.Go("GetTicker");
auto routine_getDepth = exchange.Go("GetDepth");
auto routine_getTrades = exchange.Go("GetTrades");
auto ts1 = Unix() * 1000;
auto ret1 = EventLoop(0);
auto ts2 = Unix() * 1000;
auto ret2 = EventLoop(0);
auto ts3 = Unix() * 1000;
auto ret3 = EventLoop(0);
Log("The first concurrent task completed was:", _D(ts1), ret1);
Log("The second concurrent task completed was:", _D(ts2), ret2);
Log("The third concurrent task completed was:", _D(ts3), ret3);
Ticker ticker;
Depth depth;
Trades trades;
routine_getTicker.wait(ticker);
routine_getDepth.wait(depth);
routine_getTrades.wait(trades);
Log("GetTicker:", ticker);
Log("GetDepth:", depth);
Log("GetTrades:", trades);
}
کی پہلی کالEventLoop()
کوڈ میں تقریب اس سننے واقعہ کے لئے میکانزم کو شروع کرتا ہے، اور اگر پہلیEventLoop()
کال ایونٹ کال بیک کے بعد شروع ہوتی ہے ، یہ پچھلے واقعات کو یاد کرے گی۔ بنیادی نظام ایک قطار کی ساخت کو لپیٹتا ہے جو زیادہ سے زیادہ 500 ایونٹ کال بیک کو کیش کرتا ہے۔ اگرEventLoop()
تقریب کو وقت پر نہیں بلایا جاتا ہے تاکہ انہیں پروگرام کے عملدرآمد کے دوران نکال دیا جاسکے ، بعد میں 500 کیشے سے باہر ہونے والی ایونٹ کال بیک ضائع ہوجائیں گی۔EventLoop()
تقریب بنیادی نظام WebSocket کی کیشے قطار یا متوازی افعال کی کیشے کو متاثر نہیں کرتا جیسےexchange.Go()
. ان کیشوں کے لئے ، اعداد و شمار کو بازیافت کرنے کے لئے اب بھی متعلقہ طریقوں کا استعمال کرنا ضروری ہے۔EventLoop()
اعداد و شمار کے لئے تقریب ہے کہ اس سے پہلے حاصل کیا گیا ہےEventLoop()
فنکشن کی واپسی.EventLoop()
اسٹریٹجی کی سطح کو مطلع کرنا ہے کہ بنیادی نظام کو نئے نیٹ ورک کے ڈیٹا موصول ہوئے ہیں۔ پوری حکمت عملی واقعات سے چلتی ہے۔EventLoop()
تقریب ایک واقعہ لوٹاتا ہے، صرف تمام ڈیٹا ذرائع کو عبور کرتا ہے. مثال کے طور پر، ویب ساکٹ کنکشن، اشیاء کی طرف سے پیداexchange.Go()
ڈیٹا حاصل کرنے کی کوشش کریں.EventLoop()
فنکشن صرف لائیو ٹریڈنگ کی حمایت کرتا ہے.
اہم تقریب سے بلایا جب مرکزی موضوع میں واقعات کے لئے سنیںmain()
میں لکھے گئے حکمت عملیوں میںJavaScript
زبان،threading.Thread()
فنکشن ایک تھریڈ بناتا ہے، جسے موجودہ تھریڈ میں ہونے والے واقعات کو سننے کے لیے تھریڈ
{@fun/Global/Dial Dial}، {@fun/Trade/exchange.Go exchange.Go}، {@fun/Global/HttpQuery_Go HttpQuery_Go}
کے__Serve
یہ فنکشن HTTP سروس، TCP سروس، اور Websocket سروس (Http پروٹوکول پر مبنی) بنانے کے لئے استعمال کیا جاتا ہے.
ایک تار لوٹاتا ہے جو تخلیق کردہ سروس کا آئی پی ایڈریس اور پورٹ ریکارڈ کرتا ہے۔ مثال کے طور پر:127.0.0.1:8088
, [::]:8089
.
سٹرنگ
__Serve ((serveURI، ہینڈلر) __Serve ((serveURI، ہینڈلر،...args)
کےserveURI
پیرامیٹر پروٹوکول، آئی پی ایڈریس، بندرگاہ اور سروس منسلک کرنے کی دیگر ترتیبات کو ترتیب دینے کے لئے استعمال کیا جاتا ہے، جیسےhttp://0.0.0.0:8088?gzip=true
، یعنیhttp://:8088?gzip=true
.
serveURI
پیرامیٹرز کی ترتیب، جیسےtcp://127.0.0.1:6666?tls=true
؛ آپ سرٹیفکیٹ اور نجی چابیاں شامل کر سکتے ہیں، جیسےtls=true&cert_pem=xxxx&cert_key_pem=xxxx
.serveURI
پیرامیٹر کی ترتیبات، جیسے:http://127.0.0.1:6666?gzip=true
؛ آپ کمپریشن کی ترتیبات مقرر کر سکتے ہیں:gzip=true
.
کےserveURI
پیرامیٹر Https کے لئے استعمال کیا جاتا ہے، جیسےhttps://127.0.0.1:6666?tls=true&gzip=true
؛ آپ شامل کر سکتے ہیںcert_pem
اورcert_key_pem
سرٹیفکیٹ لوڈ کرنے کے لئے پیرامیٹرز.خدمت کریںURI
سچ
سٹرنگ
کےhandler
پیرامیٹر روٹنگ پروسیسنگ فنکشن (Http پروٹوکول) ، پیغام پروسیسنگ فنکشن (TCP پروٹوکول) ، اور سٹریم پروسیسنگ فنکشن (ویب ساکٹ) میں منتقل کرنے کے لئے استعمال کیا جاتا ہے.
کال بیک فنکشن پیرامیٹر کی طرف سے منتقلhandler
متعدد پیرامیٹرز کی وضاحت کر سکتے ہیں، پہلا پیرامیٹر ctx اعتراض (سیاق و سباق اعتراض) ہے.
ہینڈلر
سچ
فنکشن
کال بیک فنکشن کے اصل پیرامیٹر پیرامیٹر کے طور پر منظورhandler
. کئی پیرامیٹرز ہو سکتے ہیںarg
مثال کے طور پر:
__Serve("http://:8088", function(ctx, a, b, c) {
Log(`ctx.host():`, ctx.host(), ", a=", a, ", b=", b, ", c=", c)
}, 1, 2, 3)
پیرامیٹرز1
, 2
, 3
میں منتقل کر دیا جب فون__Serve()
تقریب پیرامیٹرز کے مطابقa
, b
, c
کال بیک فنکشن میں منظور.
ارگ غلط string، number، bool، object، array، function، null value اور نظام کی حمایت کی دیگر اقسام
function main() {
let httpServer = __Serve("http://:8088?gzip=true", function (ctx) {
Log("http connect from: ", ctx.remoteAddr(), "->", ctx.localAddr())
let path = ctx.path()
if (path == "/") {
ctx.write(JSON.stringify({
path: ctx.path(),
method: ctx.method(),
headers: ctx.headers(),
cookie: ctx.header("Cookie"),
remote: ctx.remoteAddr(),
query: ctx.rawQuery()
}))
} else if (path == "/tickers") {
let ret = exchange.GetTickers()
if (!ret) {
ctx.setStatus(500)
ctx.write(GetLastError())
} else {
ctx.write(JSON.stringify(ret))
}
} else if (path == "/wss") {
if (ctx.upgrade("websocket")) { // upgrade to websocket
while (true) {
let r = ctx.read(10)
if (r == "") {
break
} else if (r) {
if (r == "ticker") {
ctx.write(JSON.stringify(exchange.GetTicker()))
} else {
ctx.write("not support")
}
}
}
Log("websocket closed", ctx.remoteAddr())
}
} else {
ctx.setStatus(404)
}
})
let echoServer = __Serve("tcp://:8089", function (ctx) {
Log("tcp connect from: ", ctx.remoteAddr(), "->", ctx.localAddr())
while (true) {
let d = ctx.read()
if (!d) {
break
}
ctx.write(d)
}
Log("connect closed")
})
Log("http serve on", httpServer, "tcp serve on", echoServer)
for (var i = 0; i < 5; i++) {
if (i == 2) {
// test Http
var retHttp = HttpQuery("http://127.0.0.1:8088?num=123&limit=100", {"debug": true})
Log("retHttp:", retHttp)
} else if (i == 3) {
// test TCP
var tcpConn = Dial("tcp://127.0.0.1:8089")
tcpConn.write("Hello TCP Server")
var retTCP = tcpConn.read()
Log("retTCP:", retTCP)
} else if (i == 4) {
// test Websocket
var wsConn = Dial("ws://127.0.0.1:8088/wss|compress=gzip")
wsConn.write("ticker")
var retWS = wsConn.read(1000)
Log("retWS:", retWS)
// no depth
wsConn.write("depth")
retWS = wsConn.read(1000)
Log("retWS:", retWS)
}
Sleep(1000)
}
}
# Unsupported
// Unsupported
Websocket
سروس HTTP پروٹوکول کی بنیاد پر لاگو کیا جاتا ہے. آپ کے راستے میں ایک روٹنگ شاخ مقرر کر سکتے ہیں اور کے لئے لاگو کرنے کا کوڈ ڈیزائنWebsocket
آپ اس سیکشن میں نمونہ کوڈ کا حوالہ دے سکتے ہیں۔کال بیک فنکشن پیرامیٹر کی طرف سے منتقلhandler
وصول کرتا ہےctx
پیرامیٹر.ctx
پیرامیٹر ایک سیاق و سباق کا اعتراض ہے جو مندرجہ ذیل طریقوں کے ساتھ ڈیٹا حاصل کرنے اور لکھنے کے لئے استعمال ہوتا ہے۔
HTTP/1.1
, tcp
.http://127.0.0.1:8088?num=123
، اور پیرامیٹر کی طرف سے منتقل کال بیک پروسیسنگ تقریبhandler
واپسی"123"
کبctx.query("num")
کہا جاتا ہے.User-Agent
موجودہ درخواست کے عنوانات میں:ctx.header("User-Agent")
.GET
, POST
، وغیرہctx
ویب ساکٹ پروٹوکول میں سیاق و سباق کا اعتراض؛ اگر سوئچ کامیاب ہو تو ایک بولین ویلیو (سچ) ، اور اگر یہ ناکام ہو تو ایک بولین ویلیو (جھوٹا) لوٹاتا ہے۔read
طریقہ عام HTTP پروٹوکول میں معاون نہیں ہے. آپ ٹائم آؤٹ پیرامیٹر کی وضاحت کر سکتے ہیںtimeout_ms
ملی سیکنڈ میں.JSON.stringify()
ایک تار میں JSON اعتراض کوڈ اور پھر اسے لکھنے کے لئے.WebSocket
پروٹوکول، آپ کو کلائنٹ کو کوڈت تار منتقل کرنے کے لئے اس طریقہ کار کا استعمال کر سکتے ہیں.{@fun/Global/HttpQuery HttpQuery}، {@fun/Global/HttpQuery_Go HttpQuery_Go}
ڈیٹا کو مستقل طور پر محفوظ کریں ، فنکشن ایک عالمی لغت فنکشن کو نافذ کرتا ہے جسے محفوظ کیا جاسکتا ہے۔ ڈیٹا کا ڈھانچہ ایک KV ٹیبل ہے جو مستقل طور پر ڈوکر کی مقامی ڈیٹا بیس فائل میں محفوظ ہوتا ہے۔
میں مستقل طور پر محفوظ کلیدی قدر کے اعداد و شمارk-v
کلیدی قدر کے جوڑے.
سٹرنگ، نمبر، بول، آبجیکٹ، صف، صفر قدر
_G() _G(k) _G(k، v)
پیرامیٹرk
محفوظ کردہ کلید-قدر جوڑی میں کلید کا نام ہے، اور بڑے اور چھوٹے نمبر پر حساس نہیں ہے۔
k
غلط
تار، صفر قدر
پیرامیٹرv
محفوظ کلید قدر جوڑی میں کلیدی قدر ہے، جو کسی بھی ڈیٹا ہو سکتا ہے کہ کیا جا سکتا ہےJSON
سلسلہ بندی کی.
v
غلط
سٹرنگ، نمبر، بول، آبجیکٹ، صف، صفر قدر
function main(){
// Set a global variable num with a value of 1
_G("num", 1)
// Change a global variable num to the value of the string ok
_G("num", "ok")
// Delete the global variable num
_G("num", null)
// Returns the value of the global variable num
Log(_G("num"))
// Delete all global variables
_G(null)
// Return to live trading ID
var robotId = _G()
}
def main():
_G("num", 1)
_G("num", "ok")
_G("num", None)
Log(_G("num"))
_G(None)
robotId = _G()
void main() {
_G("num", 1);
_G("num", "ok");
_G("num", NULL);
Log(_G("num"));
_G(NULL);
// Not support auto robotId = _G();
}
ایک علیحدہ ڈیٹا بیس ہر زندہ ٹریڈنگ کے لئے،_G()
اگر حکمت عملی کو دوبارہ شروع کیا جاتا ہے یا ڈوکر چلانے سے روکتا ہے تو یہ فنکشن ہمیشہ موجود رہے گا۔ اگر بیک ٹسٹنگ ختم ہو جاتی ہے تو ، بیک ٹسٹنگ سسٹم میں محفوظ کردہ ڈیٹا کو ڈوکر کے ذریعہ حذف کردیا جاتا ہے۔_G()
استعمال کرتے وقت_G()
محفوظ کردہ ڈیٹا کو برقرار رکھنے کے لئے، یہ ہارڈ ویئر ڈیوائس کی میموری اور ہارڈ ڈسک کی جگہ کے مطابق معقول طور پر استعمال کیا جانا چاہئے، اور غلط استعمال نہیں کیا جانا چاہئے.
جب کال کریں_G()
ایک زندہ ٹریڈنگ میں کام کرتے ہیں اور کوئی پیرامیٹرز منظور کر رہے ہیں،_G()
فنکشن واپس کرتا ہےId
موجودہ لائیو ٹریڈنگ کے._G()
فنکشن، پیرامیٹرv
کی حذف کا اشارہ کرنے کے لئے null کے طور پر منظور کیا جاتا ہےk-v
کلیدی قدر جوڑی._G()
فنکشن، صرف پیرامیٹرk
تار میں منتقل کیا جاتا ہے، اور_G()
فنکشن محفوظ پیرامیٹر کے مساوی کلید قدر لوٹاتا ہےk
._G()
فنکشن، صرف پیرامیٹرk
صفر قدر میں منظور کیا جاتا ہے، اس بات کا اشارہ ہے کہ تمام ریکارڈk-v
کلید قدر جوڑی خارج کر دیا جاتا ہے.k-v
کلیدی قدر کے جوڑے کو مستقل طور پر محفوظ کیا گیا ہے،_G()
تقریب کو دوبارہ بلایا جاتا ہے، جو پیرامیٹر کے طور پر مستقل طور پر محفوظ کیا گیا ہے کی چابی کے نام میں گزر جاتا ہےk
. پیرامیٹر کے طور پر نئی کلید قدر میں منتقلv
اس کو اپ ڈیٹ کریں گےk-v
کلیدی قدر کی جوڑی.
{@fun/Global/DBExec DBExec}
ملی سیکنڈ ٹائم اسٹیمپ یاDate
وقت کی تاروں کے لئے اشیاء.
وقت کی تار. سٹرنگ
_D() _D (وقت کا نشان) _D ((ٹائم اسٹیمپ، ایف ایم ٹی)
ملی سیکنڈ ٹائم اسٹیمپ یاDate
اعتراض.
ٹائم اسٹیمپ
غلط
نمبر، مقصد
فارمیٹ تار،JavaScript
زبان کا ڈیفالٹ فارمیٹ:yyyy-MM-dd hh:mm:ss
; Python
زبان کا ڈیفالٹ فارمیٹ:%Y-%m-%d %H:%M:%S
; C++
زبان کا ڈیفالٹ فارمیٹ:%Y-%m-%d %H:%M:%S
.
ایف ایم ٹی
غلط
سٹرنگ
function main(){
var time = _D()
Log(time)
}
def main():
strTime = _D()
Log(strTime)
void main() {
auto strTime = _D();
Log(strTime);
}
موجودہ ٹائم سٹرنگ حاصل کریں اور پرنٹ کریں:
function main() {
Log(_D(1574993606000))
}
def main():
# Running this code on a server in Beijing time: 2019-11-29 10:13:26 , a docker on another server in another region results in: 2019-11-29 02:13:26
Log(_D(1574993606))
void main() {
Log(_D(1574993606000));
}
ٹائم اسٹیمپ 1574993606000 ہے، کوڈ تبادلوں کا استعمال کرتے ہوئے:
function main() {
Log(_D(1574993606000, "yyyy--MM--dd hh--mm--ss")) // 2019--11--29 10--13--26
}
def main():
# 1574993606 is timestamped in seconds.
Log(_D(1574993606, "%Y--%m--%d %H--%M--%S")) # 2019--11--29 10--13--26
void main() {
Log(_D(1574993606000, "%Y--%m--%d %H--%M--%S")); // 2019--11--29 10--13--26
}
پیرامیٹر کے ساتھ فارمیٹنگfmt
مختلف ہےJavaScript
, Python
، اورC++
زبانیں، جیسا کہ مندرجہ ذیل مثالوں میں دکھایا گیا ہے۔
کسی بھی پیرامیٹرز کو منتقل کئے بغیر موجودہ وقت کی تار لوٹاتا ہے._D()
میں کردارPython
حکمت عملی، آپ کو پتہ ہونا ضروری ہے کہ پیرامیٹرز منظور دوسرے سطح کے ٹائم اسٹیمپ ہیں (جاس کارپٹ اور C ++ حکمت عملی میں ملی سیکنڈ کی سطح کے ٹائم اسٹیمپ، جہاں 1 سیکنڈ 1000 ملی سیکنڈ کے برابر ہے)._D()
براہ راست ٹریڈنگ میں پڑھنے کے قابل ٹائم اسٹیمپ کے ساتھ ایک وقت کی تار کو تجزیہ کرنے کے لئے، آپ کو آپریٹنگ سسٹم کے ٹائم زون اور وقت کی ترتیب پر توجہ دینے کی ضرورت ہے جہاں ڈاکر پروگرام واقع ہے._D()
فنکشن ایک ٹائم اسٹیمپ کو ڈاکر
{@fun/Global/UnixNano UnixNano}، {@fun/Global/Unix Unix}
ایک فلوٹنگ کامنٹ نمبر فارمیٹ کریں.
درستگی کی ترتیب کے مطابق فارمیٹ شدہ فلوٹنگ کامنٹ نمبر نمبر
_N() _N(نمبر) _N ((نمبر، درستگی)
فلوٹنگ کامن نمبر جس کو فارمیٹ کرنے کی ضرورت ہے۔
نمبر
سچ
نمبر
فارمیٹنگ کے لئے درستگی کی ترتیب، پیرامیٹرprecision
ایک عدد ہے، اور پیرامیٹرprecision
ڈیفالٹس 4 پر.
درستگی
غلط
نمبر
function main(){
var i = 3.1415
Log(i)
var ii = _N(i, 2)
Log(ii)
}
def main():
i = 3.1415
Log(i)
ii = _N(i, 2)
Log(ii)
void main() {
auto i = 3.1415;
Log(i);
auto ii = _N(i, 2);
Log(ii);
}
مثال کے طور پر_N(3.1415, 2)
کے بعد قدر کو حذف کریں گے3.1415
دو اعشاریہ مقامات اور تقریب لوٹاتا ہے3.14
.
function main(){
var i = 1300
Log(i)
var ii = _N(i, -3)
// Check the logs and see that it is 1000
Log(ii)
}
def main():
i = 1300
Log(i)
ii = _N(i, -3)
Log(ii)
void main() {
auto i = 1300;
Log(i);
auto ii = _N(i, -3);
Log(ii);
}
اگر آپ کو دسویں ہندسہ کے بائیں طرف تمام N ہندسوں کو 0 میں تبدیل کرنے کی ضرورت ہے، تو آپ اسے اس طرح لکھ سکتے ہیں:
پیرامیٹرprecision
ایک مثبت عدد، منفی عدد ہو سکتا ہے.
{@fun/Trade/exchange.SetPrecision تبادلہ.SetPrecision}
انٹرفیس غلطی رواداری کے لئے دوبارہ کوشش کریں.
کال بیک فنکشن کی واپسی کی قیمت جب یہ عملدرآمد کیا جاتا ہے. تمام اقسام نظام کی طرف سے حمایت کر رہے ہیں سوائےمنطقی غلط قدراورnull قدر.
_C(pfn) _C ((pfn،...args)
پیرامیٹرpfn
ایک تقریب حوالہ ہے، جو ایک ہےکال بیک فنکشن.
پی ایف این
سچ
فنکشن
پیرامیٹرزکال بیک افعال، ایک سے زیادہ پیرامیٹر ہو سکتا ہےarg
. پیرامیٹرز کی قسم اور تعدادarg
کے پیرامیٹرز پر منحصرکال بیک فنکشن.
ارگ
غلط
تار، نمبر، بول، آبجیکٹ، صف، فنکشن، تمام اقسام نظام کی طرف سے حمایت کر رہے ہیں، جیسے null اقدار
function main(){
var ticker = _C(exchange.GetTicker)
// Adjust _C() function retry interval to 2 seconds
_CDelay(2000)
var depth = _C(exchange.GetDepth)
Log(ticker)
Log(depth)
}
def main():
ticker = _C(exchange.GetTicker)
_CDelay(2000)
depth = _C(exchange.GetDepth)
Log(ticker)
Log(depth)
void main() {
auto ticker = _C(exchange.GetTicker);
_CDelay(2000);
auto depth = _C(exchange.GetDepth);
Log(ticker);
Log(depth);
}
بغیر پیرامیٹرز کے غلطی برداشت کرنے والے افعال کے لئے:
function main(){
var records = _C(exchange.GetRecords, PERIOD_D1)
Log(records)
}
def main():
records = _C(exchange.GetRecords, PERIOD_D1)
Log(records)
void main() {
auto records = _C(exchange.GetRecords, PERIOD_D1);
Log(records);
}
ایسے افعال کے لئے جن کے پیرامیٹرز غلطی برداشت کرنے والے ہیں:
var test = function(a, b){
var time = new Date().getTime() / 1000
if(time % b == 3){
Log("Eligible!", "#FF0000")
return true
}
Log("Retry!", "#FF0000")
return false
}
function main(){
var ret = _C(test, 1, 5)
Log(ret)
}
import time
def test(a, b):
ts = time.time()
if ts % b == 3:
Log("Eligible!", "#FF0000")
return True
Log("Retry!", "#FF0000")
return False
def main():
ret = _C(test, 1, 5)
Log(ret)
// C++ does not support fault tolerance for custom functions in this way
یہ اپنی مرضی کے افعال کی خرابی برداشت کے لئے بھی استعمال کیا جا سکتا ہے:
کے_C()
function جب تک یہ کامیابی کے ساتھ واپس آتا ہے (پیرامیٹر کی طرف سے حوالہ دیا گیا تقریب) مخصوص تقریب کو فون کرنے کے لئے جاری رکھیں گےpfn
واپسیصفریاغلطجب بلایا جائے گا دوبارہ کوشش کریں گےpfn
) مثال کے طور پر_C(exchange.GetTicker)
. ڈیفالٹ دوبارہ کوشش کے وقفہ 3 سیکنڈ ہے، آپ کو کال کر سکتے ہیں_CDelay()
تقریب دوبارہ کوشش کے وقفے مقرر کرنے کے لئے. مثال کے طور پر،_CDelay(1000)
کے دوبارہ ٹیسٹ کے وقفے کو تبدیل کرنے کا مطلب ہے_C()
1 سیکنڈ کے لئے کام.
غلطی رواداری مندرجہ ذیل افعال کے لئے کیا جا سکتا ہے، لیکن اس تک محدود نہیں ہے:
exchange.GetTicker()
exchange.GetDepth()
exchange.GetTrades()
exchange.GetRecords()
exchange.GetAccount()
exchange.GetOrders()
exchange.GetOrder()
exchange.GetPositions()
سب کو بلایا جا سکتا ہے_C()
غلطی رواداری کے لئے تقریب._C()
تقریب مندرجہ بالا درج تقریب غلطی رواداری تک محدود نہیں ہے، پیرامیٹرpfn
ایک فنکشن کال کے بجائے ایک فنکشن ریفرنس ہے.
نوٹ کریں کہ یہ_C(exchange.GetTicker)
نہیں_C(exchange.GetTicker())
.صف کے چوراہے کے ادوار کی تعداد لوٹاتا ہےarr1
اور صفarr2
.
صف کے کراس پیریڈس کی تعدادarr1
اور صفarr2
.
نمبر
_Cross ((arr1، arr2)
عناصر قسم کی صفیں ہیںnumber
.
ارر1
سچ
صف
عناصر قسم کی صفیں ہیںnumber
.
arr2
سچ
صف
// Fast line indicator
var arr1 = [1,2,3,4,5,6,8,8,9]
// Slow line indicator
var arr2 = [2,3,4,5,6,7,7,7,7]
function main(){
Log("_Cross(arr1, arr2) : ", _Cross(arr1, arr2))
Log("_Cross(arr2, arr1) : ", _Cross(arr2, arr1))
}
arr1 = [1,2,3,4,5,6,8,8,9]
arr2 = [2,3,4,5,6,7,7,7,7]
def main():
Log("_Cross(arr1, arr2) : ", _Cross(arr1, arr2))
Log("_Cross(arr2, arr1) : ", _Cross(arr2, arr1))
void main() {
vector<double> arr1 = {1,2,3,4,5,6,8,8,9};
vector<double> arr2 = {2,3,4,5,6,7,7,7,7};
Log("_Cross(arr1, arr2) : ", _Cross(arr1, arr2));
Log("_Cross(arr2, arr1) : ", _Cross(arr2, arr1));
}
اعداد و شمار کا ایک سیٹ _Cross ((Arr1، Arr2) فنکشن کی جانچ کرنے کے لئے تیار کیا جا سکتا ہے:
اگر واپسی کی قیمت_Cross()
فنکشن ایک مثبت نمبر ہے، یہ اوپر کی طرف دخول کی مدت کی نشاندہی کرتا ہے، اگر یہ منفی نمبر ہے، تو یہ نیچے کی طرف دخول کی مدت کی نشاندہی کرتا ہے، 0 کا مطلب موجودہ قیمت کے برابر ہے. استعمال کے لئے مخصوص ہدایات:تجزیہ اور استعمال کے لئے ہدایات کے بارے میں بلٹ ان تقریب _Cross.
فنکشنJSONParse()
تجزیہ کرنے کے لئے استعمال کیا جاتا ہےJSON
strings.
JSON
اعتراض.
چیز
JSONParse (s)
JSON
تار.
s
سچ
سٹرنگ
function main() {
let s1 = '{"num": 8754613216564987646512354656874651651358}'
Log("JSON.parse:", JSON.parse(s1)) // JSON.parse: {"num":8.754613216564988e+39}
Log("JSONParse:", JSONParse(s1)) // JSONParse: {"num":"8754613216564987646512354656874651651358"}
let s2 = '{"num": 123}'
Log("JSON.parse:", JSON.parse(s2)) // JSON.parse: {"num":123}
Log("JSONParse:", JSONParse(s2)) // JSONParse: {"num":123}
}
import json
def main():
s1 = '{"num": 8754613216564987646512354656874651651358}'
Log("json.loads:", json.loads(s1)) # json.loads: map[num:8.754613216564987e+39]
Log("JSONParse:", JSONParse(s1)) # JSONParse: map[num:8754613216564987646512354656874651651358]
s2 = '{"num": 123}'
Log("json.loads:", json.loads(s2)) # json.loads: map[num:123]
Log("JSONParse:", JSONParse(s2)) # JSONParse: map[num:123]
void main() {
auto s1 = "{\"num\":8754613216564987646512354656874651651358}";
Log("json::parse:", json::parse(s1));
// Log("JSONParse:", JSONParse(s1)); // The function is not supported.
auto s2 = "{\"num\":123}";
Log("json::parse:", json::parse(s2));
// Log("JSONParse:", JSONParse(s2)); // The function is not supported.
}
بڑے اقدار کے ساتھ JSON تاروں کو درست طریقے سے تجزیہ کیا جا سکتا ہے، اور یہ تار اقسام کے طور پر بڑے اقدار تجزیہ کرے گا.JSONParse()
فنکشن backtest کے نظام میں حمایت نہیں کی جاتی ہے.
آؤٹ پٹ لاگ۔
لاگ ((...msgs)
پیرامیٹرmsg
پیداوار کا مواد ہے، اور پیرامیٹرmsg
ایک سے زیادہ پاس کیا جا سکتا ہے.
پی ایس جی
غلط
تار، نمبر، بول، آبجیکٹ، صف، کسی بھی قسم کے نظام کی طرف سے حمایت کی جیسے null.
function main() {
Log("msg1", "msg2", "msg3")
}
def main():
Log("msg1", "msg2", "msg3")
void main() {
Log("msg1", "msg2", "msg3");
}
متعددmsg
پیرامیٹرز کو منتقل کیا جا سکتا ہے:
function main() {
Log("Hello, FMZ Quant!@")
Sleep(1000 * 5)
// Add #ff0000 to the string to print the log in red and push the message
Log("Hello, #ff0000@")
}
def main():
Log("Hello, FMZ Quant!@")
Sleep(1000 * 5)
Log("Hello, #ff0000@")
void main() {
Log("Hello, FMZ Quant!@");
Sleep(1000 * 5);
Log("Hello, #ff0000@");
}
یہ آؤٹ پٹ پیغام کا رنگ مقرر کرنے کی حمایت کرتا ہے، اگر ہم رنگ کی ترتیب اور ایک ہی وقت میں دھکا استعمال کرتے ہیں، ہم رنگ پہلے مقرر کرنے کی ضرورت ہے اور استعمال کرتے ہیں@
آخری دھکا مقرر کرنے کے لئے کردار.
function main() {
Log("`data:image/png;base64,AAAA`")
}
def main():
Log("`data:image/png;base64,AAAA`")
void main() {
Log("`data:image/png;base64,AAAA`");
}
کےLog()
تقریب پرنٹنگ کی حمایت کرتا ہےbase64
کوڈ شدہ تصاویر، کے ساتھ شروع`
اور اس کے ساتھ ختم`
مثال کے طور پر:
import matplotlib.pyplot as plt
def main():
plt.plot([3,6,2,4,7,1])
Log(plt)
کےLog()
کی براہ راست پرنٹنگ کی حمایت کرتا ہےPython
ہےmatplotlib.pyplot
شے. جب تک کہ شے میں شامل ہےsavefig
طریقہ کار، یہ براہ راست پرنٹ کیا جا سکتا ہےLog
فنکشن، مثال کے طور پر:
function main() {
Log("[trans]中文|abc[/trans]")
}
def main():
Log("[trans]中文|abc[/trans]")
void main() {
Log("[trans]中文|abc[/trans]");
}
کےLog()
زبان سوئچنگ کی حمایت کرتا ہے.Log()
فنکشن آؤٹ پٹ متن جو پلیٹ فارم کے صفحے پر زبان کی ترتیب کی بنیاد پر خود بخود اسی زبان پر سوئچ کرے گا، مثال کے طور پر:
کےLog()
فنکشن لائیو ٹریڈنگ یا بیک ٹسٹنگ سسٹم کے لاگ ایریا میں ایک لاگ میسج آؤٹ پٹ کرتا ہے ، اور جب لائیو ٹریڈنگ چل رہی ہے تو لاگ کو لائیو ٹریڈنگ ڈیٹا بیس میں محفوظ کیا جاتا ہے۔Log()
تقریب کے ساتھ ختم ہونے والے ایک لاگ پیغام کی پیداوار@
کردار، اس کے بعد اس لاگ میں داخل ہو جائے گا پیغام دھکا قطار. ای میل ایڈریس پر دھکا، ویب ہک ایڈریس، وغیرہ میں تشکیلترتیبات دبائیںموجودہ ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم اکاؤنٹ کی. پیغام دھکا کی طرف سے حمایت نہیں ہےڈیبگنگ ٹولز، بیک ٹسٹنگ سسٹم۔ پیغام کو آگے بڑھانے کے لئے تعدد کی حد ہے۔ مخصوص پابندی کے قواعد مندرجہ ذیل ہیں: براہ راست تجارت کے 20 سیکنڈ کے چکر کے اندر ، صرف آخری پش پیغام کو برقرار رکھا جائے گا اور آگے بڑھایا جائے گا ، اور دوسرے پیغامات کو فلٹر کیا جائے گا اور آگے نہیں بڑھایا جائے گا (لاگ فنکشن کے ذریعہ پش لاگ آؤٹ پٹ کو طباعت کیا جائے گا اور لاگ ایریا میں عام طور پر دکھایا جائے گا۔)
کے لئےWebHook
دھکا، آپ کی طرف سے لکھا سروس پروگرام استعمال کر سکتے ہیںGolang
:
package main
import (
"fmt"
"net/http"
)
func Handle (w http.ResponseWriter, r *http.Request) {
defer func() {
fmt.Println("req:", *r)
}()
}
func main () {
fmt.Println("listen http://localhost:9090")
http.HandleFunc("/data", Handle)
http.ListenAndServe(":9090", nil)
}
سیٹWebHook
میںترتیبات دبائیں: http://XXX.XX.XXX.XX:9090/data?data=Hello_FMZ
.
تحریری چلانے کے بعدGolang
سروس کے پروگرام، ہم حکمت عملی لائیو ٹریڈنگ چلانے شروع، مندرجہ ذیل میں لکھا حکمت عملی ہےJavaScript
زبان، حکمت عملی پر عملدرآمد کی طرف سے چلتا ہےLog()
تقریب اور پیغام کو دھکا:
function main() {
Log("msg", "@")
}
میں لکھا ایک سروس پروگرامGolang
زبان دھکا وصول کرتا ہے اور سروس پروگرام پیغام پرنٹ کرتا ہے:
listen http://localhost:9090
req: {GET /data?data=Hello_FMZ HTTP/1.1 1 1 map[User-Agent:[Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.x.xxxx.xxx Safari/537.36] Accept-Encoding:[gzip]] {} <nil> 0 [] false 1XX.XX.X.XX:9090 map[] map[] <nil> map[] XXX.XX.XXX.XX:4xxx2 /data?data=Hello_FMZ <nil> <nil> <nil> 0xc420056300
{@fun/Log/LogReset LogReset}، {@fun/Log/LogVacuum LogVacuum} {@fun/Log/LogReset LogReset}، {@fun/Log/LogVacuum LogVacuum}
منافع اور نقصان کی قیمت ریکارڈ کریں، منافع اور نقصان کی قیمت پرنٹ کریں اور منافع اور نقصان کی قیمت پر مبنی واپسی کے منحنی خطوط کو پلاٹ کریں.
لاگ منافع ((منافع) LogProfit ((منافع،...args)
پیرامیٹرprofit
آمدنی کے اعداد و شمار ہیں، جو حکمت عملی میں ڈیزائن الگورتھم اور حساب سے ملتے ہیں.
منافع
سچ
نمبر
آمدنی کے ریکارڈ میں ضمنی معلومات کو آؤٹ پٹ کرنے کے لئے توسیع شدہ پیرامیٹر،arg
پیرامیٹرز ایک سے زیادہ منتقل کیا جا سکتا ہے.
ارگ
غلط
تار، نمبر، بول، آبجیکٹ، صف، کسی بھی قسم کے نظام کی طرف سے حمایت کی جیسے null.
function main() {
// Print 30 points on the earnings chart
for(var i = 0; i < 30; i++) {
LogProfit(i, '&')
Sleep(500)
}
}
def main():
for i in range(30):
LogProfit(i, '&')
Sleep(500)
void main() {
for(int i = 0; i < 30; i++) {
LogProfit(i, '&');
Sleep(500);
}
}
کےLogProfit
فنکشن، اگر یہ کردار کے ساتھ ختم ہوتا ہے&
، صرف آمدنی کا چارٹ تیار کرتا ہے اور آمدنی کا نوشتہ نہیں پرنٹ کرتا ہے۔ مثال کے طور پر:
{@fun/Log/LogProfitReset LogProfitReset}
تمام آمدنی کے نوشتہ جات، آمدنی کے چارٹ کو صاف کریں.
لاگپروفٹ ری سیٹ کریں (() لاگ منافع ری سیٹ (باقی)
کےremain
پیرامیٹر استعمال کیا جاتا ہے لاگ ان اندراجات کی تعداد کی وضاحت کرنے کے لئے (انتہائی قدر) رکھنے کے لئے.
رہنا
غلط
نمبر
function main() {
// Print 30 points on the revenue chart, then reset and keep only the last 10 points
for(var i = 0; i < 30; i++) {
LogProfit(i)
Sleep(500)
}
LogProfitReset(10)
}
def main():
for i in range(30):
LogProfit(i)
Sleep(500)
LogProfitReset(10)
void main() {
for(int i = 0; i < 30; i++) {
LogProfit(i);
Sleep(500);
}
LogProfitReset(10);
}
{@fun/Log/LogProfit لاگپروفٹ}
بیک ٹسٹنگ سسٹم یا لائیو ٹریڈنگ پیج کے اسٹیٹس بار میں آؤٹ پٹ کی معلومات۔
لاگ اسٹیٹس ((...msgs)
پیرامیٹرmsg
پیداوار کا مواد ہے، اور پیرامیٹرmsg
ایک سے زیادہ پاس کیا جا سکتا ہے.
پی ایس جی
غلط
تار، نمبر، بول، آبجیکٹ، صف، کسی بھی قسم کے نظام کی طرف سے حمایت کی جیسے null.
function main() {
LogStatus('This is a general status alert')
LogStatus('This is a status alert in red font #ff0000')
LogStatus('This is a multi-line status message \n I am the second line')
}
def main():
LogStatus('This is a general status alert')
LogStatus('This is a status alert in red font #ff0000')
LogStatus('This is a multi-line status message \n I am the second line')
void main() {
LogStatus("This is a general status alert");
LogStatus("This is a status alert in red font #ff0000");
LogStatus("This is a multi-line status message \n I am the second line");
}
یہ آؤٹ پٹ مواد کا رنگ مقرر کرنے کی حمایت کرتا ہے:
function main() {
var table = {type: 'table', title: 'Position information', cols: ['Column 1', 'Column 2'], rows: [ ['abc', 'def'], ['ABC', 'support color #ff0000']]}
// JSON serialization with the ` character on both sides, as a complex message format (support tables currently)
LogStatus('`' + JSON.stringify(table) + '`')
// Table information can also appear in multiple rows
LogStatus('First line of message\n`' + JSON.stringify(table) + '`\n third line of message')
// It supports multiple tables at the same time, will be displayed in a group with TAB
LogStatus('`' + JSON.stringify([table, table]) + '`')
// You can also construct a button in the form, and use the GetCommand strategy to receive the contents of the cmd attribute
var table = {
type: 'table',
title: 'Position operations',
cols: ['Column 1', 'Column 2', 'Action'],
rows: [
['abc', 'def', {'type':'button', 'cmd': 'coverAll', 'name': 'Close out positions'}]
]
}
LogStatus('`' + JSON.stringify(table) + '`')
// Or construct a separate button
LogStatus('`' + JSON.stringify({'type':'button', 'cmd': 'coverAll', 'name': 'Close out positions'}) + '`')
// Customizable button style (bootstrap's button attribute)
LogStatus('`' + JSON.stringify({'type':'button', 'class': 'btn btn-xs btn-danger', 'cmd': 'coverAll', 'name': 'Close out positions'}) + '`')
}
import json
def main():
table = {"type": "table", "title": "Position information", "cols": ["Column 1", "Column 2"], "rows": [["abc", "def"], ["ABC", "support color #ff0000"]]}
LogStatus('`' + json.dumps(table) + '`')
LogStatus('First line of message\n`' + json.dumps(table) + '`\n third line of message')
LogStatus('`' + json.dumps([table, table]) + '`')
table = {
"type" : "table",
"title" : "Position operations",
"cols" : ["Column 1", "Column 2", "Action"],
"rows" : [
["abc", "def", {"type": "button", "cmd": "coverAll", "name": "Close out positions"}]
]
}
LogStatus('`' + json.dumps(table) + '`')
LogStatus('`' + json.dumps({"type": "button", "cmd": "coverAll", "name": "Close out positions"}) + '`')
LogStatus('`' + json.dumps({"type": "button", "class": "btn btn-xs btn-danger", "cmd": "coverAll", "name": "Close out positions"}) + '`')
void main() {
json table = R"({"type": "table", "title": "Position information", "cols": ["Column 1", "Column 2"], "rows": [["abc", "def"], ["ABC", "support color #ff0000"]]})"_json;
LogStatus("`" + table.dump() + "`");
LogStatus("First line of message\n`" + table.dump() + "`\n third line of message");
json arr = R"([])"_json;
arr.push_back(table);
arr.push_back(table);
LogStatus("`" + arr.dump() + "`");
table = R"({
"type" : "table",
"title" : "Position operations",
"cols" : ["Column 1", "Column 2", "Action"],
"rows" : [
["abc", "def", {"type": "button", "cmd": "coverAll", "name": "Close out positions"}]
]
})"_json;
LogStatus("`" + table.dump() + "`");
LogStatus("`" + R"({"type": "button", "cmd": "coverAll", "name": "Close out positions"})"_json.dump() + "`");
LogStatus("`" + R"({"type": "button", "class": "btn btn-xs btn-danger", "cmd": "coverAll", "name": "Close out positions"})"_json.dump() + "`");
}
حالت بار میں ڈیٹا آؤٹ پٹ کا مثال:
function main() {
var table = {
type: "table",
title: "status bar button style",
cols: ["default", "original", "success", "info", "warning", "danger"],
rows: [
[
{"type":"button", "class": "btn btn-xs btn-default", "name": "default"},
{"type":"button", "class": "btn btn-xs btn-primary", "name": "original"},
{"type":"button", "class": "btn btn-xs btn-success", "name": "success"},
{"type":"button", "class": "btn btn-xs btn-info", "name": "info"},
{"type":"button", "class": "btn btn-xs btn-warning", "name": "warning"},
{"type":"button", "class": "btn btn-xs btn-danger", "name": "danger"}
]
]
}
LogStatus("`" + JSON.stringify(table) + "`")
}
import json
def main():
table = {
"type": "table",
"title": "status bar button style",
"cols": ["default", "original", "success", "info", "warning", "danger"],
"rows": [
[
{"type":"button", "class": "btn btn-xs btn-default", "name": "default"},
{"type":"button", "class": "btn btn-xs btn-primary", "name": "original"},
{"type":"button", "class": "btn btn-xs btn-success", "name": "success"},
{"type":"button", "class": "btn btn-xs btn-info", "name": "info"},
{"type":"button", "class": "btn btn-xs btn-warning", "name": "warning"},
{"type":"button", "class": "btn btn-xs btn-danger", "name": "danger"}
]
]
}
LogStatus("`" + json.dumps(table) + "`")
void main() {
json table = R"({
"type": "table",
"title": "status bar button style",
"cols": ["default", "original", "success", "info", "warning", "danger"],
"rows": [
[
{"type":"button", "class": "btn btn-xs btn-default", "name": "default"},
{"type":"button", "class": "btn btn-xs btn-primary", "name": "original"},
{"type":"button", "class": "btn btn-xs btn-success", "name": "success"},
{"type":"button", "class": "btn btn-xs btn-info", "name": "info"},
{"type":"button", "class": "btn btn-xs btn-warning", "name": "warning"},
{"type":"button", "class": "btn btn-xs btn-danger", "name": "danger"}
]
]
})"_json;
LogStatus("`" + table.dump() + "`");
}
یہ اسٹیٹس بار (پرانے بٹن کی ساخت) میں بٹن کنٹرولز ڈیزائن کرنے کے لئے حمایت کرتا ہے:
function main() {
var table = {
type: "table",
title: "Status bar button disable, description function test",
cols: ["Column 1", "Column 2", "Column 3"],
rows: []
}
var button1 = {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button"}
var button2 = {"type": "button", "name": "button2", "cmd": "button2", "description": "This is the second button, set to disabled", "disabled": true}
var button3 = {"type": "button", "name": "button3", "cmd": "button3", "description": "This is the third button, set to enable", "disabled": false}
table.rows.push([button1, button2, button3])
LogStatus("`" + JSON.stringify(table) + "`")
}
import json
def main():
table = {
"type": "table",
"title": "Status bar button disable, description function test",
"cols": ["Column 1", "Column 2", "Column 3"],
"rows": []
}
button1 = {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button"}
button2 = {"type": "button", "name": "button2", "cmd": "button2", "description": "This is the second button, set to disabled", "disabled": True}
button3 = {"type": "button", "name": "button3", "cmd": "button3", "description": "This is the third button, set to enable", "disabled": False}
table["rows"].append([button1, button2, button3])
LogStatus("`" + json.dumps(table) + "`")
void main() {
json table = R"({
"type": "table",
"title": "Status bar button disable, description function test",
"cols": ["Column 1", "Column 2", "Column 3"],
"rows": []
})"_json;
json button1 = R"({"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button"})"_json;
json button2 = R"({"type": "button", "name": "button2", "cmd": "button2", "description": "This is the second button, set to disabled", "disabled": true})"_json;
json button3 = R"({"type": "button", "name": "button3", "cmd": "button3", "description": "This is the third button, set to enable", "disabled": false})"_json;
json arr = R"([])"_json;
arr.push_back(button1);
arr.push_back(button2);
arr.push_back(button3);
table["rows"].push_back(arr);
LogStatus("`" + table.dump() + "`");
}
حالت بار بٹن (پرانے بٹن کی ساخت) کی غیر فعال، وضاحت تقریب مقرر کریں:
function test1() {
Log("Calling custom functions")
}
function main() {
while (true) {
var table = {
type: 'table',
title: 'operation',
cols: ['column1', 'column2', 'Action'],
rows: [
['a', '1', {
'type': 'button',
'cmd': "CoverAll",
'name': 'Close out positions'
}],
['b', '1', {
'type': 'button',
'cmd': 10,
'name': 'Send values'
}],
['c', '1', {
'type': 'button',
'cmd': _D(),
'name': 'Calling functions'
}],
['d', '1', {
'type': 'button',
'cmd': 'test1',
'name': 'Calling custom functions'
}]
]
}
LogStatus(_D(), "\n", '`' + JSON.stringify(table) + '`')
var str_cmd = GetCommand()
if (str_cmd) {
Log("Received interaction data str_cmd:", "type:", typeof(str_cmd), "value:", str_cmd)
if(str_cmd == "test1") {
test1()
}
}
Sleep(500)
}
}
import json
def test1():
Log("Calling custom functions")
def main():
while True:
table = {
"type": "table",
"title": "operation",
"cols": ["column1", "column2", "Action"],
"rows": [
["a", "1", {
"type": "button",
"cmd": "CoverAll",
"name": "Close out positions"
}],
["b", "1", {
"type": "button",
"cmd": 10,
"name": "Send values"
}],
["c", "1", {
"type": "button",
"cmd": _D(),
"name": "Calling functions"
}],
["d", "1", {
"type": "button",
"cmd": "test1",
"name": "Calling custom functions"
}]
]
}
LogStatus(_D(), "\n", "`" + json.dumps(table) + "`")
str_cmd = GetCommand()
if str_cmd:
Log("Received interaction data str_cmd:", "type:", typeof(str_cmd), "value:", str_cmd)
if str_cmd == "test1":
test1()
Sleep(500)
void test1() {
Log("Calling custom functions");
}
void main() {
while(true) {
json table = R"({
"type": "table",
"title": "operation",
"cols": ["column1", "column2", "Action"],
"rows": [
["a", "1", {
"type": "button",
"cmd": "CoverAll",
"name": "Close out positions"
}],
["b", "1", {
"type": "button",
"cmd": 10,
"name": "Send values"
}],
["c", "1", {
"type": "button",
"cmd": "",
"name": "Calling functions"
}],
["d", "1", {
"type": "button",
"cmd": "test1",
"name": "Calling custom functions"
}]
]
})"_json;
table["rows"][2][2]["cmd"] = _D();
LogStatus(_D(), "\n", "`" + table.dump() + "`");
auto str_cmd = GetCommand();
if(str_cmd != "") {
Log("Received interaction data str_cmd:", "type:", typeof(str_cmd), "value:", str_cmd);
if(str_cmd == "test1") {
test1();
}
}
Sleep(500);
}
}
کے ساتھ مل کرGetCommand()
فنکشن، اسٹیٹس بار بٹن انٹرایکشن فنکشن (پرانے بٹن کی ساخت) کی تعمیر:
function main() {
var tbl = {
type: "table",
title: "operation",
cols: ["column1", "column2"],
rows: [
["Open position operation", {"type": "button", "cmd": "open", "name": "open position", "input": {"name": "number of open positions", "type": "number", "defValue": 1}}],
["Close position operation", {"type": "button", "cmd": "coverAll", "name": "close all positions"}]
]
}
LogStatus(_D(), "\n", "`" + JSON.stringify(tbl) + "`")
while (true) {
var cmd = GetCommand()
if (cmd) {
Log("cmd:", cmd)
}
Sleep(1000)
}
}
import json
def main():
tbl = {
"type": "table",
"title": "operation",
"cols": ["column1", "column2"],
"rows": [
["Open position operation", {"type": "button", "cmd": "open", "name": "open position", "input": {"name": "number of open positions", "type": "number", "defValue": 1}}],
["Close position operation", {"type": "button", "cmd": "coverAll", "name": "close all positions"}]
]
}
LogStatus(_D(), "\n", "`" + json.dumps(tbl) + "`")
while True:
cmd = GetCommand()
if cmd:
Log("cmd:", cmd)
Sleep(1000)
void main() {
json tbl = R"({
"type": "table",
"title": "operation",
"cols": ["column1", "column2"],
"rows": [
["Open position operation", {"type": "button", "cmd": "open", "name": "open position", "input": {"name": "number of open positions", "type": "number", "defValue": 1}}],
["Close position operation", {"type": "button", "cmd": "coverAll", "name": "close all positions"}]
]
})"_json;
LogStatus(_D(), "\n", "`" + tbl.dump() + "`");
while(true) {
auto cmd = GetCommand();
if(cmd != "") {
Log("cmd:", cmd);
}
Sleep(1000);
}
}
ان پٹ ڈیٹا بھی تعاون یافتہ ہے جب انٹرایکشن کے لئے حالت بار بٹن کی تعمیر، اور انٹرایکشن کے احکامات کی طرف سے قبضہ کر رہے ہیںGetCommand()
فنکشن بالآخر. شامل کریںinput
اشیاء (پرانے بٹن کی ساخت) حالت بار میں بٹن کنٹرول کے اعداد و شمار کی ساخت میں، مثال کے طور پر شامل کرنے"input": {"name": "number of open positions", "type": "number", "defValue": 1}
کرنے کے لئے{"type": "button", "cmd": "open", "name": "open position"}
جب بٹن پر کلک کیا جاتا ہے تو ان پٹ باکس کنٹرول کے ساتھ ایک پاپ اپ ظاہر ہو جائے گا (ان پٹ باکس میں ڈیفالٹ قدر 1 ہے، جو کہ ڈیٹا کی طرف سے مقرر کیا جاتا ہےdefValue
آپ بٹن کمانڈ کے ساتھ ساتھ بھیجنے کے لئے ڈیٹا درج کرسکتے ہیں۔ مثال کے طور پر ، جب مندرجہ ذیل ٹیسٹ کوڈ چلتا ہے ، "اوپن پوزیشن" بٹن پر کلک کرنے کے بعد ، ان پٹ باکس کے ساتھ ایک پاپ اپ ونڈو پاپ اپ ہوجاتی ہے۔ ان پٹ باکس میں 111 درج کریں اور GetCommand()
فنکشن اس کے بعد پیغام کو پکڑ لے گا:open:111
.
function main() {
var tbl = {
type: "table",
title: "Demonstrate grouping button control",
cols: ["operation"],
rows: []
}
// Creating a grouping button control structure
var groupBtn = {
type: "button",
cmd: "open",
name: "open positions",
group: [
{"name": "orderType", "description": "下单方式|order type", "type": "selected", "defValue": "market order|pending order"},
{"name": "tradePrice@orderType==1", "description": "交易价格|trade price", "type": "number", "defValue": 100},
{"name": "orderAmount", "description": "委托数量|order amount", "type": "string", "defValue": 100},
{"name": "boolean", "description": "yes/no|boolean", "type": "boolean", "defValue": true}
]
}
// test button 1
var testBtn1 = {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
var testBtn2 = {"type": "button", "name": "button2", "cmd": "button2", "description": "This is the second button.", "input": {"name": "number of positions opened", "type": "number", "defValue": 1}}
// Add groupBtn to tbl
tbl.rows.push([groupBtn])
// It supports multiple buttons in a cell of a status bar table, i.e. the data in a cell is an array of button structures: [testBtn1, testBtn2].
tbl.rows.push([[testBtn1, testBtn2]])
while (true) {
LogStatus("`" + JSON.stringify(tbl) + "`", "\n", "The grouping button control can also be set directly on the status bar in addition to being set on the status bar form:", "`" + JSON.stringify(groupBtn) + "`")
var cmd = GetCommand()
if (cmd) {
Log("cmd:", cmd)
}
Sleep(5000)
}
}
import json
def main():
tbl = {
"type": "table",
"title": "Demonstrate grouping button control",
"cols": ["operation"],
"rows": []
}
groupBtn = {
"type": "button",
"cmd": "open",
"name": "open positions",
"group": [
{"name": "orderType", "description": "下单方式|order type", "type": "selected", "defValue": "market order|pending order"},
{"name": "tradePrice@orderType==1", "description": "交易价格|trade price", "type": "number", "defValue": 100},
{"name": "orderAmount", "description": "委托数量|order amount", "type": "string", "defValue": 100},
{"name": "boolean", "description": "yes/no|boolean", "type": "boolean", "defValue": True}
]
}
testBtn1 = {"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."}
testBtn2 = {"type": "button", "name": "button2", "cmd": "button2", "description": "This is the second button.", "input": {"name": "number of positions opened", "type": "number", "defValue": 1}}
tbl["rows"].append([groupBtn])
tbl["rows"].append([[testBtn1, testBtn2]])
while True:
LogStatus("`" + json.dumps(tbl) + "`", "\n", "The grouping button control can also be set directly on the status bar in addition to being set on the status bar form:", "`" + json.dumps(groupBtn) + "`")
cmd = GetCommand()
if cmd:
Log("cmd:", cmd)
Sleep(5000)
void main() {
json tbl = R"({
"type": "table",
"title": "Demonstrate grouping button control",
"cols": ["operation"],
"rows": []
})"_json;
json groupBtn = R"({
"type": "button",
"name": "open positions",
"cmd": "open",
"group": [
{"name": "orderType", "description": "下单方式|order type", "type": "selected", "defValue": "market order|pending order"},
{"name": "tradePrice@orderType==1", "description": "交易价格|trade price", "type": "number", "defValue": 100},
{"name": "orderAmount", "description": "委托数量|order amount", "type": "string", "defValue": 100},
{"name": "boolean", "description": "yes/no|boolean", "type": "boolean", "defValue": true}
]})"_json;
json testBtn1 = R"({"type": "button", "name": "button1", "cmd": "button1", "description": "This is the first button."})"_json;
json testBtn2 = R"({"type": "button", "name": "button2", "cmd": "button2", "description": "This is the second button.", "input": {"name": "number of positions opened", "type": "number", "defValue": 1}})"_json;
tbl["rows"].push_back({groupBtn});
tbl["rows"].push_back({{testBtn1, testBtn2}});
while(true) {
LogStatus("`" + tbl.dump() + "`", "\n", "The grouping button control can also be set directly on the status bar in addition to being set on the status bar form:", "`" + groupBtn.dump() + "`");
auto cmd = GetCommand();
if(cmd != "") {
Log("cmd:", cmd);
}
Sleep(5000);
}
}
یہ گروپ بٹن کنٹرولز کے لئے حمایت کرتا ہے (پرانے بٹن کی ساخت)اعداد و شمار کے اندراج کی حمایت کرنے والے حالت بار بٹن(GetCommand()
فنکشن. فرق یہ ہے کہ کے ساتھ"group"
فیلڈ کی ترتیب، جب بٹن پر کلک کیا جاتا ہے تعامل کو متحرک کرنے کے لئے، صفحے پر پاپ اپ کہ ڈائیلاگ ایک سیٹ پر مشتملگروپان پٹ کنٹرولز کے ایک بار میں اعداد و شمار کے ایک گروپ میں داخل کرنے کے لئے مقرر.
کے بارے میں نوٹ کرنے کے لئے چند نکات"group"
حالت بار بٹن کنٹرول اور گروپ بٹن کنٹرول کی ساخت میں فیلڈ:
type
گروپ میں پراپرٹی صرف مندرجہ ذیل چار اقسام کی حمایت کرتا ہے، اورdefValue
پراپرٹی ڈیفالٹ ویلیو ہے۔
|
ایک ڈراپ ڈاؤن باکس میں ہر اختیار کو الگ کرنے کے لئے علامت کے طور پر یہ مقرر کیا جاتا ہے.
"name": "tradePrice@orderType==1"
ترتیب، جس سےتجارت قیمتان پٹ کنٹرول صرف اس وقت دستیاب ہے جبآرڈرٹائپڈراپ ڈاؤن کنٹرول ایک کے طور پر منتخب کیا جاتا ہےزیر التوا حکم.|
علامتوں کو چینی اور انگریزی میں تفصیل کے مواد کو الگ کرنے کے لئے.name
, description
گروپ میں اورname
, description
بٹن کی ساخت میں ایک ہی تعریف نہیں ہے اگرچہ وہ ایک ہی فیلڈ کے نام ہیں.
کی تعریفname
گروپ میں بھی تعریف سے مختلف ہےname
ان پٹ میں.Log("cmd:", cmd)
مندرجہ ذیل مثال ٹیسٹ میں بیان:cmd: open:{"orderType":1,"tradePrice":99,"orderAmount":"99","boolean":true}
، یعنی، کیا واپس کیا جاتا ہےGetCommand()
جب ایک تعامل ہوتا ہے تو فنکشن:open:{"orderType":1,"tradePrice":99,"orderAmount":"99","boolean":true}
.type
بٹن کنٹرول کی خصوصیت صرف حمایت کرتا ہے:"button"
.
بٹن کنٹرولز جو ان پٹ ڈیٹا کی حمایت کرتے ہیں، یعنی کنٹرولزinput
پراپرٹی سیٹ،type
کی ترتیب کی معلومات میں خصوصیاتinput
میدان متعدد کنٹرول اقسام کی حمایت کرتا ہے.
مندرجہ ذیل مثالوں کا حوالہ دیں:function main() {
// Status bar button control (set input field to implement) testBtn1 button triggered by the page in the drop-down box control using the options field to set options, using the defValue field to set the default options. This is different from the other examples in this chapter, which use defValue to set the options directly.
var testBtn1 = {
type: "button",
name: "testBtn1",
cmd: "cmdTestBtn1",
input: {name: "testBtn1ComboBox", type: "selected", options: ["A", "B"], defValue: 1}
}
/*
Status bar button control (set input field implementation) testBtn2 button triggered by the page in the drop-down box control using the options field to set the options, options field in the options field not only supports the string,
the use of the ```{text: "description", value: "value"}``` structure is also supported. Use the defValue field to set the default option, which can be multiple choice (multiple choice via array structure). Multiple choice requires setting the additional field multiple to a true value.
*/
var testBtn2 = {
type: "button",
name: "testBtn2",
cmd: "cmdTestBtn2",
input: {
name: "testBtn2MultiComboBox",
type: "selected",
description: "Implementing dropdown box multi-selection",
options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}],
defValue: ["A", "C"],
multiple: true
}
}
// Status bar grouping button control (set group field implementation) testBtn3 button triggered by the page in the drop-down box control using the options field to set options, also supports the direct use of defValue set options.
var testBtn3 = {
type: "button",
name: "testBtn3",
cmd: "cmdTestBtn3",
group: [
{name: "comboBox1", label: "labelComboBox1", description: "Dropdown box 1", type: "selected", defValue: 1, options: ["A", "B"]},
{name: "comboBox2", label: "labelComboBox2", description: "Dropdown box 2", type: "selected", defValue: "A|B"},
{name: "comboBox3", label: "labelComboBox3", description: "Dropdown box 3", type: "selected", defValue: [0, 2], multiple: true, options: ["A", "B", "C"]},
{
name: "comboBox4",
label: "labelComboBox4",
description: "Dropdown box 4",
type: "selected",
defValue: ["A", "C"],
multiple: true,
options: [{text: "Option A", value: "A"}, {text: "Option B", value: "B"}, {text: "Option C", value: "C"}, {text: "Option D", value: "D"}]
}
]
}
while (true) {
LogStatus("`" + JSON.stringify(testBtn1) + "`\n", "`" + JSON.stringify(testBtn2) + "`\n", "`" + JSON.stringify(testBtn3) + "`\n")
var cmd = GetCommand()
if (cmd) {
Log(cmd)
}
Sleep(5000)
}
}
import json
def main():
testBtn1 = {
"type": "button",
"name": "testBtn1",
"cmd": "cmdTestBtn1",
"input": {"name": "testBtn1ComboBox", "type": "selected", "options": ["A", "B"], "defValue": 1}
}
testBtn2 = {
"type": "button",
"name": "testBtn2",
"cmd": "cmdTestBtn2",
"input": {
"name": "testBtn2MultiComboBox",
"type": "selected",
"description": "Implementing dropdown box multi-selection",
"options": [{"text": "Option A", "value": "A"}, {"text": "Option B", "value": "B"}, {"text": "Option C", "value": "C"}],
"defValue": ["A", "C"],
"multiple": True
}
}
testBtn3 = {
"type": "button",
"name": "testBtn3",
"cmd": "cmdTestBtn3",
"group": [
{"name": "comboBox1", "label": "labelComboBox1", "description": "Dropdown box 1", "type": "selected", "defValue": 1, "options": ["A", "B"]},
{"name": "comboBox2", "label": "labelComboBox2", "description": "Dropdown box 2", "type": "selected", "defValue": "A|B"},
{"name": "comboBox3", "label": "labelComboBox3", "description": "Dropdown box 3", "type": "selected", "defValue": [0, 2], "multiple": True, "options": ["A", "B", "C"]},
{
"name": "comboBox4",
"label": "labelComboBox4",
"description": "Dropdown box 4",
"type": "selected",
"defValue": ["A", "C"],
"multiple": True,
"options": [{"text": "Option A", "value": "A"}, {"text": "Option B", "value": "B"}, {"text": "Option C", "value": "C"}, {"text": "Option D", "value": "D"}]
}
]
}
while True:
LogStatus("`" + json.dumps(testBtn1) + "`\n", "`" + json.dumps(testBtn2) + "`\n", "`" + json.dumps(testBtn3) + "`\n")
cmd = GetCommand()
if cmd:
Log(cmd)
Sleep(5000)
void main() {
json testBtn1 = R"({
"type": "button",
"name": "testBtn1",
"cmd": "cmdTestBtn1",
"input": {"name": "testBtn1ComboBox", "type": "selected", "options": ["A", "B"], "defValue": 1}
})"_json;
json testBtn2 = R"({
"type": "button",
"name": "testBtn2",
"cmd": "cmdTestBtn2",
"input": {
"name": "testBtn2MultiComboBox",
"type": "selected",
"description": "Implementing dropdown box multi-selection",
"options": [{"text": "Option A", "value": "A"}, {"text": "Option B", "value": "B"}, {"text": "Option C", "value": "C"}],
"defValue": ["A", "C"],
"multiple": true
}
})"_json;
json testBtn3 = R"({
"type": "button",
"name": "testBtn3",
"cmd": "cmdTestBtn3",
"group": [
{"name": "comboBox1", "label": "labelComboBox1", "description": "Dropdown box 1", "type": "selected", "defValue": 1, "options": ["A", "B"]},
{"name": "comboBox2", "label": "labelComboBox2", "description": "Dropdown box 2", "type": "selected", "defValue": "A|B"},
{"name": "comboBox3", "label": "labelComboBox3", "description": "Dropdown box 3", "type": "selected", "defValue": [0, 2], "multiple": true, "options": ["A", "B", "C"]},
{
"name": "comboBox4",
"label": "labelComboBox4",
"description": "Dropdown box 4",
"type": "selected",
"defValue": ["A", "C"],
"multiple": true,
"options": [{"text": "Option A", "value": "A"}, {"text": "Option B", "value": "B"}, {"text": "Option C", "value": "C"}, {"text": "Option D", "value": "D"}]
}
]
})"_json;
while (true) {
LogStatus("`" + testBtn1.dump() + "`\n", "`" + testBtn2.dump() + "`\n", "`" + testBtn3.dump() + "`\n");
auto cmd = GetCommand();
if (cmd != "") {
Log(cmd);
}
Sleep(5000);
}
}
جب حالت بار گروپ بٹن کنٹرول (کی ترتیب کی طرف سے لاگوgroup
فیلڈ) اور حالت بار بٹن کنٹرول (کی ترتیب کی طرف سے لاگو کیا جاتا ہےinput
فیلڈ) پر کلک کیا جاتا ہے تاکہ تعامل کو متحرک کیا جاسکے (پرانا بٹن ڈھانچہ) ، صفحے پر پاپ اپ ہونے والے ڈائیلاگ باکس میں ڈراپ ڈاؤن باکس کنٹرول متعدد انتخابوں کی بھی حمایت کرتا ہے۔ مندرجہ ذیل مثال میں دکھایا گیا ہے کہ متعدد انتخاب کے اختیارات کے ساتھ ڈراپ ڈاؤن باکس کنٹرول کو کس طرح ڈیزائن کیا جائے:
var symbols = ["BTC_USDT.swap", "ETH_USDT.swap", "LTC_USDT.swap", "BNB_USDT.swap", "SOL_USDT.swap"]
function createBtn(tmp, group) {
var btn = JSON.parse(JSON.stringify(tmp))
_.each(group, function(eleByGroup) {
btn["group"].unshift(eleByGroup)
})
return btn
}
function main() {
var arrManager = []
_.each(symbols, function(symbol) {
arrManager.push({
"symbol": symbol,
})
})
// Btn
var tmpBtnOpen = {
"type": "button",
"cmd": "open",
"name": "Open a position and place an order",
"group": [{
"type": "selected",
"name": "tradeType",
"label": "Order type",
"description": "Market order, limit order",
"default": 0,
"group": "Trading setup",
"settings": {
"options": ["Market order", "Limit order"],
"required": true,
}
}, {
"type": "selected",
"name": "direction",
"label": "Trading direction",
"description": "Buy, sell",
"default": "buy",
"group": "Trading setup",
"settings": {
"render": "segment",
"required": true,
"options": [{"name": "buy", "value": "buy"}, {"name": "sell", "value": "sell"}],
}
}, {
"type": "number",
"name": "price",
"label": "price",
"description": "The price of the order",
"group": "Trading setup",
"filter": "tradeType==1",
"settings": {
"required": true,
}
}, {
"type": "number",
"name": "amount",
"label": "Order quantity",
"description": "Order quantity",
"group": "Trading setup",
"settings": {
"required": true,
}
}],
}
while (true) {
var tbl = {"type": "table", "title": "dashboard", "cols": ["symbol", "actionOpen"], "rows": []}
_.each(arrManager, function(m) {
var btnOpen = createBtn(tmpBtnOpen, [{"type": "string", "name": "symbol", "label": "Trading instruments", "default": m["symbol"], "settings": {"required": true}}])
tbl["rows"].push([m["symbol"], btnOpen])
})
var cmd = GetCommand()
if (cmd) {
Log("Receive interaction:", cmd)
// Parsing interaction messages: open:{"symbol":"LTC_USDT.swap","tradeType":0,"direction":"buy","amount":111}
// According to the first colon: the previous instruction determines which button template triggers the message
var arrCmd = cmd.split(":", 2)
if (arrCmd[0] == "open") {
var msg = JSON.parse(cmd.slice(5))
Log("Trading instruments:", msg["symbol"], ", Trading direction:", msg["direction"], ", Order type:", msg["tradeType"] == 0 ? "Market order" : "Limit order", msg["tradeType"] == 0 ? ", Order price: current market price" : ", Order price:" + msg["price"], ", Order quantity:", msg["amount"])
}
}
LogStatus(_D(), "\n", "`" + JSON.stringify(tbl) + "`")
Sleep(1000)
}
}
import json
symbols = ["BTC_USDT.swap", "ETH_USDT.swap", "LTC_USDT.swap", "BNB_USDT.swap", "SOL_USDT.swap"]
def createBtn(tmp, group):
btn = json.loads(json.dumps(tmp))
for eleByGroup in group:
btn["group"].insert(0, eleByGroup)
return btn
def main():
arrManager = []
for symbol in symbols:
arrManager.append({"symbol": symbol})
# Btn
tmpBtnOpen = {
"type": "button",
"cmd": "open",
"name": "Open a position and place an order",
"group": [{
"type": "selected",
"name": "tradeType",
"label": "Order type",
"description": "Market order, limit order",
"default": 0,
"group": "Trading setup",
"settings": {
"options": ["Market order", "Limit order"],
"required": True,
}
}, {
"type": "selected",
"name": "direction",
"label": "Trading direction",
"description": "Buy, sell",
"default": "buy",
"group": "Trading Setup",
"settings": {
"render": "segment",
"required": True,
"options": [{"name": "买入", "value": "buy"}, {"name": "卖出", "value": "sell"}],
}
}, {
"type": "number",
"name": "price",
"label": "price",
"description": "The price of the order",
"group": "Trading Setup",
"filter": "tradeType==1",
"settings": {
"required": True,
}
}, {
"type": "number",
"name": "amount",
"label": "Order quantity",
"description": "Order quantity",
"group": "Trading Setup",
"settings": {
"required": True,
}
}],
}
while True:
tbl = {"type": "table", "title": "dashboard", "cols": ["symbol", "actionOpen"], "rows": []}
for m in arrManager:
btnOpen = createBtn(tmpBtnOpen, [{"type": "string", "name": "symbol", "label": "交易品种", "default": m["symbol"], "settings": {"required": True}}])
tbl["rows"].append([m["symbol"], btnOpen])
cmd = GetCommand()
if cmd != "" and cmd != None:
Log("Receive interaction:", cmd)
# Parsing interaction messages: open:{"symbol":"LTC_USDT.swap","tradeType":0,"direction":"buy","amount":111}
# According to the first colon: the previous instruction determines which button template triggers the message
arrCmd = cmd.split(":")
if arrCmd[0] == "open":
msg = json.loads(cmd[5:])
Log("Trading instruments:", msg["symbol"], ", Trading direction:", msg["direction"], ", Order type:", "Market order" if msg["tradeType"] == 0 else "Limit order", ", Order price: current market price" if msg["tradeType"] == 0 else ", Order price:" + str(msg["price"]), ", Order quantity:", msg["amount"])
# Output status bar information
LogStatus(_D(), "\n", "`" + json.dumps(tbl) + "`")
Sleep(1000)
// Omit...
اسٹیٹس بار ٹیبل میں بٹن بنانے کے لئے تازہ ترین بٹن ڈھانچے کا استعمال کریں۔ جب تعامل شروع کرنے کے لئے بٹن پر کلک کریں تو ، ایک ملٹی کنٹرول پاپ اپ ونڈو پاپ اپ ہوگی۔ مزید تفصیلات کے لیے ملاحظہ کریں:صارف گائیڈ - حالت بار میں انٹرایکٹو کنٹرولز.
function main() {
var table = {
type: 'table',
title: 'position operation',
cols: ['column1', 'column2', 'Action'],
rows: [
['abc', 'def', {'type':'button', 'cmd': 'coverAll', 'name': 'close positions'}]
]
}
var ticker = exchange.GetTicker()
// Add a row of data, merge the first and second cells, and output the ticker variable in the merged cell
table.rows.push([{body : JSON.stringify(ticker), colspan : 2}, "abc"])
LogStatus('`' + JSON.stringify(table) + '`')
}
import json
def main():
table = {
"type" : "table",
"title" : "position operation",
"cols" : ["column1", "column2", "Action"],
"rows" : [
["abc", "def", {"type": "button", "cmd": "coverAll", "name": "close positions"}]
]
}
ticker = exchange.GetTicker()
table["rows"].append([{"body": json.dumps(ticker), "colspan": 2}, "abc"])
LogStatus("`" + json.dumps(table) + "`")
void main() {
json table = R"({
"type" : "table",
"title" : "position operation",
"cols" : ["column1", "column2", "Action"],
"rows" : [
["abc", "def", {"type": "button", "cmd": "coverAll", "name": "close positions"}]
]
})"_json;
auto ticker = exchange.GetTicker();
json jsonTicker = R"({"Buy": 0, "Sell": 0, "High": 0, "Low": 0, "Volume": 0, "Last": 0, "Time": 0})"_json;
jsonTicker["Buy"] = ticker.Buy;
jsonTicker["Sell"] = ticker.Sell;
jsonTicker["Last"] = ticker.Last;
jsonTicker["Volume"] = ticker.Volume;
jsonTicker["Time"] = ticker.Time;
jsonTicker["High"] = ticker.High;
jsonTicker["Low"] = ticker.Low;
json arr = R"([{"body": {}, "colspan": 2}, "abc"])"_json;
arr[0]["body"] = jsonTicker;
table["rows"].push_back(arr);
LogStatus("`" + table.dump() + "`");
}
کی طرف سے تیار ٹیبل کے اندر اندر خلیات کے افقی ضمLogStatus()
فنکشن:
function main() {
var table = {
type: 'table',
title: 'table demo',
cols: ['columnA', 'columnB', 'columnC'],
rows: [
['A1', 'B1', {'type':'button', 'cmd': 'coverAll', 'name': 'C1'}]
]
}
var ticker = exchange.GetTicker()
var name = exchange.GetName()
table.rows.push([{body : "A2 + B2:" + JSON.stringify(ticker), colspan : 2}, "C2"])
table.rows.push([{body : "A3 + A4 + A5:" + name, rowspan : 3}, "B3", "C3"])
// A3 is merged by the first cell in the previous row
table.rows.push(["B4", "C4"])
// A2 is merged by the first cell of the previous row
table.rows.push(["B5", "C5"])
table.rows.push(["A6", "B6", "C6"])
LogStatus('`' + JSON.stringify(table) + '`')
}
import json
def main():
table = {
"type" : "table",
"title" : "table demo",
"cols" : ["columnA", "columnB", "columnC"],
"rows" : [
["A1", "B1", {"type": "button", "cmd": "coverAll", "name": "C1"}]
]
}
ticker = exchange.GetTicker()
name = exchange.GetName()
table["rows"].append([{"body": "A2 + B2:" + json.dumps(ticker), "colspan": 2}, "C2"])
table["rows"].append([{"body": "A3 + A4 + A5:" + name, "rowspan": 3}, "B3", "C3"])
table["rows"].append(["B4", "C4"])
table["rows"].append(["B5", "C5"])
table["rows"].append(["A6", "B6", "C6"])
LogStatus("`" + json.dumps(table) + "`")
void main() {
json table = R"({
"type" : "table",
"title" : "table demo",
"cols" : ["columnA", "columnB", "columnC"],
"rows" : [
["A1", "B1", {"type": "button", "cmd": "coverAll", "name": "C1"}]
]
})"_json;
// For testing purposes, the code is short and easy to read, and the constructed data is used here
json jsonTicker = R"({"High": 0, "Low": 0, "Buy": 0, "Sell": 0, "Last": 0, "Time": 0, "Volume": 0})"_json;
auto name = exchange.GetName();
json arr1 = R"([{"body": "", "colspan": 2}, "C2"])"_json;
arr1[0]["body"] = "A2 + B2:" + jsonTicker.dump();
json arr2 = R"([{"body": "", "rowspan": 3}, "B3", "C3"])"_json;
arr2[0]["body"] = "A3 + A4 + A5:" + name;
table["rows"].push_back(arr1);
table["rows"].push_back(arr2);
table["rows"].push_back(R"(["B4", "C4"])"_json);
table["rows"].push_back(R"(["B5", "C5"])"_json);
table["rows"].push_back(R"(["A6", "B6", "C6"])"_json);
LogStatus("`" + table.dump() + "`");
}
عمودی طور پر خلیات کی طرف سے تیار ٹیبل میں ضمLogStatus()
فنکشن:
function main() {
var table1 = {type: 'table', title: 'table1', cols: ['column1', 'column2'], rows: [ ['abc', 'def'], ['ABC', 'support color #ff0000']]}
var table2 = {type: 'table', title: 'table2', cols: ['column1', 'column2'], rows: [ ['abc', 'def'], ['ABC', 'support color #ff0000']]}
LogStatus('`' + JSON.stringify([table1, table2]) + '`')
}
import json
def main():
table1 = {"type": "table", "title": "table1", "cols": ["column1", "column2"], "rows": [ ["abc", "def"], ["ABC", "support color #ff0000"]]}
table2 = {"type": "table", "title": "table2", "cols": ["column1", "column2"], "rows": [ ["abc", "def"], ["ABC", "support color #ff0000"]]}
LogStatus("`" + json.dumps([table1, table2]) + "`")
void main() {
json table1 = R"({"type": "table", "title": "table1", "cols": ["column1", "column2"], "rows": [ ["abc", "def"], ["ABC", "support color #ff0000"]]})"_json;
json table2 = R"({"type": "table", "title": "table2", "cols": ["column1", "column2"], "rows": [ ["abc", "def"], ["ABC", "support color #ff0000"]]})"_json;
json arr = R"([])"_json;
arr.push_back(table1);
arr.push_back(table2);
LogStatus("`" + arr.dump() + "`");
}
اسٹیٹس بار ٹیبل صفحہ بندی دکھائیں:
function main(){
var tab1 = {
type : "table",
title : "table1",
cols : ["1", "2"],
rows : []
}
var tab2 = {
type : "table",
title : "table2",
cols : ["1", "2", "3"],
rows : []
}
var tab3 = {
type : "table",
title : "table3",
cols : ["A", "B", "C"],
rows : []
}
tab1.rows.push(["jack", "lucy"])
tab2.rows.push(["A", "B", "C"])
tab3.rows.push(["A", "B", "C"])
LogStatus('`' + JSON.stringify(tab1) + '`\n' +
'`' + JSON.stringify(tab2) + '`\n' +
'`' + JSON.stringify(tab3) + '`')
Log("exit")
}
import json
def main():
tab1 = {
"type": "table",
"title": "table1",
"cols": ["1", "2"],
"rows": []
}
tab2 = {
"type": "table",
"title": "table2",
"cols": ["1", "2", "3"],
"rows": []
}
tab3 = {
"type": "table",
"title": "table3",
"cols": ["A", "B", "C"],
"rows": []
}
tab1["rows"].append(["jack", "lucy"])
tab2["rows"].append(["A", "B", "C"])
tab3["rows"].append(["A", "B", "C"])
LogStatus("`" + json.dumps(tab1) + "`\n" +
"`" + json.dumps(tab2) + "`\n" +
"`" + json.dumps(tab3) + "`")
void main() {
json tab1 = R"({
"type": "table",
"title": "table1",
"cols": ["1", "2"],
"rows": []
})"_json;
json tab2 = R"({
"type": "table",
"title": "table2",
"cols": ["1", "2", "3"],
"rows": []
})"_json;
json tab3 = R"({
"type": "table",
"title": "table3",
"cols": ["A", "B", "C"],
"rows": []
})"_json;
tab1["rows"].push_back(R"(["jack", "lucy"])"_json);
tab2["rows"].push_back(R"(["A", "B", "C"])"_json);
tab3["rows"].push_back(R"(["A", "B", "C"])"_json);
LogStatus("`" + tab1.dump() + "`\n" +
"`" + tab2.dump() + "`\n" +
"`" + tab3.dump() + "`");
}
صفحات میں ٹیبلز کی نمائش کے علاوہ، متعدد ٹیبلز کو اوپر سے نیچے کے حکم میں بھی دکھایا جا سکتا ہے:
function main() {
var tbl = {
type : "table",
title : "test scroll",
scroll : "auto",
cols : ["col 0", "col 1", "col 2", "col 3", "col 4", "col 5", "col 6", "col 7", "col 8", "col 9", "col 10",
"col 11", "col 12", "col 13", "col 14", "col 15", "col 16", "col 17", "col 18", "col 19", "col 20"],
rows : []
}
for (var i = 1 ; i < 100 ; i++) {
tbl.rows.push([i, "1," + i, "2," + i, "3," + i, "4," + i, "5," + i, "6," + i, "7," + i, "8," + i, "9," + i, "10," + i,
"11," + i, "12," + i, "13," + i, "14," + i, "15," + i, "16," + i, "17," + i, "18," + i, "19," + i, "20," + i])
}
LogStatus("`" + JSON.stringify(tbl) + "`")
}
import json
def main():
tbl = {
"type" : "table",
"title" : "test scroll",
"scroll" : "auto",
"cols" : ["col 0", "col 1", "col 2", "col 3", "col 4", "col 5", "col 6", "col 7", "col 8", "col 9", "col 10",
"col 11", "col 12", "col 13", "col 14", "col 15", "col 16", "col 17", "col 18", "col 19", "col 20"],
"rows" : []
}
for index in range(1, 100):
i = str(index)
tbl["rows"].append([i, "1," + i, "2," + i, "3," + i, "4," + i, "5," + i, "6," + i, "7," + i, "8," + i, "9," + i, "10," + i,
"11," + i, "12," + i, "13," + i, "14," + i, "15," + i, "16," + i, "17," + i, "18," + i, "19," + i, "20," + i])
LogStatus("`" + json.dumps(tbl) + "`")
void main() {
json table = R"({
"type" : "table",
"title" : "test scroll",
"scroll" : "auto",
"cols" : ["col 0", "col 1", "col 2", "col 3", "col 4", "col 5", "col 6", "col 7", "col 8", "col 9", "col 10",
"col 11", "col 12", "col 13", "col 14", "col 15", "col 16", "col 17", "col 18", "col 19", "col 20"],
"rows" : []
})"_json;
for (int index = 1; index < 100; ++index) {
std::string i = std::to_string(index);
table["rows"].push_back({i, "1," + i, "2," + i, "3," + i, "4," + i, "5," + i, "6," + i, "7," + i, "8," + i, "9," + i, "10," + i,
"11," + i, "12," + i, "13," + i, "14," + i, "15," + i, "16," + i, "17," + i, "18," + i, "19," + i, "20," + i});
}
LogStatus("`" + table.dump() + "`");
}
اسٹیٹس بار ٹیبل کے افقی اور عمودی سکرول موڈ کو سیٹ کرنے کے لئے سپورٹ.scroll
کے لئے وصف"auto"
، جب اسٹیٹس بار ٹیبل کی عمودی صفوں کی تعداد 20 صفوں سے زیادہ ہو تو مواد سکرول کیا جائے گا۔ جب افقی کالموں کی تعداد صفحے کی نمائش کے دائرے سے زیادہ ہو تو ،scroll
اس خصوصیت کا استعمال براہ راست تجارت کے دوران بڑی مقدار میں اعداد و شمار کو اسٹیٹس بار میں لکھنے کے تاخیر کے مسئلے کو کم کرنے کے لئے کیا جاسکتا ہے۔ مندرجہ ذیل ٹیسٹ کی مثال دیکھیں:
معلومات کی پیداوارLogStatus()
جب لائیو ٹریڈنگ چل رہی ہے تو اس فنکشن کو لائیو ٹریڈنگ ڈیٹا بیس میں محفوظ نہیں کیا جاتا ہے، لیکن یہ صرف موجودہ لائیو ٹریڈنگ کی حیثیت بار کے مواد کو اپ ڈیٹ کرتا ہے۔
کےLogStatus()
تقریب پرنٹنگ کی حمایت کرتا ہےbase64
کوڈ شدہ تصاویر، کے ساتھ شروع`
اور اس کے ساتھ ختم`
مثلاً:LogStatus("`data:image/png;base64,AAAA`")
.
کےLogStatus()
فنکشن گزرنے کی حمایت کرتا ہےmatplotlib.pyplot
اشیاء براہ راست میںPython
، جب تک کہ اعتراض میں شامل ہےsavefig
طریقہ کار، یہ ایک پیرامیٹر کے طور پر منتقل کیا جا سکتا ہےLogStatus()
فنکشن، مثال کے طور پر:
import matplotlib.pyplot as plt
def main():
plt.plot([3,6,2,4,7,1])
LogStatus(plt)
جب حکمت عملی رواں تجارت چل رہی ہے ، اگر آپ رواں تجارت کے صفحے پر تاریخ کے ذریعے جاتے ہیں تو ، اسٹیٹس بار سوتے ہیں اور اپ ڈیٹ کرنا بند کردیتے ہیں۔ جب لاگ پہلے صفحے پر ہوتا ہے تو صرف اسٹیٹس بار کے ڈیٹا کو تازہ دم کیا جاتا ہے۔ یہ آؤٹ پٹ کی حمایت کرتا ہےbase64
حالت بار میں انکوڈ تصاویر، اور یہ بھی پیداوار کی حمایت کرتا ہےbase64
اسٹیٹس بار میں دکھائے جانے والے ٹیبل میں کوڈت تصاویر۔ چونکہ کوڈت تصویر کا سٹرنگ ڈیٹا عام طور پر بہت لمبا ہوتا ہے ، لہذا نمونہ کوڈ نہیں دکھایا جاتا ہے۔
{@fun/Global/GetCommand GetCommand} {@fun/Global/GetCommand GetCommand} {@fun/Global/GetCommand GetCommand} {@گلوبل/GetCommand GetCommand} {@گلوبل/GetCommand GetCommand} {@گلوبل/GetCommand GetCommand}
آرڈر کی معلومات کی لاگنگ کو آن یا آف کریں۔
EnableLog (قابل عمل)
اگرenable
پیرامیٹر ایک غلط قدر پر مقرر کیا جاتا ہے، مثال کے طور پرfalse
، آرڈر لاگ (یعنی جیسے افعال کی طرف سے پیدا لاگexchange.Buy()
) پرنٹ نہیں کیا جاتا ہے اور براہ راست تجارت کے ڈیٹا بیس میں نہیں لکھا جاتا ہے۔
قابل بنانا
سچ
بول
function main() {
EnableLog(false)
}
def main():
EnableLog(False)
void main() {
EnableLog(false);
}
{@fun/Trade/exchange.Buy exchange.Buy}، {@fun/Trade/exchange.Sell exchange.Sell}، {@fun/Trade/exchange.CancelOrder exchange.CancelOrder}، {@fun/Trade/exchange.Buy exchange.Buy}، {@fun/Trade/exchange.Buy}، {@fun/Trade/exchange.Buy}، {@fun/Trade/exchange.Buy.Exchange.Buy}، {@fun/Trade/exchange.Buy.Exchange.Buy}، {@fun/Trade/exchange.Buy.Exchange.Buy}، {@fun/Trade/exchange.Sell exchange.Sell exchange.Sell}، {@fun/Trade/exchange.Trade.Exchange.CancelOrder.Exchange.CancelOrder}، {@fun/Trade/Exchange.Exchange.Sell.Sell}، {@fun/Trade/Exchange.Sell}، {@fun/T
چارٹ ڈرائنگ فنکشن کو اپنی مرضی کے مطابق بنائیں.
چارٹ آبجیکٹ چیز
چارٹ (اختیارات)
کےoptions
پیرامیٹر چارٹ کی ترتیب ہے.Chart()
فنکشن پیرامیٹرoptions
ہےJSON
سلسلہ بندیHighStocks
پیرامیٹر کے لئےHighcharts.StockChart
ایک اضافی__isStock
خصوصیت مقامی پیرامیٹر کے اوپر شامل کیا جاتا ہے، اور اگر__isStock:false
وضاحت کی گئی ہے تو، یہ ایک عام چارٹ کے طور پر دکھایا جاتا ہے.__isStock
صفت ایک غلط قدر پر مقرر کیا جاتا ہے مثال کے طور پرfalse
، یعنی استعمال شدہ چارٹ ایکHighcharts
چارٹ.__isStock
صفت ایک حقیقی قدر پر مقرر کیا جاتا ہے مثال کے طور پرtrue
، یعنی استعمال شدہ چارٹ ایکHighstocks
چارٹ (ڈیفالٹ کے مطابق)__isStock
درست ہے مثلاًtrue
) آپ کو پوچھ گچھ کر سکتے ہیںہائی اسٹاکس چارٹ لائبریری.
اختیارات
سچ
آبجیکٹ، آبجیکٹ صف
function main() {
var cfgA = {
extension: {
layout: 'single', // No grouping, display separately, default to group 'group'
height: 300, // Specify the height
},
title: {
text: 'handicap chart'
},
xAxis: {
type: 'datetime'
},
series: [{
name: 'buy one',
data: [],
}, {
name: 'sell one',
data: [],
}]
}
var cfgB = {
title: {
text: 'spread chart'
},
xAxis: {
type: 'datetime'
},
series: [{
name: 'spread',
type: 'column',
data: [],
}]
}
var cfgC = {
__isStock: false,
title: {
text: 'pie chart'
},
series: [{
type: 'pie',
name: 'one',
data: [
["A", 25],
["B", 25],
["C", 25],
["D", 25],
] // Instead of updating the initial data with the add function, the sequence can be updated by changing the chart configuration directly.
}]
};
var cfgD = {
extension: {
layout: 'single',
col: 8, // Specify the cell value for the width, the total value is 12
height: '300px',
},
title: {
text: 'handicap chart'
},
xAxis: {
type: 'datetime'
},
series: [{
name: 'buy one',
data: [],
}, {
name: 'sell one',
data: [],
}]
}
var cfgE = {
__isStock: false,
extension: {
layout: 'single',
col: 4,
height: '300px',
},
title: {
text: 'pie chart2'
},
series: [{
type: 'pie',
name: 'one',
data: [
["A", 25],
["B", 25],
["C", 25],
["D", 25],
]
}]
};
var chart = Chart([cfgA, cfgB, cfgC, cfgD, cfgE]);
chart.reset()
// Add a number of points to the pie chart, add can only update the data points added by add, built-in data points cannot be updated later.
chart.add(3, {
name: "ZZ",
y: Math.random() * 100
});
while (true) {
Sleep(1000)
var ticker = exchange.GetTicker()
if (!ticker) {
continue;
}
var diff = ticker.Sell - ticker.Buy
cfgA.subtitle = {
text: 'buy one ' + ticker.Buy + ', sell one ' + ticker.Sell,
};
cfgB.subtitle = {
text: 'spread ' + diff,
};
chart.add([0, [new Date().getTime(), ticker.Buy]]);
chart.add([1, [new Date().getTime(), ticker.Sell]]);
// Equivalent to updating the first data series of the second chart
chart.add([2, [new Date().getTime(), diff]]);
chart.add(4, [new Date().getTime(), ticker.Buy]);
chart.add(5, [new Date().getTime(), ticker.Buy]);
cfgC.series[0].data[0][1] = Math.random() * 100;
cfgE.series[0].data[0][1] = Math.random() * 100;
// update is actually the same as resetting the chart's configuration
chart.update([cfgA, cfgB, cfgC, cfgD, cfgE]);
}
}
import random
import time
def main():
cfgA = {
"extension" : {
"layout" : "single",
"height" : 300,
"col" : 8
},
"title" : {
"text" : "handicap chart"
},
"xAxis" : {
"type" : "datetime"
},
"series" : [{
"name" : "buy one",
"data" : []
}, {
"name" : "sell one",
"data" : []
}]
}
cfgB = {
"title" : {
"text" : "spread chart"
},
"xAxis" : {
"type" : "datetime",
},
"series" : [{
"name" : "spread",
"type" : "column",
"data" : []
}]
}
cfgC = {
"__isStock" : False,
"title" : {
"text" : "pie chart"
},
"series" : [{
"type" : "pie",
"name" : "one",
"data" : [
["A", 25],
["B", 25],
["C", 25],
["D", 25],
]
}]
}
cfgD = {
"extension" : {
"layout" : "single",
"col" : 8,
"height" : "300px"
},
"title" : {
"text" : "handicap chart"
},
"series" : [{
"name" : "buy one",
"data" : []
}, {
"name" : "sell one",
"data" : []
}]
}
cfgE = {
"__isStock" : False,
"extension" : {
"layout" : "single",
"col" : 4,
"height" : "300px"
},
"title" : {
"text" : "pie chart2"
},
"series" : [{
"type" : "pie",
"name" : "one",
"data" : [
["A", 25],
["B", 25],
["C", 25],
["D", 25]
]
}]
}
chart = Chart([cfgA, cfgB, cfgC, cfgD, cfgE])
chart.reset()
chart.add(3, {
"name" : "ZZ",
"y" : random.random() * 100
})
while True:
Sleep(1000)
ticker = exchange.GetTicker()
if not ticker :
continue
diff = ticker["Sell"] - ticker["Buy"]
cfgA["subtitle"] = {
"text" : "buy one" + str(ticker["Buy"]) + "sell one" + str(ticker["Sell"])
}
cfgB["subtitle"] = {
"text" : "spread " + str(diff)
}
chart.add(0, [time.time() * 1000, ticker["Buy"]])
chart.add(1, [time.time() * 1000, ticker["Sell"]])
chart.add(2, [time.time() * 1000, diff])
chart.add(4, [time.time() * 1000, ticker["Buy"]])
chart.add(5, [time.time() * 1000, ticker["Buy"]])
cfgC["series"][0]["data"][0][1] = random.random() * 100
cfgE["series"][0]["data"][0][1] = random.random() * 100
void main() {
json cfgA = R"({
"extension" : {
"layout" : "single",
"height" : 300,
"col" : 8
},
"title" : {
"text" : "handicap chart"
},
"xAxis" : {
"type" : "datetime"
},
"series" : [{
"name" : "buy one",
"data" : []
}, {
"name" : "sell one",
"data" : []
}]
})"_json;
json cfgB = R"({
"title" : {
"text" : "spread chart"
},
"xAxis" : {
"type" : "datetime"
},
"series" : [{
"name" : "spread",
"type" : "column",
"data" : []
}]
})"_json;
json cfgC = R"({
"__isStock" : false,
"title" : {
"text" : "pie chart"
},
"series" : [{
"type" : "pie",
"name" : "one",
"data" : [
["A", 25],
["B", 25],
["C", 25],
["D", 25]
]
}]
})"_json;
json cfgD = R"({
"extension" : {
"layout" : "single",
"col" : 8,
"height" : "300px"
},
"title" : {
"text" : "handicap chart"
},
"series" : [{
"name" : "buy one",
"data" : []
}, {
"name" : "sell one",
"data" : []
}]
})"_json;
json cfgE = R"({
"__isStock" : false,
"extension" : {
"layout" : "single",
"col" : 4,
"height" : "300px"
},
"title" : {
"text" : "pie chart2"
},
"series" : [{
"type" : "pie",
"name" : "one",
"data" : [
["A", 25],
["B", 25],
["C", 25],
["D", 25]
]
}]
})"_json;
auto chart = Chart({cfgA, cfgB, cfgC, cfgD, cfgE});
chart.reset();
json zz = R"({
"name" : "ZZ",
"y" : 0
})"_json;
zz["y"] = rand() % 100;
chart.add(3, zz);
while(true) {
Sleep(1000);
auto ticker = exchange.GetTicker();
if(!ticker.Valid) {
continue;
}
auto diff = ticker.Sell - ticker.Buy;
json cfgASubTitle = R"({"text" : ""})"_json;
cfgASubTitle["text"] = format("buy one %f , sell one %f", ticker.Buy, ticker.Sell);
cfgA["subtitle"] = cfgASubTitle;
json cfgBSubTitle = R"({"text" : ""})"_json;
cfgBSubTitle["text"] = format("spread %f", diff);
cfgB["subtitle"] = cfgBSubTitle;
chart.add(0, {Unix() * 1000, ticker.Buy});
chart.add(1, {Unix() * 1000, ticker.Sell});
chart.add(2, {Unix() * 1000, diff});
chart.add(4, {Unix() * 1000, ticker.Buy});
chart.add(5, {Unix() * 1000, ticker.Buy});
cfgC["series"][0]["data"][0][1] = rand() % 100;
cfgE["series"][0]["data"][0][1] = rand() % 100;
chart.update({cfgA, cfgB, cfgC, cfgD, cfgE});
}
}
کثیر چارٹ ڈرائنگ ترتیب:
extension.layout
صفت
اگر صفت قدر extension.height
صفت
یہ خصوصیت چارٹ کی اونچائی کو ایک عددی قدر کے طور پر یا extension.col
صفت
صفات چارٹ کی چوڑائی مقرر کرنے کے لئے استعمال کیا جاتا ہے، صفحے کی چوڑائی 12 خلیات میں تقسیم کیا جاتا ہے، سیٹ 8، یعنی، چارٹ 8 خلیات کی چوڑائی پر قبضہ.// This chart is an object in the JavaScript language, and before using the Chart function, we need to declare an object variable chart to configure the chart. var chart = {
// This field marks whether the chart is a general chart or not, if you are interested, you can change it to false and run it.
__isStock: true,
// Scaling tool
tooltip: {xDateFormat: '%Y-%m-%d %H:%M:%S, %A'},
// title
title : { text : 'spread analysis chart'},
// selection range
rangeSelector: {
buttons: [{type: 'hour',count: 1, text: '1h'}, {type: 'hour',count: 3, text: '3h'}, {type: 'hour', count: 8, text: '8h'}, {type: 'all',text: 'All'}],
selected: 0,
inputEnabled: false
},
// Coordinate axis horizontal axis that is: x-axis, the current setting type is: time
xAxis: { type: 'datetime'},
// Coordinate axis vertical axis that is: y-axis, default value adjusted with the size of the data
yAxis : {
// title
title: {text: 'spread'},
// Whether to enable the right vertical axis
opposite: false
},
// Data series, this sttribute holds the individual data series (lines, K-charts, labels, etc...)
series : [
// The index is 0, and the data array holds the data of the index series
{name : "line1", id : "line1,buy1Price", data : []},
// Index is 1, set dashStyle:'shortdash' i.e.: set the dashed line
{name : "line2", id : "line2,lastPrice", dashStyle : 'shortdash', data : []}
]
} function main(){
// Call the Chart function to initialize the chart
var ObjChart = Chart(chart)
// Clear out
ObjChart.reset()
while(true){
// Gets the timestamp of this poll, i.e. a millisecond timestamp. It's used to determine the position of the X-axis written to the chart.
var nowTime = new Date().getTime()
// Get the ticker data
var ticker = _C(exchange.GetTicker)
// Get buy one price from the return value of the ticker data
var buy1Price = ticker.Buy
// To obtain the final transaction price, we add 1 in order not to overlap the 2 lines
var lastPrice = ticker.Last + 1
// Data sequence with timestamp as X-value and buy one price as Y-value passed into index 0
ObjChart.add(0, [nowTime, buy1Price])
// ditto
ObjChart.add(1, [nowTime, lastPrice])
Sleep(2000)
}
}```
```python
import time
chart = {
"__isStock" : True,
"tooltip" : {"xDateFormat" : "%Y-%m-%d %H:%M:%S, %A"},
"title" : {"text" : "spread analysis chart"},
"rangeSelector" : {
"buttons" : [{"type": "count", "count": 1, "text": "1h"}, {"type": "hour", "count": 3, "text": "3h"}, {"type": "hour", "count": 8, "text": "8h"}, {"type": "all", "text": "All"}],
"selected": 0,
"inputEnabled": False
},
"xAxis": {"type": "datetime"},
"yAxis": {
"title": {"text": "spread"},
"opposite": False
},
"series": [{
"name": "line1", "id": "line1,buy1Price", "data": []
}, {
"name": "line2", "id": "line2,lastPrice", "dashStyle": "shortdash", "data": []
}]
}
def main():
ObjChart = Chart(chart)
ObjChart.reset()
while True:
nowTime = time.time() * 1000
ticker = exchange.GetTicker()
buy1Price = ticker["Buy"]
lastPrice = ticker["Last"] + 1
ObjChart.add(0, [nowTime, buy1Price])
ObjChart.add(1, [nowTime, lastPrice])
Sleep(2000)
void main() {
// When writing strategies in C++, try not to declare global variables that are not of the base type, so the chart configuration object is declared inside the main function.
json chart = R"({
"__isStock" : true,
"tooltip" : {"xDateFormat" : "%Y-%m-%d %H:%M:%S, %A"},
"title" : {"text" : "spread analysis chart"},
"rangeSelector" : {
"buttons" : [{"type": "count", "count": 1, "text": "1h"}, {"type": "hour", "count": 3, "text": "3h"}, {"type": "hour", "count": 8, "text": "8h"}, {"type": "all", "text": "All"}],
"selected": 0,
"inputEnabled": false
},
"xAxis": {"type": "datetime"},
"yAxis": {
"title": {"text": "spread"},
"opposite": false
},
"series": [{
"name": "line1", "id": "line1,buy1Price", "data": []
}, {
"name": "line2", "id": "line2,lastPrice", "dashStyle": "shortdash", "data": []
}]
})"_json;
auto ObjChart = Chart(chart);
ObjChart.reset();
while(true) {
auto nowTime = Unix() * 1000;
auto ticker = exchange.GetTicker();
auto buy1Price = ticker.Buy;
auto lastPrice = ticker.Last + 1.0;
ObjChart.add(0, {nowTime, buy1Price});
ObjChart.add(1, {nowTime, lastPrice});
Sleep(2000);
}
}
ایک سادہ ڈرائنگ کا مثال:
// Objects used to initialize the chart
var chart = {
// Chart title
title: {text: "line value triggers the plotLines value"},
// Y-axis related settings
yAxis: {
// A horizontal line perpendicular to the Y-axis, used as a trigger line, is a structural array that can set multiple trigger lines
plotLines: [{
// The value of the trigger line, how much it set, this line will be displayed in the corresponding value position
value: 0,
// Set the color of the trigger line
color: 'red',
// Width
width: 2,
// Displaying labels
label: {
// Label text
text: 'Trigger value',
// Centered label position
align: 'center'
}
}]
},
// X-axis related settings, here the setting type is time axis
xAxis: {type: "datetime"},
series: [
{name: "sin", type: "spline", data: []},
// This is an important data series, you can set multiple data series, according to the array index control
{name: "cos", type: "spline", data: []}
]
}
function main(){
// Circumference
var pi = 3.1415926535897
// Variables for recording timestamps
var time = 0
// Angle
var angle = 0
// Coordinate y values for receiving sine and cosine values
var y = 0
// Call the API interface to initialize the chart with the chart object
var objChart = Chart(chart)
// Initially, clear the chart
objChart.reset()
// Set the value of the trigger line to 1
chart.yAxis.plotLines[0].value = 1
// Loop
while(true){
// Get the timestamp of the current moment
time = new Date().getTime()
// Angle increases by 5 degrees every 500ms and calculates the sine value
y = Math.sin(angle * 2 * pi / 360)
// Write the calculated y value to the data series of the corresponding index of the chart, the first parameter of the add function is the specified data series index
objChart.add(0, [time, y])
// Calculate the cosine value
y = Math.cos(angle * 2 * pi / 360)
objChart.add(1, [time, y])
// Increase by 5 degrees
angle += 5
// Pause for 5 seconds to avoid drawing too often and growing data too fast
Sleep(5000)
}
}
import math
import time
chart = {
"title": {"text": "line value triggers the plotLines value"},
"yAxis": {
"plotLines": [{
"value": 0,
"color": "red",
"width": 2,
"label": {
"text": "trigger value",
"align": "center"
}
}]
},
"xAxis": {"type": "datetime"},
"series": [{"name": "sin", "type": "spline", "data": []},
{"name": "cos", "type": "spline", "data": []}]
}
def main():
pi = 3.1415926535897
ts = 0
angle = 0
y = 0
objChart = Chart(chart)
objChart.reset()
chart["yAxis"]["plotLines"][0]["value"] = 1
while True:
ts = time.time() * 1000
y = math.sin(angle * 2 * pi / 360)
objChart.add(0, [ts, y])
y = math.cos(angle * 2 * pi / 360)
objChart.add(1, [ts, y])
angle += 5
Sleep(5000)
void main() {
json chart = R"({
"title": {"text": "line value triggers the plotLines value"},
"yAxis": {
"plotLines": [{
"value": 0,
"color": "red",
"width": 2,
"label": {
"text": "trigger value",
"align": "center"
}
}]
},
"xAxis": {"type": "datetime"},
"series": [{"name": "sin", "type": "spline", "data": []},
{"name": "cos", "type": "spline", "data": []}]
})"_json;
auto pi = 3.1415926535897;
auto ts = 0;
auto angle = 0.0;
auto y = 0.0;
auto objChart = Chart(chart);
objChart.reset();
chart["yAxis"]["plotLines"][0]["value"] = 1;
while(true) {
ts = Unix() * 1000;
y = sin(angle * 2 * pi / 360);
objChart.add(0, {ts, y});
y = cos(angle * 2 * pi / 360);
objChart.add(1, {ts, y});
angle += 5;
Sleep(5000);
}
}
مثلثاتی منحنی ڈرائنگ کا مثال:
/*backtest
start: 2020-03-11 00:00:00
end: 2020-04-09 23:59:00
period: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
var chartCfg = {
subtitle: {
text: "subtitle",
},
yAxis: [{
height: "40%",
lineWidth: 2,
title: {
text: 'PnL',
},
tickPixelInterval: 20,
minorGridLineWidth: 1,
minorTickWidth: 0,
opposite: true,
labels: {
align: "right",
x: -3,
}
}, {
title: {
text: 'Profit',
},
top: "42%",
height: "18%",
offset: 0,
lineWidth: 2
}, {
title: {
text: 'Vol',
},
top: '62%',
height: '18%',
offset: 0,
lineWidth: 2
}, {
title: {
text: 'Asset',
},
top: '82%',
height: '18%',
offset: 0,
lineWidth: 2
}],
series: [{
name: 'PnL',
data: [],
id: 'primary',
tooltip: {
xDateFormat: '%Y-%m-%d %H:%M:%S'
},
yAxis: 0
}, {
type: 'column',
lineWidth: 2,
name: 'Profit',
data: [],
yAxis: 1,
}, {
type: 'column',
name: 'Trade',
data: [],
yAxis: 2
}, {
type: 'area',
step: true,
lineWidth: 0,
name: 'Long',
data: [],
yAxis: 2
}, {
type: 'area',
step: true,
lineWidth: 0,
name: 'Short',
data: [],
yAxis: 2
}, {
type: 'line',
step: true,
color: '#5b4b00',
name: 'Asset',
data: [],
yAxis: 3
}, {
type: 'pie',
innerSize: '70%',
name: 'Random',
data: [],
center: ['3%', '6%'],
size: '15%',
dataLabels: {
enabled: false
},
startAngle: -90,
endAngle: 90,
}],
};
function main() {
let c = Chart(chartCfg);
let preTicker = null;
while (true) {
let t = exchange.GetTicker();
c.add(0, [t.Time, t.Last]); // PnL
c.add(1, [t.Time, preTicker ? t.Last - preTicker.Last : 0]); // profit
let r = Math.random();
var pos = parseInt(t.Time/86400);
c.add(2, [t.Time, pos/2]); // Vol
c.add(3, [t.Time, r > 0.8 ? pos : null]); // Long
c.add(4, [t.Time, r < 0.8 ? -pos : null]); // Short
c.add(5, [t.Time, Math.random() * 100]); // Asset
// update pie
chartCfg.series[chartCfg.series.length-1].data = [
["A", Math.random()*100],
["B", Math.random()*100],
];
c.update(chartCfg)
preTicker = t;
}
}
'''backtest
start: 2020-03-11 00:00:00
end: 2020-04-09 23:59:00
period: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
'''
import random
chartCfg = {
"subtitle": {
"text": "subtitle"
},
"yAxis": [{
"height": "40%",
"lineWidth": 2,
"title": {
"text": 'PnL'
},
"tickPixelInterval": 20,
"minorGridLineWidth": 1,
"minorTickWidth": 0,
"opposite": True,
"labels": {
"align": "right",
"x": -3
}
}, {
"title": {
"text": 'Profit'
},
"top": "42%",
"height": "18%",
"offset": 0,
"lineWidth": 2
}, {
"title": {
"text": 'Vol'
},
"top": '62%',
"height": '18%',
"offset": 0,
"lineWidth": 2
}, {
"title": {
"text": 'Asset'
},
"top": '82%',
"height": '18%',
"offset": 0,
"lineWidth": 2
}],
"series": [{
"name": 'PnL',
"data": [],
"id": 'primary',
"tooltip": {
"xDateFormat": '%Y-%m-%d %H:%M:%S'
},
"yAxis": 0
}, {
"type": 'column',
"lineWidth": 2,
"name": 'Profit',
"data": [],
"yAxis": 1
}, {
"type": 'column',
"name": 'Trade',
"data": [],
"yAxis": 2
}, {
"type": 'area',
"step": True,
"lineWidth": 0,
"name": 'Long',
"data": [],
"yAxis": 2
}, {
"type": 'area',
"step": True,
"lineWidth": 0,
"name": 'Short',
"data": [],
"yAxis": 2
}, {
"type": 'line',
"step": True,
"color": '#5b4b00',
"name": 'Asset',
"data": [],
"yAxis": 3
}, {
"type": 'pie',
"innerSize": '70%',
"name": 'Random',
"data": [],
"center": ['3%', '6%'],
"size": '15%',
"dataLabels": {
"enabled": False
},
"startAngle": -90,
"endAngle": 90
}]
}
def main():
c = Chart(chartCfg)
preTicker = None
while True:
t = exchange.GetTicker()
c.add(0, [t["Time"], t["Last"]])
profit = t["Last"] - preTicker["Last"] if preTicker else 0
c.add(1, [t["Time"], profit])
r = random.random()
pos = t["Time"] / 86400
c.add(2, [t["Time"], pos / 2])
long = pos if r > 0.8 else None
c.add(3, [t["Time"], long])
short = -pos if r < 0.8 else None
c.add(4, [t["Time"], short])
c.add(5, [t["Time"], random.random() * 100])
# update pie
chartCfg["series"][len(chartCfg["series"]) - 1]["data"] = [
["A", random.random() * 100],
["B", random.random() * 100]
]
c.update(chartCfg)
preTicker = t
/*backtest
start: 2020-03-11 00:00:00
end: 2020-04-09 23:59:00
period: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
void main() {
json chartCfg = R"({
"subtitle": {
"text": "subtitle"
},
"yAxis": [{
"height": "40%",
"lineWidth": 2,
"title": {
"text": "PnL"
},
"tickPixelInterval": 20,
"minorGridLineWidth": 1,
"minorTickWidth": 0,
"opposite": true,
"labels": {
"align": "right",
"x": -3
}
}, {
"title": {
"text": "Profit"
},
"top": "42%",
"height": "18%",
"offset": 0,
"lineWidth": 2
}, {
"title": {
"text": "Vol"
},
"top": "62%",
"height": "18%",
"offset": 0,
"lineWidth": 2
}, {
"title": {
"text": "Asset"
},
"top": "82%",
"height": "18%",
"offset": 0,
"lineWidth": 2
}],
"series": [{
"name": "PnL",
"data": [],
"id": "primary",
"tooltip": {
"xDateFormat": "%Y-%m-%d %H:%M:%S"
},
"yAxis": 0
}, {
"type": "column",
"lineWidth": 2,
"name": "Profit",
"data": [],
"yAxis": 1
}, {
"type": "column",
"name": "Trade",
"data": [],
"yAxis": 2
}, {
"type": "area",
"step": true,
"lineWidth": 0,
"name": "Long",
"data": [],
"yAxis": 2
}, {
"type": "area",
"step": true,
"lineWidth": 0,
"name": "Short",
"data": [],
"yAxis": 2
}, {
"type": "line",
"step": true,
"color": "#5b4b00",
"name": "Asset",
"data": [],
"yAxis": 3
}, {
"type": "pie",
"innerSize": "70%",
"name": "Random",
"data": [],
"center": ["3%", "6%"],
"size": "15%",
"dataLabels": {
"enabled": false
},
"startAngle": -90,
"endAngle": 90
}]
})"_json;
Chart c = Chart(chartCfg);
Ticker preTicker;
while(true) {
auto t = exchange.GetTicker();
c.add(0, {t.Time, t.Last});
auto profit = preTicker.Valid ? t.Last - preTicker.Last : 0;
c.add(1, {t.Time, profit});
auto r = rand() % 100;
auto pos = t.Time / 86400.0;
c.add(2, {t.Time, pos / 2.0});
auto longPos = r > 0.8 ? pos : NULL;
c.add(3, {t.Time, longPos});
auto shortPos = r < 0.8 ? -pos : NULL;
c.add(4, {t.Time, shortPos});
c.add(5, {t.Time, rand() % 100});
// update pie
json pie = R"([["A", 0], ["B", 0]])"_json;
pie[0][1] = rand() % 100;
pie[1][1] = rand() % 100;
chartCfg["series"][chartCfg["series"].size() - 1]["data"] = pie;
c.update(chartCfg);
preTicker = t;
}
}
ہائبرڈ چارٹس کے استعمال کی پیچیدہ مثالیں:
// update pie
chartCfg.series[chartCfg.series.length-1].data = [
["A", Math.random()*100],
["B", Math.random()*100],
];
c.update(chartCfg)
# update pie
chartCfg["series"][len(chartCfg["series"]) - 1]["data"] = [
["A", random.random() * 100],
["B", random.random() * 100]
]
c.update(chartCfg)
// update pie
json pie = R"([["A", 0], ["B", 0]])"_json;
pie[0][1] = rand() % 100;
pie[1][1] = rand() % 100;
chartCfg["series"][chartCfg["series"].size() - 1]["data"] = pie;
c.update(chartCfg);
ٹائپ چارٹpie
ایک ٹائم لائن کے بغیر چارٹ ہیں، اور آپ کو اعداد و شمار کو اپ ڈیٹ کرتے وقت براہ راست چارٹ کی ترتیب کو اپ ڈیٹ کرنے کی ضرورت ہے. مثال کے طور پر مندرجہ بالا مثال میں کوڈ کا استعمال کرتے ہوئے چارٹ اپ ڈیٹ کرتا ہےc.update(chartCfg)
اعداد و شمار کو اپ ڈیٹ کرنے کے بعد، مندرجہ ذیل:
کےChart()
فنکشن چارٹ آبجیکٹ واپس کرتا ہے جس میں 4 طریقے ہیں:add()
, reset()
, update()
, del()
.
update()
طریقہ:
کےupdate()
طریقہ کار چارٹ کی تشکیل کی معلومات کو اپ ڈیٹ کرسکتا ہے۔ اس طریقہ کار کا پیرامیٹر چارٹ کی تشکیل آبجیکٹ (JSON) ہے۔del()
طریقہ:
کےdel()
طریقہ کار منظور شدہ سیریز پیرامیٹر کی بنیاد پر مخصوص انڈیکس کے ڈیٹا سیریز کو حذف کر سکتے ہیں.add()
طریقہ:
کےadd()
طریقہ کار مندرجہ ذیل پیرامیٹرز کے ساتھ، چارٹ پر ڈیٹا لکھ سکتے ہیں:series
: اعداد و شمار سیریز انڈیکس مقرر کرنے کے لئے استعمال کیا جاتا ہے، جو ایک عدد ہے.data
: مخصوص اعداد و شمار کو لکھنے کے لئے مقرر کرنے کے لئے استعمال کیا جاتا ہے، یہ ایک صف ہے.index
(اختیاری): ڈیٹا انڈیکس کو ترتیب دینے کے لئے استعمال کیا جاتا ہے ، یہ ایک عدد ہے۔ ترمیم شدہ ڈیٹا کی مخصوص انڈیکس پوزیشن کی وضاحت کریں ، اور یہ منفی نمبروں کی حمایت کرتا ہے ، ترتیب یہ ہے-1
ڈیٹا سیٹ کے آخری اعداد و شمار سے مراد ہے۔
مثال کے طور پر، ایک لائن ڈرائنگ کرتے وقت، لائن کے آخری نقطہ پر ڈیٹا کو تبدیل کریں:chart.add(0, [1574993606000, 13.5], -1)
، یعنی، چارٹ کے آخری آخری نقطہ پر اعداد و شمار کو تبدیلseries[0].data
.
کےindex
پیرامیٹر مقرر نہیں کیا گیا ہے، جس کا مطلب ہے کہ اعداد و شمار کو موجودہ ڈیٹا سیریز کے آخری نقطہ پر شامل کیا جاتا ہے.reset()
طریقہ:
کےreset()
چارٹ کے اعداد و شمار کو خالی کرنے کے لئے استعمال کیا جاتا ہے.reset()
طریقہ کار ایک پیرامیٹر لے سکتے ہیںremain
رکھنے کے لئے اندراجات کی تعداد کی وضاحت کرنے کے لئے. کوئی پیرامیٹرremain
تمام اعداد و شمار کو صاف کرنے کے لئے منظور کیا جاتا ہے.{@fun/Log/KLineChart KLineChart} {@fun/Log/KLineChart KLineChart} {@fun/Log/KLineChart KLineChart}
فنکشن حکمت عملی رن ٹائم میں اپنی مرضی کے مطابق ڈرائنگ کے لئے استعمال کیا جاتا ہےPine
language.
چارٹ آبجیکٹ.KLineChart()
تقریب کئی طریقوں کے ساتھ ایک چارٹ اعتراض لوٹاتا ہے، جن میں سے آپ کو توجہ دینے کی ضرورت ہےbegin()
اورclose()
۔ ڈرائنگ آپریشن ایک کے ساتھ شروع کرنا ضروری ہےbegin()
فنکشن کال اور ایک کے ساتھ ختمclose()
فنکشن کال جب کلائین ڈیٹا پر عبور کرتے ہوئے ڈرائنگ آپریشن انجام دیتے ہیں۔
چیز
KLineChart (اختیارات)
کےoptions
پیرامیٹر چارٹ کی ترتیب ہے.
اختیارات
سچ
آبجیکٹ، آبجیکٹ صف
function main() {
// Call the KLineChart function to create a chart control object c
let c = KLineChart({
overlay: true
})
// Use the Spot Exchange object test to get K-line data. If you use the futures exchange object test, you need to set up the contract first.
let bars = exchange.GetRecords()
if (!bars) {
return
}
// Execute the drawing operation by traversing over the K-line data. The drawing operation must start with the ```c.begin(bar)``` function call and end with the ```c.close()``` function call.
bars.forEach(function(bar, index) {
c.begin(bar)
c.barcolor(bar.Close > bar.Open ? 'rgba(255, 0, 0, 0.2)' : 'rgba(0, 0, 0, 0.2)')
if (bar.Close > bar.Open) {
c.bgcolor('rgba(0, 255, 0, 0.5)')
}
let h = c.plot(bar.High, 'high')
let l = c.plot(bar.Low, 'low')
c.fill(h, l, {
color: bar.Close > bar.Open ? 'rgba(255, 0, 0, 0.2)' : 'rgba(255, 0, 0, 0.2)'
})
c.hline(bar.High)
c.plotarrow(bar.Close - bar.Open)
c.plotshape(bar.Low, {
style: 'diamond'
})
c.plotchar(bar.Close, {
char: 'X'
})
c.plotcandle(bar.Open*0.9, bar.High*0.9, bar.Low*0.9, bar.Close*0.9)
if (bar.Close > bar.Open) {
// long/short/closelong/closeshort
c.signal("long", bar.High, 1.5)
} else if (bar.Close < bar.Open) {
c.signal("closelong", bar.Low, 1.5)
}
c.close()
})
}
def main():
# Call the KLineChart function to create a chart control object c
c = KLineChart({
"overlay": True
})
# Use the Spot Exchange object test to get K-line data. If you use the futures exchange object test, you need to set up the contract first.
bars = exchange.GetRecords()
if not bars:
return
for bar in bars:
c.begin(bar)
c.barcolor('rgba(255, 0, 0, 0.2)' if bar.Close > bar.Open else 'rgba(0, 0, 0, 0.2)')
if bar.Close > bar.Open:
c.bgcolor('rgba(0, 255, 0, 0.5)')
h = c.plot(bar.High, 'high')
l = c.plot(bar.Low, 'low')
c.fill(h, l, 'rgba(255, 0, 0, 0.2)' if bar.Close > bar.Open else 'rgba(255, 0, 0, 0.2)')
c.hline(bar.High)
c.plotarrow(bar.Close - bar.Open)
c.plotshape(bar.Low, style = 'diamond')
c.plotchar(bar.Close, char = 'X')
c.plotcandle(bar.Open*0.9, bar.High*0.9, bar.Low*0.9, bar.Close*0.9)
if bar.Close > bar.Open:
# long/short/closelong/closeshort
c.signal("long", bar.High, 1.5)
elif bar.Close < bar.Open:
c.signal("closelong", bar.Low, 1.5)
c.close()
// Not supported for now
اگر ایک چارٹ کنٹرول آبجیکٹ کی حکمت عملی اپنی مرضی کے مطابق ڈرائنگ کے علاقے میں ڈرائنگ کرنے کے لئے ضروری ہے تو،KLineChart()
اعتراض تخلیق کرنے کے لئے تقریب.KLineChart()
فنکشن ایک چارٹ ترتیب کی ساخت ہے، حوالہ کوڈ میں استعمال کیا جاتا ہے سادہ ہے:{overlay: true}
. یہ چارٹ ترتیب کی ساخت صرف مرکزی چارٹ پر آؤٹ پٹ کرنے کے لئے ڈرائنگ مواد مقرر کرتا ہے.overlay
ایک غلط قدر پر مقرر کیا جاتا ہے، مثال کے طور پرfalse
، چارٹ پر مواد ثانوی چارٹ پر آؤٹ پٹ ہے. اگر آپ کو مرکزی چارٹ پر ڈرائنگ کرنے کے لئے ایک ڈرائنگ تقریب کی وضاحت کرنے کی ضرورت ہے، آپ کو بھی پیرامیٹر کی وضاحت کر سکتے ہیںoverlay
مخصوص فنکشن کال میں ایک حقیقی قدر کے طور پر، مثال کے طور پر:true
.
c.barcolor(bar.Close > bar.Open ? 'rgba(255, 0, 0, 0.2)' : 'rgba(0, 0, 0, 0.2)') // Use the example illustrated in the reference code in this example, without further ado
c.barcolor('rgba(255, 0, 0, 0.2)' if bar.Close > bar.Open else 'rgba(0, 0, 0, 0.2)')
// Not supported for now
ڈرائنگ انٹرفیس کے افعالPine
ڈرائنگ آپریشن میں حمایت زبان ہیں:barcolor
، جو K لائن رنگ مقرر کرتا ہے.
barcolor ((رنگ، آفسیٹ، قابل تدوین، show_last، عنوان، ڈسپلے) ڈسپلے پیرامیٹرز اختیاری ہیں:
کوئی نہیں ، تمام
c.bgcolor('rgba(0, 255, 0, 0.5)')
c.bgcolor('rgba(0, 255, 0, 0.5)')
// Not supported for now
bgcolor
، مخصوص رنگ کے ساتھ K لائن کے پس منظر کو بھرتا ہے.
bgcolor ((رنگ، آفسیٹ، قابل تدوین، show_last، عنوان، ڈسپلے، اوورلے) ڈسپلے پیرامیٹرز اختیاری ہیں:
کوئی نہیں ، تمام
c.plot(bar.High, 'high')
c.plot(bar.Open < bar.Close ? NaN : bar.Close, "Close", {style: "linebr"}) // Support for drawing discontinuous data lines
h = c.plot(bar.High, 'high')
h = c.plot(None if bar.Open < bar.Close else bar.Close, "Close", style = "linebr") # Support for drawing discontinuous data lines
// Not supported for now
plot
، ایک چارٹ پر اعداد و شمار کی ایک سیریز پلاٹ.
پلاٹ (سیریز، عنوان، رنگ، لائن کی چوڑائی، انداز، ٹریک قیمت، ہسٹ بیس، آفسیٹ، جوائن، قابل تدوین، شو_لاسٹ، ڈسپلے) سٹائل پیرامیٹرز اختیاری ہیں:
stepline_diamond , stepline , cross , areabr , area , circles , columns , histogram , linebr , line ڈسپلے پیرامیٹرز اختیاری ہیں: کوئی نہیں ، سبھی
let h = c.plot(bar.High, 'high')
let l = c.plot(bar.Low, 'low')
c.fill(h, l, {color: bar.Close > bar.Open ? 'rgba(255, 0, 0, 0.2)' : 'rgba(255, 0, 0, 0.2)'})
h = c.plot(bar.High, 'high')
l = c.plot(bar.Low, 'low')
c.fill(h, l, color = 'rgba(255, 0, 0, 0.2)' if bar.Close > bar.Open else 'rgba(255, 0, 0, 0.2)'})
// Not supported for now
fill
، دو پلاٹ کے درمیان پس منظر کو بھرنے یاhline
فراہم کردہ رنگوں کے ساتھ.
بھریں (صفحہ1،صفحہ2، رنگ، عنوان، قابل تدوین، خالی جگہوں کو بھریں، دکھائیں) ڈسپلے پیرامیٹرز اختیاری ہیں:
کوئی نہیں ، تمام
کے بعدJavaScript
زبان فنکشن کے ناموں کی بنیاد پر آنے والے پیرامیٹرز کی وضاحت نہیں کر سکتے ہیں رسمی پیرامیٹرز، اس مسئلے کو حل کرنے کے لئے، آپ کو ایک استعمال کر سکتے ہیں{key: value}
ایک مخصوص رسمی پیرامیٹر نام پر منتقل کیا جا کرنے کے لئے پیرامیٹرز کی وضاحت کرنے کی ساخت.
مثال کے طور پر، حوالہ کوڈ استعمال کرتا ہے{color: bar.Close > bar.Open ? 'rgba(255, 0, 0, 0, 0.2)' : 'rgba(255, 0, 0, 0, 0.2)'}
وضاحت کرتا ہےcolor
پیرامیٹرfill
فنکشن.
اگر آپ کو ایک کے بعد ایک فارم پیرامیٹر ناموں کے ساتھ ایک سے زیادہ پیرامیٹرز کی وضاحت کرنے کی ضرورت ہے تو، آپ استعمال کر سکتے ہیں{key1: value1, key2: value2, key3: value3}
.
مثال کے طور پر، اس مثال میں، ایک اضافیtitle
پیرامیٹر کی وضاحت کی گئی ہے:{color: bar.Close > bar.Open ? 'rgba(255, 0, 0, 0, 0.2)' : 'rgba(255, 0, 0, 0, 0.2)', title: 'fill'}
.
رنگ کی قدر کے لئے، آپ کے ساتھ مقرر کر سکتے ہیں'rgba(255, 0, 0, 0, 0.2)'
یا ساتھ'#FF0000'
.
c.hline(bar.High)
c.hline(bar.High)
// Not supported for now
hline
، افقی لائن ایک مقررہ مقررہ قیمت کی سطح پر پیش کی جاتی ہے.
hline ((قیمت، عنوان، رنگ، لائن سٹائل، لائن کی چوڑائی، قابل تدوین، ڈسپلے) لائن سٹائل پیرامیٹرز اختیاری ہیں:
ڈیشڈ ، ڈاٹڈ ، سولیڈ ڈسپلے پیرامیٹرز اختیاری ہیں: کوئی نہیں ، تمام
c.plotarrow(bar.Close - bar.Open)
c.plotarrow(bar.Close - bar.Open)
// Not supported for now
plotarrow
، چارٹ پر اوپر اور نیچے تیریں دکھائیں.
پلاٹرا (سیریز، عنوان، رنگ، رنگ ڈاؤن، آفسیٹ، مائن ہائیٹ، میکس ہائیٹ، قابل تدوین، شو_لاسٹ، ڈسپلے) ڈسپلے پیرامیٹرز اختیاری ہیں:
کوئی نہیں ، تمام
c.plotshape(bar.Low, {style: 'diamond'})
c.plotshape(bar.Low, style = 'diamond')
// Not supported for now
plotshape
، چارٹ پر بصری شکلیں بنائیں۔
plotshape ((سیریز، عنوان، انداز، مقام، رنگ، آفسیٹ، متن، textcolor، قابل تدوین، سائز، show_last، ڈسپلے) سٹائل پیرامیٹرز اختیاری ہیں:
diamond size.autoہے سائز.چھوٹا. ڈسپلے پیرامیٹرز اختیاری ہیں:, square , label_down , label_up , arrow_down , arrow_up , circle , flag , triangle_down , triangle_up , cross , xcross مقام پیرامیٹرز اختیاری ہیں: اوپربار ، نیچےبار ، اوپر ، نیچے ، مطلق سائز پیرامیٹرز اختیاری ہیں: 10px , 14px , 20px , 40px , 80px , سائز کا موازنہ کریں.تنی, سائز.چھوٹا, سائز.عام, سائز.بڑا, سائز.بڑا پائن زبان میں. کوئی نہیں ، تمام
c.plotchar(bar.Close, {char: 'X'})
c.plotchar(bar.Close, char = 'X')
// Not supported for now
plotchar
، کسی بھی دیئے گئے یونیکوڈ کردار کا استعمال کرتے ہوئے چارٹ پر بصری شکلیں ڈرا.
plotchar ((سیریز، عنوان، چار، مقام، رنگ، آفسیٹ، متن، textcolor، قابل تدوین، سائز، show_last، ڈسپلے) مقام پیرامیٹرز اختیاری ہیں:
اوپربار size.autoہے سائز.چھوٹا. ڈسپلے پیرامیٹرز اختیاری ہیں:، نیچےبار ، اوپر ، نیچے ، مطلق سائز کے پیرامیٹرز اختیاری ہیں: 10px ، 14px ، 20px ، 40px ، 80px ، سائز.ٹنی، سائز.چھوٹا، سائز.عام، سائز.بڑا، سائز.بڑا کا موازنہ پائن زبان میں۔ کوئی نہیں ، تمام
c.plotcandle(bar.Open*0.9, bar.High*0.9, bar.Low*0.9, bar.Close*0.9)
c.plotcandle(bar.Open*0.9, bar.High*0.9, bar.Low*0.9, bar.Close*0.9)
// Not supported for now
plotcandle
، ایک چارٹ پر ایک K لائن چارٹ پلاٹ.
plotcandle ((کھولیں، اعلی، کم، قریب، عنوان، رنگ، wickcolor، قابل تدوین، show_last، bordercolor، ڈسپلے) ڈسپلے پیرامیٹرز اختیاری ہیں:
کوئی نہیں ، تمام
c.signal("long", bar.High, 1.5)
c.signal("long", bar.High, 1.5)
// Not supported for now
signal
، پائن زبان میں دستیاب نہیں ایک فنکشن، خریدنے اور فروخت سگنل یہاں ڈرائنگ کے لئے استعمال کیا جاتا ہے.
سگنل ((نقطہ، قیمت، مقدار، شناخت) پیرامیٹر
long ٹرانزیکشن کی سمت کی نشاندہی کرنے میں منتقل کیا جاتا ہے، آپ long ، closelong ، short ، closeshort منتخب کر سکتے ہیں. پیرامیٹر bar.High
مارکر سگنل کی Y محور کی پوزیشن ہے۔ منظور شدہ پیرامیٹر 1.5 سگنل کے لین دین کی تعداد کی نشاندہی کرتا ہے۔ چوتھا پیرامیٹر تیار کردہ ڈیفالٹ ٹیکسٹ مواد کی جگہ لے سکتا ہے ، اور تیار کردہ سگنل مارکر کا ڈیفالٹ متن لین دین کی سمت ہے ، مثال کے طور پرcloselong ۔
c.reset()
c.reset()
// Not supported for now
reset
، ایک فنکشن پائن زبان میں دستیاب نہیں ہے، چارٹ کے اعداد و شمار کو خالی کرنے کے لئے استعمال کیا جاتا ہے.
ری سیٹ (باقی) کے
reset()
طریقہ کار ایک پیرامیٹر لے سکتا ہے،remain
، رکھنے کے لئے ڈیٹا کی تعداد کی وضاحت کرنے کے لئے.remain
یعنی تمام ڈیٹا کو صاف کرنا۔
حکمت عملی اپنی مرضی کے مطابق ڈرائنگ صرف کے طریقوں میں سے ایک کا استعمال کر سکتے ہیںKLineChart()
فنکشن یاChart()
فنکشن کے لئے. کچھ رنگ اور سٹائل کی ترتیبات میں استعمالKLineChart()
فنکشن کال، براہ مہربانی ملاحظہ کریںحکمت عملی ڈرائنگ ڈیزائن آسان بنانے کے لئے KLineChart تقریب کا استعمال کریں.
{@fun/Log/چارٹ چارٹ}
لکڑی صاف.
لاگ ری سیٹ (باقی)
کےremain
پیرامیٹر استعمال کیا جاتا ہے تازہ ترین لاگ اندراجات کی تعداد کو برقرار رکھنے کے لئے مقرر کرنے کے لئے.
رہنا
غلط
نمبر
function main() {
// Keep the last 10 logs and clear the rest
LogReset(10)
}
def main():
LogReset(10)
void main() {
LogReset(10);
}
حکمت عملی کے ہر آغاز کے لئے اسٹارٹ اپ لاگ کو ایک کے طور پر شمار کیا جاتا ہے ، لہذا اگر کوئی پیرامیٹر منتقل نہیں ہوتا ہے اور حکمت عملی کے آغاز میں کوئی لاگ آؤٹ پٹ نہیں ہوتا ہے تو ، ڈوکر لاگ کی واپسی کا انتظار کرتے ہوئے ، کوئی لاگ بالکل ظاہر نہیں ہوگا (کوئی استثناء نہیں) ۔
{@fun/LogLog}، {@fun/Log/LogVacuum LogVacuum}، {@fun/LogLog}، {@fun/Log/LogVacuum LogVacuum}، {@fun/Log/LogVacuum}، {@fun/Log/LogVacuum LogVacuum}، {@fun/Log/LogVacuum}،
ذخیرہ کرنے کی جگہ پر قبضہ کرنے کے لئے استعمال کیاایس کیو ایلائٹڈیٹا کو کال کرنے کے بعد حذف کرتے وقتLogReset()
لاگ صاف کرنے کے لئے تقریب.
لوگ ویکیوم
function main() {
LogReset()
LogVacuum()
}
def main():
LogReset()
LogVacuum()
void main() {
LogReset()
LogVacuum()
}
وجہ یہ ہے کہSQLite
ڈیٹا کو حذف کرتے وقت مقبوضہ جگہ واپس نہیں کرتا، اور اسے چلانے کی ضرورت ہےVACUUM
ٹیبل کو صاف کرنے اور جگہ کو آزاد کرنے کے لئے۔ فائل منتقل کرنے کا عمل اس فنکشن کو بلانے پر ہوتا ہے ، اور تاخیر بڑی ہے ، لہذا مناسب وقت کے وقفے پر کال کرنے کی سفارش کی جاتی ہے۔
{@fun/Log/LogReset لاگ ریسیٹ}
یہ براہ راست ٹریڈنگ کے صفحے میں 123456
،console.log
تقریب آؤٹ پٹ لائیو ٹریڈنگ کے صفحے پر معلومات ڈیبگنگ، اور ایک ہی وقت میں، توسیع کے ساتھ ایک لاگ فائل تخلیق.log
اور میں ڈیبگنگ کی معلومات لکھیں/logs/storage/123456/
اس ڈائرکٹری میں جس میں ڈوکر کا تعلق ہے، جس میں فائل نام کے ساتھstdout_
.
کنسول.لوگ ((...msgs)
پیرامیٹرmsg
پیداوار کا مواد ہے، اور پیرامیٹرmsg
ایک سے زیادہ پاس کیا جا سکتا ہے.
پی ایس جی
غلط
string، number، bool، object، array، null اور نظام کی حمایت کی دیگر اقسام.
function main() {
console.log("test console.log")
}
# Not supported
// Not supported
JavaScript
زبان اس فنکشن کی حمایت کرتا ہے.[object Object]
، تو جتنا ممکن ہو سکے کے طور پر پڑھنے کے قابل معلومات کی پیداوار کرنے کی کوشش کریں.{@fun/Log/console.error کنسول.error}
براہ راست ٹریڈنگ کے صفحے پر 123456
،console.error
فنکشن توسیع کے ساتھ ایک لاگ فائل تخلیق کرتا ہے.log
میں/logs/storage/123456/
ڈاکر کی ڈائرکٹری جہاں لائیو ٹریڈنگ کا تعلق ہے، اور پریفیکس کے ساتھ غلطی پیداوار لکھتا ہےstderr_
.
کنسول.غلطی...msgs
پیرامیٹرmsg
پیداوار کا مواد ہے، اور پیرامیٹرmsg
ایک سے زیادہ پاس کیا جا سکتا ہے.
پی ایس جی
غلط
string، number، bool، object، array، null اور نظام کی حمایت کی دیگر اقسام.
function main() {
console.error("test console.error")
}
# Not supported
// Not supported
JavaScript
زبان اس فنکشن کی حمایت کرتا ہے.[object Object]
، تو جتنا ممکن ہو سکے کے طور پر پڑھنے کے قابل معلومات کی پیداوار کرنے کی کوشش کریں.{@fun/Log/console.log کنسول.log}
{@struct/Ticker Ticker} اسپاٹ یا معاہدے کی ساخت حاصل کریں جو فی الحال مقرر کردہ ٹریڈنگ جوڑی، معاہدے کا کوڈ، یعنی ٹکر ڈیٹا سے مطابقت رکھتا ہے.GetTicker ()
تقریب تبادلہ اعتراض {@var/EXCHANGE تبادلہ} کا ایک رکن تقریب ہے، کے استعمالexchange
صرف سے متعلقہ اعتراض رکن افعال (طریقے)exchange
، اور یہ دستاویز میں دہرایا نہیں جائے گا.
کےexchange.GetTicker()
فنکشن {@struct/Ticker Ticker} ڈھانچہ واپس کرتا ہے جب ڈیٹا کی درخواست کامیاب ہوتی ہے ، اور ڈیٹا کی درخواست ناکام ہونے پر null قدر واپس کرتا ہے۔
{@struct/Ticker Ticker}، null قدر
تبادلہ.GetTicker() تبادلہ.GetTicker ((علامت)
پیرامیٹرsymbol
{@struct/Ticker Ticker} ڈیٹا کی درخواست کے مطابق مخصوص ٹریڈنگ جوڑی اور معاہدے کا کوڈ متعین کرنے کے لئے استعمال کیا جاتا ہے۔ اگر یہ پیرامیٹر پاس نہیں کیا جاتا ہے تو ، فی الحال مقرر کردہ ٹریڈنگ جوڑی اور معاہدے کا کوڈ کی مارکیٹ کے اعداد و شمار کی درخواست کی جائے گی۔
جب کال کریںexchange.GetTicker(symbol)
فنکشنexchange
اسپاٹ ایکسچینج آبجیکٹ ہے۔ اگر آپ کو مارکیٹ کے اعداد و شمار کی درخواست کرنے کی ضرورت ہے تو اس کی کرنسی USDT اور ٹریڈنگ کرنسی BTC کے طور پر ہے ، پیرامیٹرsymbol
ہے:"BTC_USDT"
، اور یہ فارمیٹ ایف ایم زیڈ پلیٹ فارم کے ذریعہ طے شدہ ٹریڈنگ جوڑی فارمیٹ ہے۔
جب کال کریںexchange.GetTicker(symbol)
فنکشنexchange
فیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی symbol
ہے:"BTC_USDT.swap"
، اور فارمیٹ کے ایک مجموعہ ہےتجارتی جوڑااورمعاہدہ کا کوڈایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کیا گیا ہے ، جس کو علامت exchange.GetTicker(symbol)
فنکشنexchange
فیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی symbol
ہے:"BTC_USDT.BTC-240108-40000-C"
(مثال کے طور پر بائننس آپشن بی ٹی سی-240108-40000-C کو لے کر) ، فارمیٹتجارتی جوڑاایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کردہ اور ایکسچینج کے ذریعہ بیان کردہ مخصوص آپشن معاہدے کا کوڈ ، جس کو علامت
علامت غلط سٹرنگ
function main(){
// If it is a futures exchange object, set the contract code first, e.g. set it as a perpetual contract
// exchange.SetContractType("swap")
var ticker = exchange.GetTicker()
/*
The exchange interface may not be accessible due to network reasons (even if the docker program's device can open the exchange website, the API interface may not be accessible).
At this point, the ticker is null, and it will cause an error when accessing ticker.High, so when testing this code, make sure that the exchange interface can be accessed.
*/
Log("Symbol:", ticker.Symbol, "High:", ticker.High, "Low:", ticker.Low, "Sell:", ticker.Sell, "Buy:", ticker.Buy, "Last:", ticker.Last, "Open:", ticker.Open, "Volume:", ticker.Volume)
}
def main():
ticker = exchange.GetTicker()
Log("Symbol:", ticker["Symbol"], "High:", ticker["High"], "Low:", ticker["Low"], "Sell:", ticker["Sell"], "Buy:", ticker["Buy"], "Last:", ticker["Last"], "Open:", ticker.Open, "Volume:", ticker["Volume"])
void main() {
auto ticker = exchange.GetTicker();
Log("Symbol:", ticker.Symbol, "High:", ticker.High, "Low:", ticker.Low, "Sell:", ticker.Sell, "Buy:", ticker.Buy, "Last:", ticker.Last, "Open:", ticker.Open, "Volume:", ticker.Volume);
}
فیوچر ایکسچینج اشیاء کے لئے (یعنیexchange
یاexchanges[0]
), آپ کو استعمال کرتے ہوئے معاہدے کا کوڈ مقرر کرنے کی ضرورتexchange.SetContractType()
ٹکر فنکشن کو کال کرنے سے پہلے، جو بار بار نہیں کیا جائے گا.
function main() {
var ticker = exchange.GetTicker("BTC_USDT")
Log(ticker)
}
def main():
ticker = exchange.GetTicker("BTC_USDT")
Log(ticker)
void main() {
auto ticker = exchange.GetTicker("BTC_USDT");
Log(ticker);
}
استعمال کریںsymbol
ایک مخصوص علامت (اسپاٹ علامت) کے لئے مارکیٹ کے اعداد و شمار کی درخواست کرنے کے لئے پیرامیٹر.
کےTicker
ڈیٹا واپس کیاexchange.GetTicker()
backtesting کے نظام میں کام.High
اورLow
ایک فروخت اور اس وقت کی مارکیٹ میں ایک خریدنے سے لیا، کی طرف سے سمیلیٹ اقدار ہیں.Ticker
ڈیٹا واپس کیاexchange.GetTicker()
حقیقی مارکیٹ میں کام.High
اورLow
اقدار کی بنیاد پر ہیں کے اعداد و شمار کی واپسی کی طرف سے encapsulated تبادلہTick
انٹرفیس، جس میں ایک مخصوص مدت (عام طور پر ایک 24 گھنٹے کی مدت) کے اندر اندر سب سے زیادہ اور سب سے کم قیمت شامل ہے.
تبادلے جو حمایت نہیں کرتےexchange.GetTicker()
فنکشن:
فنکشن کا نام | غیر تعاون یافتہ اسپاٹ ایکسچینجز | غیر معاون فیوچر ایکسچینج |
---|---|---|
گیٹ ٹکر | – | فیوچر_ایوو |
{@fun/Market/exchange.GetDepth exchange.GetDepth}، {@fun/Market/exchange.GetTrades exchange.GetTrades}، {@fun/Market/exchange.GetRecords exchange.GetRecords}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange.GetTickers}، {@fun/Market/exchange.GetTickers exchange
{@struct/Depth Depth} اسپاٹ یا معاہدے کی ساخت حاصل کریں جو فی الحال مقرر کردہ ٹریڈنگ جوڑی، معاہدے کا کوڈ، یعنی آرڈر بک کے اعداد و شمار سے مطابقت رکھتا ہے.
کےexchange.GetDepth()
فنکشن {@struct/Depth Depth} ڈھانچہ لوٹاتا ہے اگر ڈیٹا کی درخواست کامیاب ہو، اور اگر ڈیٹا کی درخواست ناکام ہو تو یہ null لوٹاتا ہے۔
{@struct/Depth Depth}، صفر قدر
تبادلہ.GetDepth() تبادلہ.گٹ گہرائی ((علامت)
پیرامیٹرsymbol
{@struct/Depth Depth} ڈیٹا کی درخواست کے مطابق مخصوص ٹریڈنگ جوڑی اور معاہدے کا کوڈ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے۔ اگر یہ پیرامیٹر منظور نہیں کیا جاتا ہے تو ، فی الحال مقرر کردہ ٹریڈنگ جوڑی اور معاہدے کا کوڈ کے آرڈر بک کے اعداد و شمار کی درخواست کی جائے گی۔exchange.GetDepth(symbol)
فنکشنexchange
اسپاٹ ایکسچینج آبجیکٹ ہے۔ اگر آپ کو آرڈر بک ڈیٹا حاصل کرنے کی درخواست کرنے کی ضرورت ہے تو اس کی کرنسی USDT اور ٹرانزیکشن کرنسی BTC کے طور پر ہے ، پیرامیٹرsymbol
ہے:"BTC_USDT"
، اور فارمیٹ FMZ پلیٹ فارم کی طرف سے مقرر ٹریڈنگ جوڑی فارمیٹ ہے.exchange.GetDepth(symbol)
فنکشنexchange
فیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی symbol
ہے:"BTC_USDT.swap"
، اور فارمیٹ کے ایک مجموعہ ہےتجارتی جوڑااورمعاہدہ کا کوڈFMZ پلیٹ فارم کی طرف سے مقرر کیا جاتا ہے، جس میں حروف exchange.GetDepth(symbol)
فنکشنexchange
فیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی symbol
ہے:"BTC_USDT.BTC-240108-40000-C"
(مثال کے طور پر بائننس آپشن بی ٹی سی-240108-40000-C کو لے کر) ، فارمیٹتجارتی جوڑاایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کردہ اور ایکسچینج کے ذریعہ بیان کردہ مخصوص آپشن معاہدے کا کوڈ ، جس کو علامت
function main(){
var depth = exchange.GetDepth()
/*
The exchange interface may not be accessible due to network reasons (even if the docker program's device can open the exchange website, the API interface may not be accessible).
At this point, the depth is null, which will cause an error when accessing depth.Asks[1].Price, so make sure you can access the exchange interface when testing the code.
*/
var price = depth.Asks[1].Price
Log("Sell 2 price is:", price)
}
def main():
depth = exchange.GetDepth()
price = depth["Asks"][1]["Price"]
Log("Sell 2 price is:", price)
void main() {
auto depth = exchange.GetDepth();
auto price = depth.Asks[1].Price;
Log("Sell 2 price is:", price);
}
ٹیسٹexchange.GetDepth()
فنکشن:
function main() {
// BTC U-based perpetual contract
var depth = exchange.GetDepth("BTC_USDT.swap")
Log(depth)
}
def main():
depth = exchange.GetDepth("BTC_USDT.swap")
Log(depth)
void main() {
auto depth = exchange.GetDepth("BTC_USDT.swap");
Log(depth);
}
جب تشکیل شدہexchange
آبجیکٹ ایک فیوچر ایکسچینج آبجیکٹ ہے،symbol
ایک مخصوص علامت (فيوچر علامت) کے آرڈر بک کے اعداد و شمار کی درخواست کرنے کے لئے پیرامیٹر.
بیک ٹسٹنگ سسٹم میں، ہر گریڈ کے لئے اعداد و شمارexchange.GetDepth()
استعمال کرتے وقتٹِک کا مشابہتbacktesting تمام نمونے کے اقدار ہیں. backtesting کے نظام میں، اعداد و شمار کی طرف سے واپسexchange.GetDepth()
استعمال کرتے وقتاصلی ٹِکbacktesting ایک دوسری سطح گہری تصویر ہے.
{@fun/Market/exchange.GetTicker تبادلہ.GetTicker}، {@fun/Market/exchange.GetTrades تبادلہ.GetTrades}، {@fun/Market/exchange.GetRecords تبادلہ.GetRecords}
{@struct/Trade Trade} اسپاٹ یا معاہدے کی ساخت کی صف حاصل کریں جو فی الحال مقرر کردہ ٹریڈنگ جوڑی، معاہدے کا کوڈ، یعنی مارکیٹ ٹرانزیکشن کے اعداد و شمار سے مطابقت رکھتا ہے.
کےexchange.GetTrades()
فنکشن {@struct/Trade Trade} ڈھانچے کی ایک صف واپس کرتا ہے اگر ڈیٹا کی درخواست کامیاب ہو، اور اگر ڈیٹا کی درخواست ناکام ہو تو یہ صفر اقدار واپس کرتا ہے.
{@struct/Trade Trade} صفیں، خالی اقدار
تبادلہ.GetTrades() تبادلہ.GetTrades (علامت)
پیرامیٹرsymbol
مخصوص ٹریڈنگ جوڑی اور معاہدہ کوڈ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے جو مطلوبہ {@struct/Trade Trade} صف کے اعداد و شمار کے مطابق ہے۔ اگر یہ پیرامیٹر منظور نہیں کیا جاتا ہے تو ، فی الحال مقرر کردہ ٹریڈنگ جوڑی اور معاہدہ کوڈ کے تازہ ترین ٹرانزیکشن ریکارڈ کے اعداد و شمار کی پیشگی درخواست کی جائے گی۔exchange.GetTrades(symbol)
فنکشنexchange
اسپاٹ ایکسچینج آبجیکٹ ہے۔ اگر آپ کو آرڈر بک کے اعداد و شمار حاصل کرنے کی درخواست کرنے کی ضرورت ہے تو اس کی کرنسی USDT اور ٹریڈنگ کرنسی BTC کے طور پر ہے ، پیرامیٹرsymbol
ہے:"BTC_USDT"
، اور فارمیٹ FMZ پلیٹ فارم کی طرف سے مقرر ٹریڈنگ جوڑی فارمیٹ ہے.exchange.GetTrades(symbol)
فنکشنexchange
فیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی symbol
ہے:"BTC_USDT.swap"
، اور فارمیٹ کے ایک مجموعہ ہےتجارتی جوڑااورمعاہدہ کا کوڈFMZ پلیٹ فارم کی طرف سے مقرر کیا جاتا ہے، جس میں حروف exchange.GetTrades(symbol)
فنکشنexchange
فیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی کے یو معیاری آپشن معاہدے کے آرڈر بک ڈیٹا کی درخواست کرنے کی ضرورت ہے تو ، پیرامیٹرsymbol
ہے:"BTC_USDT.BTC-240108-40000-C"
(مثال کے طور پر بائننس آپشن بی ٹی سی-240108-40000-C کو لے کر) ، فارمیٹتجارتی جوڑاایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کردہ اور ایکسچینج کے ذریعہ بیان کردہ مخصوص آپشن معاہدے کا کوڈ ، جس کو علامت
function main(){
var trades = exchange.GetTrades()
/*
The exchange interface may not be accessible due to network reasons (even if the docker program's device can open the exchange website, the API interface may not be accessible).
At this point, trade is null. When accessing trade[0].Id, it will cause an error. Therefore, when testing this code, ensure that you can access the exchange interface.
*/
Log("id:", trades[0].Id, "time:", trades[0].Time, "Price:", trades[0].Price, "Amount:", trades[0].Amount, "type:", trades[0].Type)
}
def main():
trades = exchange.GetTrades()
Log("id:", trades[0]["Id"], "time:", trades[0]["Time"], "Price:", trades[0]["Price"], "Amount:", trades[0]["Amount"], "type:", trades[0]["Type"])
void main() {
auto trades = exchange.GetTrades();
Log("id:", trades[0].Id, "time:", trades[0].Time, "Price:", trades[0].Price, "Amount:", trades[0].Amount, "type:", trades[0].Type);
}
ٹیسٹ کریںexchange.GetTrades()
فنکشن:
function main() {
// BTC's U-based perpetual contract
var trades = exchange.GetTrades("BTC_USDT.swap")
Log(trades)
}
def main():
trades = exchange.GetTrades("BTC_USDT.swap")
Log(trades)
void main() {
auto trades = exchange.GetTrades("BTC_USDT.swap");
Log(trades);
}
جب تشکیل شدہexchange
آبجیکٹ ایک فیوچر ایکسچینج آبجیکٹ ہے،symbol
ایک مخصوص علامت (فيوچر علامت) کے لئے مارکیٹ ٹرانزیکشن ریکارڈ ڈیٹا کی درخواست کرنے کا پیرامیٹر۔
exchange.GetTrades()
موجودہ تجارتی جوڑے ، مارکیٹ کی ٹرانزیکشن ہسٹری (اپنی نہیں) کے مطابق معاہدوں کو حاصل کرنے کے لئے فنکشن۔ کچھ تبادلے اس فنکشن کی حمایت نہیں کرتے ہیں ، اور مخصوص ڈیٹا واپس کیا جاتا ہے کہ ٹرانزیکشن ریکارڈ کی حد کا کتنا حصہ تبادلہ پر منحصر ہے اور مخصوص صورتحال کے مطابق اس سے نمٹنے کی ضرورت ہے۔ واپسی کا ڈیٹا ایک صف ہے ، جہاں ہر عنصر کی تاریخی ترتیب اورexchange.GetRecords ()
فنکشن اعداد و شمار کا ایک ہی ترتیب واپس کرتا ہے، یعنی صف کا آخری عنصر موجودہ وقت کے قریب ترین ڈیٹا ہے۔
کےexchange.GetTrades()
فنکشن کا استعمال کرتے ہوئے ایک خالی صف لوٹاتا ہےٹِک کا مشابہتbacktesting کے نظام میں backtesting.exchange.GetTrades()
استعمال کرتے وقتاصلی ٹِکبیک ٹسٹنگ سسٹم میں بیک ٹسٹنگ آرڈر فلو اسنیپ شاٹ ڈیٹا ہے، یعنی {@struct/Trade Trade} ڈھانچہ صف۔
تبادلے جو حمایت نہیں کرتےexchange.GetTrades()
فنکشن:
فنکشن کا نام | غیر تعاون یافتہ اسپاٹ ایکسچینجز | غیر معاون فیوچر ایکسچینج |
---|---|---|
گیٹ ٹریڈز | – | فیوچر_بٹ مارٹ / فیوچر_بی باکس |
{@fun/Market/exchange.GetTicker تبادلہ.GetTicker}، {@fun/Market/exchange.GetDepth تبادلہ.GetDepth}، {@fun/Market/exchange.GetRecords تبادلہ.GetRecords}
{@struct/Record Record} اسپاٹ یا معاہدے کی ساخت کی صف حاصل کریں جو فی الحال مقرر کردہ ٹریڈنگ جوڑی، معاہدے کا کوڈ، یعنی K لائن ڈیٹا سے مطابقت رکھتا ہے.
کےexchange.GetRecords()
فنکشن {@struct/Record Record} ڈھانچے کی ایک صف واپس کرتا ہے جب ڈیٹا کی درخواست کامیاب ہوتی ہے ، اور جب ڈیٹا کی درخواست ناکام ہوجاتی ہے تو یہ صفر اقدار واپس کرتا ہے۔
{@struct/Record Record} صفیں، خالی اقدار
تبادلہ.GetRecords() تبادلہ.GetRecords ((علامت) تبادلہ.GetRecords ((علامت، نقطہ) exchange.GetRecords ((علامت، مدت، حد) تبادلہ.GetRecords (معیاد) تبادلہ.GetRecords ((مدت، حد)
پیرامیٹرsymbol
مخصوص ٹریڈنگ جوڑی اور معاہدہ کوڈ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے جو مطلوبہ {@struct/Record Record} صف کے اعداد و شمار کے مطابق ہے۔ اگر یہ پیرامیٹر منظور نہیں کیا جاتا ہے تو ، فی الحال مقرر کردہ ٹریڈنگ جوڑی اور معاہدے کا کوڈ کی K لائن ڈیٹا ڈیفالٹ کے مطابق طلب کیا جائے گا۔exchange.GetRecords(symbol)
فنکشنexchange
اسپاٹ ایکسچینج آبجیکٹ ہے۔ اگر آپ کو USDT کے طور پر نامزد کرنسی اور BTC کے طور پر ٹرانزیکشن کرنسی کے ساتھ ڈیٹا حاصل کرنے کی درخواست کرنے کی ضرورت ہے تو ، پیرامیٹرsymbol
ہے:"BTC_USDT"
، اور فارمیٹ FMZ پلیٹ فارم کی طرف سے مقرر ٹریڈنگ جوڑی فارمیٹ ہے.exchange.GetRecords(symbol)
فنکشنexchange
فیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی symbol
ہے:"BTC_USDT.swap"
، اور فارمیٹ کے ایک مجموعہ ہےتجارتی جوڑااورمعاہدہ کا کوڈFMZ پلیٹ فارم کی طرف سے مقرر کیا جاتا ہے، جس میں حروف exchange.GetRecords(symbol)
فنکشنexchange
فیوچر ایکسچینج آبجیکٹ ہے۔ اگر آپ کو بی ٹی سی کے یو معیاری آپشن معاہدے کے آرڈر بک ڈیٹا کی درخواست کرنے کی ضرورت ہے تو ، پیرامیٹرsymbol
ہے:"BTC_USDT.BTC-240108-40000-C"
(مثال کے طور پر بائننس آپشن بی ٹی سی-240108-40000-C کو لے کر) ، فارمیٹتجارتی جوڑاایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کردہ اور ایکسچینج کے ذریعہ بیان کردہ مخصوص آپشن معاہدے کا کوڈ ، جس کو علامت period
مطلوبہ K لائن ڈیٹا کی مدت کی وضاحت کرتا ہے، مثال کے طور پر: {@var/PERIOD/PERIOD_M1 PERIOD_M1}، {@var/PERIOD/PERIOD_M5 PERIOD_M5}، {@var/PERIOD/PERIOD_M15 PERIOD_M15} وغیرہ۔ پیرامیٹر کی قیمتperiod
نہ صرف طے شدہ معیاری مدت ، بلکہ سیکنڈ میں عددی اقدار کو بھی پاس کیا جاسکتا ہے۔ اگر یہ پیرامیٹر پاس نہیں کیا جاتا ہے تو ، ڈیفالٹ کے ذریعہ درخواست کردہ K- لائن ڈیٹا کی مدت موجودہ حکمت عملی ریئل ٹائم / بیک ٹسٹ ترتیب کی ڈیفالٹ K- لائن مدت ہے۔
مدت
غلط
نمبر
پیرامیٹرlimit
مطلوبہ K- لائن ڈیٹا کی لمبائی کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے۔ اگر یہ پیرامیٹر منظور نہیں کیا جاتا ہے تو ، ڈیفالٹ درخواست کی لمبائی تبادلہ K- لائن انٹرفیس کے وقت درخواست کردہ K- لائن باروں کی زیادہ سے زیادہ تعداد ہے۔ اس پیرامیٹر کی وجہ سے تبادلہ K- لائن ڈیٹا سے استفسار کرنے کے لئے پیجنگ ہوسکتی ہے ، اور پیجنگ استفسار کے دوران فنکشن کال کا وقت کی کھپت بڑھ جائے گی۔
حد
غلط
نمبر
function main() {
// Print K-line data with a K-line period of 120 seconds (2 minutes)
Log(exchange.GetRecords(60 * 2))
// Print K-line data with a K-line period of 5 minutes
Log(exchange.GetRecords(PERIOD_M5))
}
def main():
Log(exchange.GetRecords(60 * 2))
Log(exchange.GetRecords(PERIOD_M5))
void main() {
Log(exchange.GetRecords(60 * 2)[0]);
Log(exchange.GetRecords(PERIOD_M5)[0]);
}
ایک اپنی مرضی کے مطابق مدت کے لئے K لائن ڈیٹا حاصل کریں.
function main() {
var records = exchange.GetRecords(PERIOD_H1)
/*
The exchange interface may not be accessible due to network reasons (even if the docker program's device can open the exchange website, the API interface may not be accessible).
At this point, records is null. When accessing records[0].Time, it will cause an error. Therefore, when testing this code, ensure that you can access the exchange interface.
*/
Log("The first k-line data is Time:", records[0].Time, "Open:", records[0].Open, "High:", records[0].High)
Log("The second k-line data is Time:", records[1].Time ,"Close:", records[1].Close)
Log("Current K-line (latest)", records[records.length-1], "Previous K-line", records[records.length-2])
}
def main():
records = exchange.GetRecords(PERIOD_H1)
Log("The first k-line data is Time:", records[0]["Time"], "Open:", records[0]["Open"], "High:", records[0]["High"])
Log("The second k-line data Time:", records[1]["Time"], "Close:", records[1]["Close"])
Log("Current K-line (latest)", records[-1], "Previous K-line", records[-2])
void main() {
auto records = exchange.GetRecords(PERIOD_H1);
Log("The first k-line data is Time:", records[0].Time, "Open:", records[0].Open, "High:", records[0].High);
Log("The second k-line data Time:", records[1].Time, "Close:", records[1].Close);
Log("Current K-line (latest)", records[records.size() - 1], "Previous K-line", records[records.size() - 2]);
}
آؤٹ پٹ K لائن بار ڈیٹا:
function main() {
var records = exchange.GetRecords("BTC_USDT.swap", 60, 100)
Log(records)
}
def main():
records = exchange.GetRecords("BTC_USDT.swap", 60, 100)
Log(records)
void main() {
auto records = exchange.GetRecords("BTC_USDT.swap", 60, 100);
Log(records);
}
جب تشکیل شدہexchange
آبجیکٹ ایک فیوچر ایکسچینج آبجیکٹ ہے،symbol
, period
، اورlimit
ایک مخصوص مصنوعات (مستقبل کی مصنوعات) کے K لائن ڈیٹا کی درخواست کرنے کے لئے پیرامیٹرز.
پہلے سے طے شدہ K لائن مدت backtest اور حقیقی ٹریڈنگ صفحات میں مقرر کیا جا سکتا ہے.exchange.GetRecords()
فنکشن ، اس پیرامیٹر مدت سے متعلق K لائن ڈیٹا حاصل کیا جائے گا۔ اگر فنکشن کو بلانے پر کوئی پیرامیٹر متعین نہیں کیا جاتا ہے تو ، بیک ٹیسٹ اور حقیقی مارکیٹ پیرامیٹرز میں طے شدہ K لائن مدت کے مطابق متعلقہ K لائن ڈیٹا واپس کیا جائے گا۔
واپسی کی قیمت کی ایک صف ہےRecord
ڈھانچے، واپس K لائن کے اعداد و شمار وقت کے ساتھ ساتھ جمع کیا جائے گا، جمع K لائن سلاخوں کی اوپری حد کی طرف سے متاثر کیا جاتا ہےexchange.SetMaxBarLen()
فنکشن کی ترتیب۔ ڈیفالٹ کی حد 5000 بار ہے جب یہ مقرر نہیں ہوتی ہے۔ جب K لائن ڈیٹا K لائن بار جمع کرنے کی حد تک پہنچ جاتا ہے تو ، اسے K لائن بار شامل کرکے اور سب سے پہلے K لائن بار کو حذف کرکے اپ ڈیٹ کیا جائے گا (جیسے قطار میں / باہر) ۔ کچھ تبادلے K لائن انٹرفیس فراہم نہیں کرتے ہیں ، لہذا ڈوکر مارکیٹ ٹرانزیکشن ریکارڈ ڈیٹا اکٹھا کرتا ہے (Trade
منظم صف) حقیقی وقت میں K لائنز پیدا کرنے کے لئے.
اگر ایکسچینج کے K- لائن انٹرفیس پیجنگ سوالات کی حمایت کرتا ہے تو ، متعدد API درخواستیں کال کرنے پر کی جائیں گیexchange.SetMaxBarLen()
ایک بڑی K لائن کی لمبائی مقرر کرنے کے لئے تقریب.
جبexchange.GetRecords()
فنکشن کو ابتدائی طور پر بلایا جاتا ہے تو ، بیک ٹیسٹنگ اور حقیقی تجارت کے درمیان حاصل کردہ K- لائن باروں کی تعداد مختلف ہوتی ہے۔ - بیک ٹیسٹنگ سسٹم بیک ٹیسٹنگ ٹائم رینج کے آغاز سے پہلے ہی ایک خاص تعداد میں K- لائن بار حاصل کرے گا (ڈیفالٹ 5000 ہے ، بیک ٹیسٹنگ سسٹم کی ترتیبات اور اعداد و شمار کی مقدار حتمی تعداد کو متاثر کرے گی) ، جیسا کہ ابتدائی K- لائن ڈیٹا۔ - اصل تجارت کے دوران حاصل کردہ K- لائن باروں کی تعداد اس اعداد و شمار کی زیادہ سے زیادہ مقدار پر مبنی ہے جو ایکسچینج کے K- لائن انٹرفیس سے حاصل کی جاسکتی ہے۔
کےperiod
پیرامیٹر 5 پر مقرر کیا جاتا ہے، جو 5 سیکنڈ کے ایک مدت کے ساتھ K لائن کے اعداد و شمار حاصل کرنے کے لئے ایک درخواست ہے.period
پیرامیٹر 60 سے تقسیم نہیں ہوتا ہے (یعنی ، جس مدت کی نمائندگی کی جاتی ہے وہ منٹوں میں تقسیم نہیں ہوتی ہے۔ بنیادی نظام کے متعلقہ انٹرفیس کا استعمال کرتا ہےexchange.GetTrades()
ٹرانزیکشن ریکارڈ کے اعداد و شمار حاصل کرنے اور مطلوبہ K- لائن کے اعداد و شمار کا تجزیہ کرنے کے لئے.period
پیرامیٹر 60 سے تقسیم کیا جاتا ہے، تو مطلوبہ K لائن کے اعداد و شمار کو کم از کم 1 منٹ کے K لائن کے اعداد و شمار کا استعمال کرتے ہوئے ترکیب کیا جاتا ہے (اگر ممکن ہو تو، مطلوبہ K لائن کے اعداد و شمار کو زیادہ مدت کا استعمال کرتے ہوئے ترکیب کیا جاتا ہے).
بیک ٹیسٹنگ سسٹم میں تخروپن سطح کی بیک ٹیسٹنگ کے لئے بنیادی K لائن مدت کی ترتیب کی ضرورت ہوتی ہے (جب بیک ٹیسٹنگ سسٹم سطح کی بیک ٹیسٹنگ کی نقالی کرتا ہے تو ، اسی کے مطابق K لائن کے اعداد و شمار کو سیٹ کے بنیادی K لائن مدت کے مطابق ٹِک ڈیٹا تیار کرنے کے لئے استعمال کیا جاتا ہے) ۔ یہ نوٹ کیا جانا چاہئے کہ حکمت عملی میں حاصل کردہ K لائن کے اعداد و شمار کی مدت بنیادی K لائن مدت سے کم نہیں ہونی چاہئے۔ کیونکہ تخروپن سطح کی بیک ٹیسٹنگ میں ، بیک ٹیسٹنگ سسٹم میں ہر مدت کے K لائن کے اعداد و شمار کو بنیادی K لائن مدت کے K لائن کے اعداد و شمار سے ترکیب کیا جاتا ہے۔
کےC++
زبان مندرجہ ذیل کوڈ مثال ہے اگر آپ کو آپ کے اپنے K لائن ڈیٹا کی تعمیر کرنے کی ضرورت ہے:
#include <sstream>
void main() {
Records r;
r.Valid = true;
for (auto i = 0; i < 10; i++) {
Record ele;
ele.Time = i * 100000;
ele.High = i * 10000;
ele.Low = i * 1000;
ele.Close = i * 100;
ele.Open = i * 10;
ele.Volume = i * 1;
r.push_back(ele);
}
// Output display: Records[10]
Log(r);
auto ma = TA.MA(r,10);
// Output display: [nan,nan,nan,nan,nan,nan,nan,nan,nan,450]
Log(ma);
}
تبادلے جو حمایت نہیں کرتےexchange.GetRecords()
فنکشن:
فنکشن کا نام | غیر تعاون یافتہ اسپاٹ ایکسچینجز | غیر معاون فیوچر ایکسچینج |
---|---|---|
ریکارڈ حاصل کریں | Zaif / Coincheck / BitFlyer | فیوچر_ایوو |
{@fun/Market/exchange.GetTicker تبادلہ.GetTicker}، {@fun/Market/exchange.GetDepth تبادلہ.GetDepth}، {@fun/Market/exchange.GetTrades تبادلہ.GetTrades}، {@fun/Market/exchange.SetMaxBarLen تبادلہ.SetMaxBarLen}
براہ راست ٹریڈنگ میں حکمت عملی کی بیک ٹیسٹنگ اور چلانے کے دوران ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم ویب سائٹ کے صفحے پر K لائن مدت مقرر کریں ، یعنی ڈیفالٹ K لائن مدت کو کال کرتے وقت استعمال کیا جاتا ہے۔exchange.GetRecords()
پیرامیٹرز کو منتقل کرنے کے بغیر کام.
سیکنڈ میں K لائن کا دورانیہ، سیکنڈ میں انٹیجر ویلیو نمبر
تبادلہ.GetPeriod()
function main() {
// For example, the K-line period set on the website page of the FMZ Quant Trading platform during backtesting and live trading is 1 hour.
var period = exchange.GetPeriod()
Log("K-line period:", period / (60 * 60), "hours")
}
def main():
period = exchange.GetPeriod()
Log("K-line period:", period / (60 * 60), "hours")
void main() {
auto period = exchange.GetPeriod();
Log("K-line period:", period / (60 * 60.0), "hours");
}
{@fun/Market/exchange.GetRecords تبادلہ.GetRecords}
K لائن کی زیادہ سے زیادہ لمبائی مقرر کریں.
تبادلہ.SetMaxBarLen ((n)
پیرامیٹرn
زیادہ سے زیادہ K لائن کی لمبائی کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
ن
سچ
نمبر
function main() {
exchange.SetMaxBarLen(50)
var records = exchange.GetRecords()
Log(records.length, records)
}
def main():
exchange.SetMaxBarLen(50)
r = exchange.GetRecords()
Log(len(r), r)
void main() {
exchange.SetMaxBarLen(50);
auto r = exchange.GetRecords();
Log(r.size(), r[0]);
}
کےexchange.SetMaxBarLen()
فنکشن cryptocurrency حکمت عملی رن ٹائم کے لئے دو پہلوؤں کو متاثر کرتا ہے:
{@fun/Market/exchange.GetRecords تبادلہ.GetRecords}
اصل مواد کو آخری تک واپس کریںrest
موجودہ تبادلہ آبجیکٹ کے لئے درخواست ({@var/EXCHANGE تبادلہ}، {@var/EXCHANGE/exchanges exchanges}).
جواب کے اعداد و شمارrest
درخواست.
سٹرنگ
تبادلہ.GetRawJSON()
function main(){
exchange.GetAccount();
var obj = JSON.parse(exchange.GetRawJSON());
Log(obj);
}
import json
def main():
exchange.GetAccount()
obj = json.loads(exchange.GetRawJSON())
Log(obj)
void main() {
auto obj = exchange.GetAccount();
// C++ does not support the GetRawJSON function
Log(obj);
}
کےexchange.GetRawJSON()
فنکشن صرف حقیقی ٹریڈنگ کے لئے حمایت کی جاتی ہے.C++
language.
{@var/EXCHANGE تبادلہ}
تبادلہ اعتراض کے لئے فی الحال مقرر کرنسی کی شرح حاصل کریں.
تبادلے کے اعتراض کی شرح تبادلہ کی موجودہ قیمت۔ نمبر
تبادلہ.GetRate()
function main(){
Log(exchange.GetTicker())
// Set up exchange rate conversion
exchange.SetRate(7)
Log(exchange.GetTicker())
Log("Current exchange rate:", exchange.GetRate())
}
def main():
Log(exchange.GetTicker())
exchange.SetRate(7)
Log(exchange.GetTicker())
Log("Current exchange rate:", exchange.GetRate())
void main() {
Log(exchange.GetTicker());
exchange.SetRate(7);
Log(exchange.GetTicker());
Log("Current exchange rate:", exchange.GetRate());
}
اگرexchange.SetRate()
تبادلہ کی شرح مقرر کرنے کے لئے بلایا نہیں کیا گیا ہے،exchange.GetRate()
فنکشن 1 کی ڈیفالٹ شرح کی قدر لوٹاتا ہے۔ یعنی ، فی الحال دکھائی جانے والی کرنسی (quoteCurrency) سے متعلق ڈیٹا کو تبدیل نہیں کیا گیا ہے۔
اگر زر مبادلہ کی شرح کی قیمت کا استعمال کرتے ہوئے مقرر کیا گیا ہےexchange.SetRate()
مثال کے طور پر،exchange.SetRate(7)
اس کے بعد تمام قیمت کی معلومات، جیسے قیمتوں کا تعین، گہرائیوں، اور آرڈر کی قیمتوں کے ذریعے حاصلexchange
ایکسچینج آبجیکٹ کو مقرر کردہ زر مبادلہ کی شرح سے ضرب کرکے تبدیل کیا جائے گا7
.
اگرexchange
کال کرنے کے بعد USD کے ساتھ تبادلہ کے برابر ہےexchange.SetRate(7)
، براہ راست مارکیٹ میں تمام قیمتوں کو ضرب کر کے CNY کے قریب قیمت میں تبدیل کیا جائے گا7
اس وقت، زر مبادلہ کی شرح کی قیمت کا استعمال کرتے ہوئے حاصل کیا جاتا ہےexchange.GetRate()
ہے7
.
{@fun/Trade/exchange.SetRate تبادلہ.SetRate}
کےexchange.SetData()
تقریب کی حکمت عملی چل رہا ہے جب لوڈ ڈیٹا مقرر کرنے کے لئے استعمال کیا جاتا ہے.
پیرامیٹر کے بعد تار کی لمبائیvalue
JSON کوڈنگ.
نمبر
exchange.SetData ((کلید، قدر)
ڈیٹا جمع کرنے کا نام۔
چابی
سچ
سٹرنگ
ڈیٹا کو لوڈ کیا جائے گاexchange.SetData()
فنکشن ایک صف کا ڈیٹا ڈھانچہ ہے. ڈیٹا ڈھانچہ کی طرف سے درخواست کی ڈیٹا کی شکل کے طور پر ایک ہی ہےexchange.GetData()
بیرونی اعداد و شمار کی درخواست کرتے وقت فنکشن، یعنی:"schema": ["time", "data"]
.
قیمت
سچ
صف
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
function main() {
var data = [
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
]
exchange.SetData("test", data)
while(true) {
Log(exchange.GetData("test"))
Sleep(1000)
}
}
'''backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
'''
def main():
data = [
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
]
exchange.SetData("test", data)
while True:
Log(exchange.GetData("test"))
Sleep(1000)
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
void main() {
json data = R"([
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
])"_json;
exchange.SetData("test", data);
while(true) {
Log(exchange.GetData("test"));
Sleep(1000);
}
}
یہ پیرامیٹر کے لئے ڈیٹا کی ضرورت ہوتی ہےvalue
ایک ہی شکل میں ہونا چاہئےdata
مندرجہ ذیل مثال میں متغیر. آپ دیکھ سکتے ہیں کہ ٹائم اسٹیمپ1579622400000
وقت سے مطابقت رکھتا ہے2020-01-22 00:00:00
، اور اس وقت کے بعد حکمت عملی پروگرام چلایا جاتا ہے جب، کال کریںexchange.GetData()
اگلے ڈیٹا ٹائم اسٹیمپ سے پہلے اعداد و شمار حاصل کرنے کے لئے تقریب1579708800000
، یعنی وقت2020-01-23 00:00:00
آپ کو کیا ملتا ہے[1579622400000, 123]
اس ڈیٹا کا مواد ، جیسا کہ پروگرام چلتا رہتا ہے ، وقت تبدیل ہوتا ہے ، اور اسی طرح اعداد و شمار کی شے کو شے کے ذریعہ حاصل کرنے کے لئے۔ مندرجہ ذیل مثال میں ، رن ٹائم (بیکٹ ٹیسٹنگ یا لائیو ٹریڈنگ) میں ، موجودہ لمحہ ٹائم اسٹیمپ تک پہنچ جاتا ہے یا اس سے تجاوز کرتا ہے۔1579795200000
،exchange.GetData()
فنکشن بلایا جاتا ہے اور واپسی کی قیمت ہے:{"Time":1579795200000,"Data":["abc", 123,{"price":123}]}
. "Time":1579795200000
کے مطابق ہے1579795200000
ڈیٹا میں[1579795200000, ["abc", 123, {"price": 123}]]
. "Data":["abc", 123, {"price": 123}]
اعداد و شمار سے مطابقت رکھتا ہے["abc", 123, {"price": 123}]]
میں[1579795200000, ["abc", 123, {"price": 123}]]
.
لوڈ کردہ اعداد و شمار کسی بھی معاشی اشارے ، صنعت کے اعداد و شمار ، متعلقہ اشارے وغیرہ ہوسکتے ہیں ، جو تمام مقداری معلومات کے حکمت عملی مقداری تشخیص کے لئے استعمال ہوتے ہیں۔
{@fun/Market/exchange.GetData تبادلہ.GetData}
کےexchange.GetData()
فنکشن کی طرف سے لوڈ ڈیٹا حاصل کرنے کے لئے استعمال کیا جاتا ہےexchange.SetData()
فنکشن یا بیرونی لنک کی طرف سے فراہم کی.
ڈیٹا کلیکشن میں ریکارڈ۔ چیز
تبادلہ.GetData ((کلید) تبادلہ.GetData ((کلید، ٹائم آؤٹ)
ڈیٹا جمع کرنے کا نام۔ چابی سچ سٹرنگ ملی سیکنڈ میں کیش ٹائم آؤٹ سیٹ کرنے کے لئے استعمال کیا جاتا ہے۔ براہ راست تجارت کے لئے ایک منٹ کیش ٹائم آؤٹ پر ڈیفالٹس۔ ٹائم آؤٹ غلط نمبر
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
function main() {
exchange.SetData("test", [[1579536000000, _D(1579536000000)], [1579622400000, _D(1579622400000)], [1579708800000, _D(1579708800000)]])
while(true) {
Log(exchange.GetData("test"))
Sleep(1000 * 60 * 60 * 24)
}
}
'''backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
'''
def main():
exchange.SetData("test", [[1579536000000, _D(1579536000000/1000)], [1579622400000, _D(1579622400000/1000)], [1579708800000, _D(1579708800000/1000)]])
while True:
Log(exchange.GetData("test"))
Sleep(1000 * 60 * 60 * 24)
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
void main() {
json arr = R"([[1579536000000, ""], [1579622400000, ""], [1579708800000, ""]])"_json;
arr[0][1] = _D(1579536000000);
arr[1][1] = _D(1579622400000);
arr[2][1] = _D(1579708800000);
exchange.SetData("test", arr);
while(true) {
Log(exchange.GetData("test"));
Sleep(1000 * 60 * 60 * 24);
}
}
براہ راست اعداد و شمار لکھنے کے لئے کال.
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
function main() {
while(true) {
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
Sleep(1000)
}
}
'''backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
'''
def main():
while True:
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
Sleep(1000)
/*backtest
start: 2020-01-21 00:00:00
end: 2020-02-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}]
*/
void main() {
while(true) {
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"));
Sleep(1000);
}
}
یہ بیرونی روابط کے ذریعے ڈیٹا کی درخواست کرنے کے لئے حمایت کرتا ہے، درخواست کردہ ڈیٹا کی شکل:
{
"schema":["time","data"],
"data":[
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
]
}
کہاںschema
لوڈ کردہ ڈیٹا کے جسم میں ہر ریکارڈ کے لئے ڈیٹا فارمیٹ ہے، جو مقرر کیا جاتا ہے["time", "data"]
میں اندراج کی طرف سے اندراج کے اعداد و شمار کی شکل کے مطابقdata
صفت.
میں ذخیرہ کیا جاتا ہےdata
خاصیت ڈیٹا کا جسم ہے ، ہر اندراج میں ملی سیکنڈ کی سطح کا ٹائم اسٹیمپ اور ڈیٹا کا مواد ہوتا ہے (جو کوئی بھی JSON کوڈ قابل ڈیٹا ہوسکتا ہے) ۔
ٹیسٹنگ کے لئے سروس پروگرام، گو میں لکھا:
package main
import (
"fmt"
"net/http"
"encoding/json"
)
func Handle (w http.ResponseWriter, r *http.Request) {
defer func() {
fmt.Println("req:", *r)
ret := map[string]interface{}{
"schema": []string{"time","data"},
"data": []interface{}{
[]interface{}{1579536000000, "abc"},
[]interface{}{1579622400000, 123},
[]interface{}{1579708800000, map[string]interface{}{"price":123}},
[]interface{}{1579795200000, []interface{}{"abc", 123, map[string]interface{}{"price":123}}},
},
}
b, _ := json.Marshal(ret)
w.Write(b)
}()
}
func main () {
fmt.Println("listen http://localhost:9090")
http.HandleFunc("/data", Handle)
http.ListenAndServe(":9090", nil)
}
درخواست موصول ہونے پر پروگرام کے جواب کے اعداد و شمار:
{
"schema":["time","data"],
"data":[
[1579536000000, "abc"],
[1579622400000, 123],
[1579708800000, {"price": 123}],
[1579795200000, ["abc", 123, {"price": 123}]]
]
}
ٹیسٹ کی حکمت عملی کا کوڈ:
function main() {
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
Log(exchange.GetData("https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json"))
}
def main():
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"))
Log(exchange.GetData("https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json"))
void main() {
Log(exchange.GetData("http://xxx.xx.x.xx:9090/data"));
Log(exchange.GetData("https://www.fmz.com/upload/asset/32bf73a69fc12d36e76.json"));
}
ایک بیرونی لنک کے اعداد و شمار حاصل کرنے کے لئے کال کا طریقہ.
function main() {
Log(exchange.GetData("https://www.datadata.com/api/v1/query/xxx/data")) // The xxx part of the link is the code of the query data, here xxx is an example.
}
def main():
Log(exchange.GetData("https://www.datadata.com/api/v1/query/xxx/data"))
void main() {
Log(exchange.GetData("https://www.datadata.com/api/v1/query/xxx/data"));
}
پلیٹ فارم پر تخلیق کردہ استفسار کے لئے ڈیٹا کی درخواست کریںڈیٹا ڈیٹا، درخواست ہے کہ جواب کے اعداد و شمار کی شکل ہو جائے گا (وقت ہونا ضروری ہے، اعداد و شمار کے شعبوں میں بیان کیا گیا ہے):
{
"data": [],
"schema": ["time", "data"]
}
exchange.GetData()
فنکشن بلایا جاتا ہے، ایک JSON اعتراض واپس کیا جاتا ہے، مثال کے طور پر:{"Time":1579795200000, "Data":"..."}
.
بیک ٹیسٹنگ کے لئے ایک بار میں ڈیٹا حاصل کریں اور براہ راست تجارت کے لئے ایک منٹ کے ڈیٹا کو کیش کریں۔ بیک ٹیسٹنگ سسٹم میں ، جب رسائی انٹرفیس کا استعمال کرتے ہوئے ڈیٹا کی درخواست کی جائے تو ، بیک ٹیسٹنگ سسٹم خود بخود شامل کرتا ہےfrom
(سیکنڈ میں وقت کا نشان)to
(سیکنڈ میں ٹائم اسٹیمپ) کی درخواست، پیرامیٹرز جیسےperiod
(بنیادی K لائن کی مدت، ملی سیکنڈ میں ٹائم اسٹیمپ) کا استعمال اس وقت کے فریم کو طے کرنے کے لئے کیا جاتا ہے جس پر ڈیٹا حاصل کیا جانا ہے۔
{@ تفریح/مارکیٹ/تبادلہ.سیٹ ڈیٹا تبادلہ.سیٹ ڈیٹا}
کےexchange.GetMarkets()
فنکشن تبادلہ مارکیٹ کی معلومات حاصل کرنے کے لئے استعمال کیا جاتا ہے.
{@struct/Market Market} ساخت پر مشتمل لغت. چیز
تبادلہ.GetMarkets()
function main() {
var markets = exchange.GetMarkets()
var currency = exchange.GetCurrency()
// Get the current contract code can also use exchange.GetContractType() function
var ct = "swap"
var key = currency + "." + ct
Log(key, ":", markets[key])
}
def main():
markets = exchange.GetMarkets()
currency = exchange.GetCurrency()
ct = "swap"
key = currency + "." + ct
Log(key, ":", markets[key])
void main() {
auto markets = exchange.GetMarkets();
auto currency = exchange.GetCurrency();
auto ct = "swap";
auto key = currency + "." + ct;
Log(key, ":", markets[key]);
}
فیوچر ایکسچینج آبجیکٹ پر کال کا مثال:
/*backtest
start: 2023-05-10 00:00:00
end: 2023-05-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
function main() {
var arrSymbol = ["SOL_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]
var tbl1 = {
type: "table",
title: "markets1",
cols: ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
rows: []
}
var markets1 = exchange.GetMarkets()
for (var key in markets1) {
var market = markets1[key]
tbl1.rows.push([key, market.Symbol, market.BaseAsset, market.QuoteAsset, market.TickSize, market.AmountSize, market.PricePrecision, market.AmountPrecision, market.MinQty, market.MaxQty, market.MinNotional, market.MaxNotional, market.CtVal])
}
for (var symbol of arrSymbol) {
exchange.GetTicker(symbol)
}
var tbl2 = {
type: "table",
title: "markets2",
cols: ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
rows: []
}
var markets2 = exchange.GetMarkets()
for (var key in markets2) {
var market = markets2[key]
tbl2.rows.push([key, market.Symbol, market.BaseAsset, market.QuoteAsset, market.TickSize, market.AmountSize, market.PricePrecision, market.AmountPrecision, market.MinQty, market.MaxQty, market.MinNotional, market.MaxNotional, market.CtVal])
}
LogStatus("`" + JSON.stringify([tbl1, tbl2]) + "`")
}
'''backtest
start: 2023-05-10 00:00:00
end: 2023-05-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
'''
import json
def main():
arrSymbol = ["SOL_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]
tbl1 = {
"type": "table",
"title": "markets1",
"cols": ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
"rows": []
}
markets1 = exchange.GetMarkets()
for key in markets1:
market = markets1[key]
tbl1["rows"].append([key, market["Symbol"], market["BaseAsset"], market["QuoteAsset"], market["TickSize"], market["AmountSize"], market["PricePrecision"], market["AmountPrecision"], market["MinQty"], market["MaxQty"], market["MinNotional"], market["MaxNotional"], market["CtVal"]])
for symbol in arrSymbol:
exchange.GetTicker(symbol)
tbl2 = {
"type": "table",
"title": "markets2",
"cols": ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
"rows": []
}
markets2 = exchange.GetMarkets()
for key in markets2:
market = markets2[key]
tbl2["rows"].append([key, market["Symbol"], market["BaseAsset"], market["QuoteAsset"], market["TickSize"], market["AmountSize"], market["PricePrecision"], market["AmountPrecision"], market["MinQty"], market["MaxQty"], market["MinNotional"], market["MaxNotional"], market["CtVal"]])
LogStatus("`" + json.dumps([tbl1, tbl2]) + "`")
/*backtest
start: 2023-05-10 00:00:00
end: 2023-05-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
void main() {
auto arrSymbol = {"SOL_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"};
json tbl1 = R"({
"type": "table",
"title": "markets1",
"cols": ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
"rows": []
})"_json;
auto markets1 = exchange.GetMarkets();
for (auto& [key, market] : markets1.items()) {
json arrJson = {key, market["Symbol"], market["BaseAsset"], market["QuoteAsset"], market["TickSize"], market["AmountSize"], market["PricePrecision"], market["AmountPrecision"], market["MinQty"], market["MaxQty"], market["MinNotional"], market["MaxNotional"], market["CtVal"]};
tbl1["rows"].push_back(arrJson);
}
for (const auto& symbol : arrSymbol) {
exchange.GetTicker(symbol);
}
json tbl2 = R"({
"type": "table",
"title": "markets2",
"cols": ["key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty", "MaxQty", "MinNotional", "MaxNotional", "CtVal"],
"rows": []
})"_json;
auto markets2 = exchange.GetMarkets();
for (auto& [key, market] : markets2.items()) {
json arrJson = {key, market["Symbol"], market["BaseAsset"], market["QuoteAsset"], market["TickSize"], market["AmountSize"], market["PricePrecision"], market["AmountPrecision"], market["MinQty"], market["MaxQty"], market["MinNotional"], market["MaxNotional"], market["CtVal"]};
tbl2["rows"].push_back(arrJson);
}
json tbls = R"([])"_json;
tbls.push_back(tbl1);
tbls.push_back(tbl2);
LogStatus("`" + tbls.dump() + "`");
}
مستقبل کے تبادلے اعتراض کو کال کرنے کے لئے استعمال کریںexchange.GetMarkets()
بیک ٹسٹنگ سسٹم میں فنکشن۔ کسی بھی مارکیٹ فنکشن کو کال کرنے سے پہلے ، گیٹ مارکیٹس صرف موجودہ ڈیفالٹ ٹریڈنگ جوڑی کے مارکیٹ ڈیٹا کو واپس کرتا ہے۔ مارکیٹ فنکشن کو کال کرنے کے بعد ، یہ تمام مطلوبہ اقسام کے مارکیٹ ڈیٹا کو واپس کرتا ہے۔ آپ مندرجہ ذیل ٹیسٹ مثال کا حوالہ دے سکتے ہیں:
کےexchange.GetMarkets()
فنکشن ٹریڈنگ کی قسم کا نام رکھنے والی کلید کے ساتھ ایک لغت واپس کرتا ہے ، اور تجارتی جوڑی کے طور پر فارمیٹ کردہ اسپاٹ فکسز کے لئے ، مثال کے طور پر:
{
"BTC_USDT" : {...}, // The key value is the Market structure
"LTC_USDT" : {...},
...
}
مستقبل کے معاہدے کے تبادلے کے لئے، کیونکہ ایک ہی قسم کے لئے متعدد معاہدے ہوسکتے ہیں، مثال کے طور پرBTC_USDT
ٹریڈنگ کے جوڑوں، ہمیشہ کے لئے معاہدوں، سہ ماہی معاہدوں، اور اسی طرح کے ہیں.exchange.GetMarkets()
فنکشن معاہدے کے کوڈ کے ساتھ مل کر جوڑی کے کلیدی نام کے ساتھ ایک لغت واپس کرتا ہے، مثال کے طور پر:
{
"BTC_USDT.swap" : {...}, // The key value is the Market structure
"BTC_USDT.quarter" : {...},
"LTC_USDT.swap" : {...},
...
}
exchange.GetMarkets()
فنکشن لائیو ٹریڈنگ، بیک ٹیسٹنگ سسٹم کی حمایت کرتا ہے.exchange.GetMarkets()
فنکشن صرف ان اقسام کے لئے مارکیٹ کی معلومات واپس کرتا ہے جو ایکسچینج پر آن لائن تجارت کی جاتی ہیں.exchange.GetMarkets()
فنکشن اختیارات کے معاہدوں کی حمایت نہیں کرتا.تبادلے جو حمایت نہیں کرتےexchange.GetMarkets()
فنکشن:
فنکشن کا نام | غیر تعاون یافتہ اسپاٹ ایکسچینجز | غیر معاون فیوچر ایکسچینج |
---|---|---|
گیٹ مارکیٹس | Coincheck / Bithumb / BitFlyer | – |
{@struct/مارکیٹ مارکیٹ}
کےexchange.GetTickers()
تقریب تبادلہ مجموعی ٹکر ڈیٹا حاصل کرنے کے لئے استعمال کیا جاتا ہے ({@struct/Ticker Ticker} ساخت کی صف).exchange
تمام ٹریڈنگ جوڑوں کے لئے ٹکر ڈیٹا واپس کرتا ہے جب یہ ایک اسپاٹ ایکسچینج آبجیکٹ ہےexchange
تمام معاہدوں کے لئے ٹکر ڈیٹا واپس کرتا ہے جب یہ فیوچر ایکسچینج آبجیکٹ ہے۔
کےexchange.GetTickers()
فنکشن {@struct/Ticker Ticker} ڈھانچے کی ایک صف واپس کرتا ہے جب یہ ڈیٹا کی درخواست کرنے میں کامیاب ہوتا ہے ، اور جب یہ ناکام ہوجاتا ہے تو صفر ہوتا ہے۔
{@struct/Ticker Ticker} صفیں، خالی اقدار
تبادلہ.GetTickers()
function main() {
var tickers = exchange.GetTickers()
if (tickers && tickers.length > 0) {
Log("Number of tradable items on the exchange:", tickers.length)
}
}
def main():
tickers = exchange.GetTickers()
if tickers and len(tickers) > 0:
Log("Number of tradable items on the exchange:", len(tickers))
void main() {
auto tickers = exchange.GetTickers();
if (tickers.Valid && tickers.size() > 0) {
Log("Number of tradable items on the exchange:", tickers.size());
}
}
کال کریںexchange.GetTickers()
مجموعی مارکیٹ کے اعداد و شمار حاصل کرنے کے لئے کام.
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
function main() {
var arrSymbol = ["ADA_USDT", "LTC_USDT", "ETH_USDT", "SOL_USDT"]
// Before requesting other trading pair market data, call Get Tickers
var tickers1 = exchange.GetTickers()
var tbl1 = {type: "table", title: "tickers1", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
for (var ticker of tickers1) {
tbl1.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
}
// Request market data for other trading pairs
for (var symbol of arrSymbol) {
exchange.GetTicker(symbol)
}
// Call GetTickers again
var tickers2 = exchange.GetTickers()
var tbl2 = {type: "table", title: "tickers2", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
for (var ticker of tickers2) {
tbl2.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
}
LogStatus("`" + JSON.stringify([tbl1, tbl2]) + "`")
}
'''backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
'''
import json
def main():
arrSymbol = ["ADA_USDT", "LTC_USDT", "ETH_USDT", "SOL_USDT"]
tickers1 = exchange.GetTickers()
tbl1 = {"type": "table", "title": "tickers1", "cols": ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], "rows": []}
for ticker in tickers1:
tbl1["rows"].append([ticker["Symbol"], ticker["High"], ticker["Open"], ticker["Low"], ticker["Last"], ticker["Buy"], ticker["Sell"], ticker["Time"], ticker["Volume"]])
for symbol in arrSymbol:
exchange.GetTicker(symbol)
tickers2 = exchange.GetTickers()
tbl2 = {"type": "table", "title": "tickers2", "cols": ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], "rows": []}
for ticker in tickers2:
tbl2["rows"].append([ticker["Symbol"], ticker["High"], ticker["Open"], ticker["Low"], ticker["Last"], ticker["Buy"], ticker["Sell"], ticker["Time"], ticker["Volume"]])
LogStatus("`" + json.dumps([tbl1, tbl2]) + "`")
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
json tickerToJson(const Ticker& ticker) {
json arrJson;
arrJson.push_back(ticker.Symbol);
arrJson.push_back(ticker.High);
arrJson.push_back(ticker.Open);
arrJson.push_back(ticker.Low);
arrJson.push_back(ticker.Last);
arrJson.push_back(ticker.Buy);
arrJson.push_back(ticker.Sell);
arrJson.push_back(ticker.Time);
arrJson.push_back(ticker.Volume);
return arrJson;
}
void main() {
std::string arrSymbol[] = {"ADA_USDT", "LTC_USDT", "ETH_USDT", "SOL_USDT"};
auto tickers1 = exchange.GetTickers();
json tbl1 = R"({
"type": "table",
"cols": ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"],
"rows": []
})"_json;
tbl1["title"] = "tickers1";
for (const auto& ticker : tickers1) {
json arrJson = tickerToJson(ticker);
tbl1["rows"].push_back(arrJson);
}
for (const std::string& symbol : arrSymbol) {
exchange.GetTicker(symbol);
}
auto tickers2 = exchange.GetTickers();
json tbl2 = R"({
"type": "table",
"cols": ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"],
"rows": []
})"_json;
tbl2["title"] = "tickers2";
for (const auto& ticker : tickers2) {
json arrJson = tickerToJson(ticker);
tbl2["rows"].push_back(arrJson);
}
json tbls = R"([])"_json;
tbls.push_back(tbl1);
tbls.push_back(tbl2);
LogStatus("`" + tbls.dump() + "`");
}
اسپاٹ تبادلہ اعتراض کا استعمال کریں اور کال کریںexchange.GetTickers()
بیک ٹسٹ سسٹم میں فنکشن۔ کسی بھی مارکیٹ فنکشن کو کال کرنے سے پہلے ، گیٹ ٹکرز صرف موجودہ ڈیفالٹ ٹریڈنگ جوڑی کے ٹکر ڈیٹا کو لوٹاتا ہے۔ مارکیٹ فنکشن کو کال کرنے کے بعد ، یہ تمام مطلوبہ اقسام کے ٹکر ڈیٹا کو لوٹاتا ہے۔ آپ مندرجہ ذیل ٹیسٹ مثال کا حوالہ دے سکتے ہیں:
تبادلے جو حمایت نہیں کرتےexchange.GetTickers()
فنکشن:
فنکشن کا نام | غیر تعاون یافتہ اسپاٹ ایکسچینجز | غیر معاون فیوچر ایکسچینج |
---|---|---|
GetTickers | Zaif / WOO / Gemini / Coincheck / BitFlyer / Bibox | فیوچر_WOO / فیوچر_ڈی وائی ڈی ایکس / فیوچر_ڈریبیٹ / فیوچر_بی باکس / فیوچر_ایوو |
{@struct/TickerTicker}، {@fun/Market/exchange.GetTicker تبادلہ.GetTicker}
کےexchange.Buy()
فنکشن خریدنے کے احکامات رکھنے کے لئے استعمال کیا جاتا ہے.Buy()
تقریب تبادلہ اعتراض {@var/EXCHANGE تبادلہ} کا ایک رکن تقریب ہے.Buy()
فنکشن ایکسچینج آبجیکٹ سے منسلک ایکسچینج اکاؤنٹ پر کام کرتا ہےexchange
. رکن کے افعال (طرز) کا مقصدexchange
آبجیکٹ صرف سے متعلق ہےexchange
، اور یہ دستاویزات کے بعد دوبارہ نہیں کیا جائے گا.
ایک کامیاب آرڈر آرڈر ID واپس کرتا ہے، ایک ناکام آرڈر null قدر واپس کرتا ہے.
صفتId
ایف ایم زیڈ پلیٹ فارم کے آرڈر {@struct/Order Order} ڈھانچے میں ایکسچینج پروڈکٹ کوڈ اور ایکسچینج کی اصل آرڈر آئی ڈی شامل ہیں ، جن کو انگریزی کمانڈوں سے الگ کیا گیا ہے۔ مثال کے طور پر ، خاصیتId
اسپاٹ ٹریڈنگ جوڑی کی شکلETH_USDT
OKX تبادلہ کا حکم ہے:ETH-USDT,1547130415509278720
.
جب کال کریںexchange.Buy()
ایک آرڈر رکھنے کے لئے تقریب، واپسی کی قیمت آرڈرId
کے مطابق ہےId
حکم {@struct/Order Order} کی ساخت کی خصوصیت.
تار، صفر قدر
تبادلہ.خریداری ((قیمت،مقدار) تبادلہ.خریداری ((قیمت، رقم،...args)
کےprice
پیرامیٹر آرڈر کی قیمت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
قیمت
سچ
نمبر
کےamount
پیرامیٹر آرڈر کی رقم مقرر کرنے کے لئے استعمال کیا جاتا ہے.
رقم
سچ
نمبر
توسیع شدہ پیرامیٹرز جو اس آرڈر لاگ میں ساتھ والی معلومات کو آؤٹ پٹ کرسکتے ہیں ،arg
پیرامیٹرز ایک سے زیادہ منتقل کیا جا سکتا ہے.
ارگ
غلط
string، number، bool، object، array، null اور نظام کی طرف سے معاونت کی کسی بھی دوسری قسم
function main() {
var id = exchange.Buy(100, 1);
Log("id:", id);
}
def main():
id = exchange.Buy(100, 1)
Log("id:", id)
void main() {
auto id = exchange.Buy(100, 1);
Log("id:", id);
}
آرڈر نمبر کی طرف سے واپسexchange.Buy()
آرڈر کی معلومات کو تلاش کرنے اور آرڈر کو منسوخ کرنے کے لئے استعمال کیا جا سکتا ہے.
// The following is an error call
function main() {
exchange.SetContractType("quarter")
// Set the shorting direction
exchange.SetDirection("sell")
// If you place a buy order, an error will be reported, and shorting can only be sold
var id = exchange.Buy(50, 1)
// Set the long direction
exchange.SetDirection("buy")
// If you place a sell order, it will report an error, go long, only buy
var id2 = exchange.Sell(60, 1)
// Set direction to close long positions
exchange.SetDirection("closebuy")
// If you place a buy order, it will report an error, close long, only sell
var id3 = exchange.Buy(-1, 1)
// Set direction to close short positions
exchange.SetDirection("closesell")
// If you place a sell order, it will report an error, close short, only buy
var id4 = exchange.Sell(-1, 1)
}
# The following is an error call
def main():
exchange.SetContractType("quarter")
exchange.SetDirection("sell")
id = exchange.Buy(50, 1)
exchange.SetDirection("buy")
id2 = exchange.Sell(60, 1)
exchange.SetDirection("closebuy")
id3 = exchange.Buy(-1, 1)
exchange.SetDirection("closesell")
id4 = exchange.Sell(-1, 1)
// The following is an error call
void main() {
exchange.SetContractType("quarter");
exchange.SetDirection("sell");
auto id = exchange.Buy(50, 1);
exchange.SetDirection("buy");
auto id2 = exchange.Sell(60, 1);
exchange.SetDirection("closebuy");
auto id3 = exchange.Buy(-1, 1);
exchange.SetDirection("closesell");
auto id4 = exchange.Sell(-1, 1);
}
کریپٹوکرنسی فیوچر معاہدے کے لئے آرڈر دیتے وقت ، اس بات کو یقینی بنانے کے لئے محتاط رہنا ضروری ہے کہ تجارتی سمت صحیح طریقے سے طے کی گئی ہے ، کیونکہ تجارتی سمت اور تجارتی فنکشن کے مابین عدم مطابقت کا نتیجہ غلطی ہوگی:
direction is sell, invalid order type Buy
direction is buy, invalid order type Sell
direction is closebuy, invalid order type Buy
direction is closesell, invalid order type Sell
// For example, the trading pair: ETH_BTC, place a buy order at the market price
function main() {
// Place a buy order at the market price and buy ETH coins with a value of 0.1 BTC (denominated currency)
exchange.Buy(-1, 0.1)
}
def main():
exchange.Buy(-1, 0.1)
void main() {
exchange.Buy(-1, 0.1);
}
اسپاٹ مارکیٹ آرڈر۔
فیوچر معاہدے کے لئے آرڈر دیتے وقت ، آپ کو اس بات پر توجہ دینی ہوگی کہ آیا تجارتی سمت صحیح طریقے سے طے کی گئی ہے ، کیونکہ اگر تجارتی سمت اور تجارتی فنکشن مماثل نہیں ہیں تو غلطی کی اطلاع دی جائے گی۔ کریپٹوکرنسی فیوچر معاہدوں کے لئے آرڈر کا سائز معاہدوں کی تعداد ہے اگر مخصوص نہیں ہے۔
پیرامیٹرprice
پر مقرر کیا گیا ہے-1
مارکیٹ آرڈرز رکھنے کے لئے ، جس کے لئے ایکسچینج کے آرڈر پلیسمنٹ انٹرفیس کو مارکیٹ آرڈرز کی حمایت کرنے کی ضرورت ہوتی ہے۔ کریپٹوکرنسی اسپاٹ معاہدوں کے لئے مارکیٹ آرڈرز رکھنے پر ، پیرامیٹرamount
آرڈر کی کرنسی میں رقم کی رقم ہے۔ جب کریپٹوکرنسی فیوچر معاہدوں کے لئے مارکیٹ آرڈر دیتے ہیں تو ، رقم پیرامیٹرamount
معاہدوں کی تعداد ہے۔ کچھ کریپٹوکرنسی تبادلے ہیں جو براہ راست تجارت کے دوران مارکیٹ آرڈر انٹرفیس کی حمایت نہیں کرتے ہیں۔ کچھ اسپاٹ تبادلے پر مارکیٹ خرید آرڈرز کے لئے آرڈر کی مقدار تجارتی سککوں کی تعداد ہے۔ براہ کرم ملاحظہ کریںتبادلوں کے لئے خصوصی ہدایاتId
کےexchange.Buy()
فنکشن آرڈر کی واپسی کی قیمت سے مختلف ہو سکتا ہےId
موجودہ دستاویز میں بیان کیا.
{@fun/Trade/exchange.Sell exchange.Sell}، {@fun/Futures/exchange.SetContractType exchange.SetContractType}، {@fun/Futures/exchange.SetDirection exchange.SetDirection}، {@fun/Trade/exchange.Sell exchange.Sell}، {@fun/Futures/exchange.Sell exchange.Sell}، {@fun/Futures/exchange.SetContractType exchange.SetContractType}، {@fun/Futures/exchange.SetDirection exchange.SetDirection}، {@fun/Futures/exchange.SetDirection exchange.SetDirection}، {@fun/Trade/exchange.Sell exchange.Sell}، {@fun/Futures/Futures/exchange.Sell exchange.Sell}، {@fun/Futures/exchange.SetContractType exchange.SetContractType exchange.SetContractType}، {
کےexchange.Sell()
فروخت کے احکامات دینے کے لئے استعمال کیا جاتا ہے.
ایک کامیاب آرڈر آرڈر آئی ڈی واپس کرتا ہے، ایک ناکام آرڈر null قدر واپس کرتا ہے.Id
ایف ایم زیڈ پلیٹ فارم کے آرڈر {@struct/Order Order} ڈھانچے میں ایکسچینج پروڈکٹ کوڈ اور ایکسچینج کی اصل آرڈر آئی ڈی شامل ہیں ، جن کو انگریزی کمانڈوں سے الگ کیا گیا ہے۔ مثال کے طور پر ، خاصیتId
اسپاٹ ٹریڈنگ جوڑی کی شکلETH_USDT
OKX تبادلہ کا حکم ہے:ETH-USDT,1547130415509278720
.exchange.Sell()
ایک آرڈر رکھنے کے لئے تقریب، واپسی کی قیمت آرڈرId
کے مطابق ہےId
حکم {@struct/Order Order} کی ساخت کی خصوصیت.
تار، صفر قدر
تبادلہ.فروخت (قیمت، رقم) تبادلہ.فروخت ((قیمت، رقم،... args)
کےprice
پیرامیٹر آرڈر کی قیمت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
قیمت
سچ
نمبر
کےamount
پیرامیٹر آرڈر کی رقم مقرر کرنے کے لئے استعمال کیا جاتا ہے.
رقم
سچ
نمبر
توسیع شدہ پیرامیٹرز جو اس آرڈر لاگ میں ساتھ والی معلومات کو آؤٹ پٹ کرسکتے ہیں ،arg
پیرامیٹرز ایک سے زیادہ منتقل کیا جا سکتا ہے.
ارگ
غلط
string، number، bool، object، array، null اور نظام کی طرف سے معاونت کی کسی بھی دوسری قسم
function main(){
var id = exchange.Sell(100, 1)
Log("id:", id)
}
def main():
id = exchange.Sell(100, 1)
Log("id:", id)
void main() {
auto id = exchange.Sell(100, 1);
Log("id:", id);
}
آرڈر نمبر کی طرف سے واپسexchange.Sell()
آرڈر کی معلومات کو تلاش کرنے اور احکامات کو منسوخ کرنے کے لئے استعمال کیا جا سکتا ہے.
// The following is an error call
function main() {
exchange.SetContractType("quarter")
// Set the shorting direction
exchange.SetDirection("sell")
// If you place a buy order, an error will be reported, and shorting can only be sold
var id = exchange.Buy(50, 1)
// Set the long direction
exchange.SetDirection("buy")
// If you place a sell order, it will report an error, go long, only buy
var id2 = exchange.Sell(60, 1)
// Set direction to close long positions
exchange.SetDirection("closebuy")
// If you place a buy order, it will report an error, close long, only sell
var id3 = exchange.Buy(-1, 1)
// Set direction to close short positions
exchange.SetDirection("closesell")
// If you place a sell order, it will report an error, close short, only buy
var id4 = exchange.Sell(-1, 1)
}
# The following is an error call
def main():
exchange.SetContractType("quarter")
exchange.SetDirection("sell")
id = exchange.Buy(50, 1)
exchange.SetDirection("buy")
id2 = exchange.Sell(60, 1)
exchange.SetDirection("closebuy")
id3 = exchange.Buy(-1, 1)
exchange.SetDirection("closesell")
id4 = exchange.Sell(-1, 1)
// The following is an error call
void main() {
exchange.SetContractType("quarter");
exchange.SetDirection("sell");
auto id = exchange.Buy(50, 1);
exchange.SetDirection("buy");
auto id2 = exchange.Sell(60, 1);
exchange.SetDirection("closebuy");
auto id3 = exchange.Buy(-1, 1);
exchange.SetDirection("closesell");
auto id4 = exchange.Sell(-1, 1);
}
کریپٹوکرنسی فیوچر معاہدے کے لئے آرڈر دیتے وقت ، اس بات کو یقینی بنانے کے لئے محتاط رہنا ضروری ہے کہ تجارتی سمت صحیح طریقے سے طے کی گئی ہے ، کیونکہ تجارتی سمت اور تجارتی فنکشن کے مابین عدم مطابقت کا نتیجہ غلطی ہوگی:
direction is sell, invalid order type Buy
direction is buy, invalid order type Sell
direction is closebuy, invalid order type Buy
direction is closesell, invalid order type Sell
// For example, the trading pair: ETH_BTC, place a sell order at the market price
function main() {
// Note: place a market order to sell, sell 0.2 ETH
exchange.Sell(-1, 0.2)
}
def main():
exchange.Sell(-1, 0.2)
void main() {
exchange.Sell(-1, 0.2);
}
اسپاٹ مارکیٹ آرڈر۔
فیوچر معاہدے کے لئے آرڈر دیتے وقت ، آپ کو اس بات پر توجہ دینی ہوگی کہ آیا تجارتی سمت صحیح طریقے سے طے کی گئی ہے ، کیونکہ اگر تجارتی سمت اور تجارتی فنکشن مماثل نہیں ہیں تو غلطی کی اطلاع دی جائے گی۔ کریپٹوکرنسی فیوچر معاہدوں کے لئے آرڈر کی رقم معاہدوں کی تعداد ہے اگر مخصوص نہیں ہے۔
پیرامیٹرprice
پر مقرر کیا گیا ہے-1
مارکیٹ آرڈرز رکھنے کے لئے ، جس میں ایکسچینج کے آرڈر کی جگہ کے انٹرفیس کو مارکیٹ کے احکامات کی حمایت کرنے کی ضرورت ہوتی ہے۔ جب کریپٹوکرنسی اسپاٹ معاہدوں کے لئے مارکیٹ کے احکامات لگاتے ہیں تو ، رقم پیرامیٹرamount
ٹریڈنگ کرنسی میں رقم ہے. cryptocurrency فیوچر معاہدوں کے لئے مارکیٹ کے احکامات رکھنے جب, رقم پیرامیٹرamount
معاہدوں کی تعداد ہے۔ کچھ کریپٹوکرنسی تبادلے ہیں جو براہ راست تجارت کے دوران مارکیٹ آرڈر انٹرفیس کی حمایت نہیں کرتے ہیں۔
اگر آپ ڈوکر کا ایک پرانا ورژن استعمال کر رہے ہیں تو، حکم کی واپسی کی قیمتId
کےexchange.Sell()
فنکشن آرڈر کی واپسی کی قیمت سے مختلف ہو سکتا ہےId
موجودہ دستاویز میں بیان کیا.
{@fun/Trade/exchange.Buy exchange.Buy}، {@fun/Futures/exchange.SetContractType exchange.SetContractType}، {@fun/Futures/exchange.SetDirection exchange.SetDirection}
کےexchange.CreateOrder()
آرڈر دینے کے لئے استعمال کیا جاتا ہے.
اگر آرڈر کامیابی کے ساتھ رکھا جاتا ہے، آرڈر ID واپس کیا جاتا ہے؛ اگر آرڈر ناکام ہوجاتا ہے تو، ایک null قدر واپس کردی جاتی ہے.Id
ایف ایم زیڈ پلیٹ فارم کے آرڈر {@struct/Order Order} ڈھانچے میں ایکسچینج پروڈکٹ کوڈ اور ایکسچینج کی اصل آرڈر آئی ڈی شامل ہیں ، جن کو انگریزی کمانڈوں سے الگ کیا گیا ہے۔ مثال کے طور پر ، خاصیتId
اسپاٹ ٹریڈنگ جوڑی کے آرڈر کی شکلETH_USDT
او کے ایکس ایکس ایکسچینج کا ہے:ETH-USDT,1547130415509278720
.exchange.CreateOrder(symbol, side, price, amount)
ایک آرڈر رکھنے کے لئے تقریب، آرڈر کی واپسی کی قیمتId
کے مطابق ہےId
حکم {@struct/Order Order} ساخت کی خصوصیت.
تار، صفر قدر
exchange.CreateOrder ((علامت، طرف، قیمت، رقم) exchange.CreateOrder ((علامت، طرف، قیمت، رقم،...args)
پیرامیٹرsymbol
مخصوص ٹریڈنگ جوڑی اور آرڈر کے معاہدے کا کوڈ بتانے کے لئے استعمال کیا جاتا ہے۔exchange.CreateOrder(symbol, side, price, amount)
آرڈر دینے کا فنکشن،exchange
اسپاٹ ایکسچینج آبجیکٹ ہے۔ اگر آرڈر کی نامزد کرنسی USDT ہے اور ٹرانڈنگ کرنسی BTC ہے ، تو پیرامیٹرsymbol
ہے:"BTC_USDT"
، ایف ایم زیڈ پلیٹ فارم کے ذریعہ طے شدہ ٹریڈنگ جوڑی کی شکل میں۔exchange.CreateOrder(symbol, side, price, amount)
آرڈر دینے کا فنکشن،exchange
فیوچر ایکسچینج آبجیکٹ ہے۔ اگر آرڈر بی ٹی سی symbol
ہے:"BTC_USDT.swap"
، اور فارمیٹ کے ایک مجموعہ ہےتجارتی جوڑااورمعاہدہ کا کوڈFMZ پلیٹ فارم کی طرف سے مقرر کیا جاتا ہے، جس میں حروف exchange.CreateOrder(symbol, side, price, amount)
آرڈر دینے کا فنکشن،exchange
فیوچر ایکسچینج آبجیکٹ ہے۔ اگر آرڈر بی ٹی سی symbol
ہے:"BTC_USDT.BTC-240108-40000-C"
(ایک مثال کے طور پر بائننس آپشن بی ٹی سی-240108-40000-C لے کر) ، اور فارمیٹتجارتی جوڑاایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کردہ اور ایکسچینج کے ذریعہ بیان کردہ مخصوص آپشن معاہدے کا کوڈ ، جس کو علامت side
پیرامیٹر کا استعمال آرڈر کی ٹریڈنگ سمت کی وضاحت کرنے کے لئے کیا جاتا ہے۔
اسپاٹ ایکسچینج اشیاء کے لئے، اختیاری اقدارside
پیرامیٹر ہیں:buy
, sell
. buy
خریدنے کا مطلب ہے، اورsell
فروخت کا مطلب ہے.
فیوچر ایکسچینج اشیاء کے لئے، اختیاری اقدارside
پیرامیٹر ہیں:buy
, closebuy
, sell
, closesell
. buy
ایک طویل پوزیشن کھولنے کا مطلب ہے،closebuy
ایک طویل پوزیشن کو بند کرنے کا مطلب،sell
ایک مختصر پوزیشن کھولنے کا مطلب ہے، اورclosesell
ایک مختصر پوزیشن کو بند کرنے کا مطلب.
سائیڈ
سچ
سٹرنگ
پیرامیٹرprice
آرڈر کی قیمت مقرر کرنے کے لئے استعمال کیا جاتا ہے۔ -1 کی قیمت سے پتہ چلتا ہے کہ آرڈر مارکیٹ آرڈر ہے۔
قیمت
سچ
نمبر
پیرامیٹرamount
آرڈر کی مقدار مقرر کرنے کے لئے استعمال کیا جاتا ہے۔ براہ کرم نوٹ کریں کہ جب آرڈر مارکیٹ خرید آرڈر ہے تو ، آرڈر کی مقدار خریداری کی رقم ہے۔ کچھ اسپاٹ ایکسچینجز کے مارکیٹ خرید آرڈر کی آرڈر کی مقدار ٹریڈنگ سککوں کی تعداد ہے۔ تفصیلات کے لئے ، براہ کرم ملاحظہ کریںتبادلوں کے لئے خصوصی ہدایاتarg
پیرامیٹرز منتقل کیا جا سکتا ہے.
ارگ
غلط
نظام کی طرف سے حمایت کی کسی بھی قسم، جیسے تار، نمبر، بول، اعتراض، صف، صفر قدر، وغیرہ.
function main() {
var id = exchange.CreateOrder("BTC_USDT", "buy", 60000, 0.01) // Spot exchange objects place orders for currency-to-currency transactions BTC_USDT trading pairs
// var id = exchange.CreateOrder("BTC_USDT.swap", "buy", 60000, 0.01) // Futures exchange objects place orders for BTC's U-standard perpetual contracts
Log("Order Id:", id)
}
def main():
id = exchange.CreateOrder("BTC_USDT", "buy", 60000, 0.01) # Spot exchange objects place orders for currency-to-currency transactions BTC_USDT trading pairs
# id = exchange.CreateOrder("BTC_USDT.swap", "buy", 60000, 0.01) # Futures exchange objects place orders for BTC's U-standard perpetual contracts
Log("Order Id:", id)
void main() {
auto id = exchange.CreateOrder("BTC_USDT", "buy", 60000, 0.01); // Spot exchange objects place orders for currency-to-currency transactions BTC_USDT trading pairs
// auto id = exchange.CreateOrder("BTC_USDT.swap", "buy", 60000, 0.01); // Futures exchange objects place orders for BTC's U-standard perpetual contracts
Log("Order Id:", id);
}
اسپاٹ ایکسچینج اشیاء اور فیوچر ایکسچینج اشیاء کوexchange.CreateOrder()
آرڈر دینے کی تقریب.
{@fun/Trade/exchange.Buy exchange.Buy}، {@fun/Trade/exchange.Sell exchange.Sell}
کےexchange.CancelOrder()
آرڈر منسوخ کرنے کے لئے استعمال کیا جاتا ہے.
صفتId
ایف ایم زیڈ پلیٹ فارم کے آرڈر {@struct/Order Order} ڈھانچے میں ایکسچینج پروڈکٹ کوڈ اور ایکسچینج کی اصل آرڈر آئی ڈی شامل ہیں ، جن کو انگریزی کمانڈوں سے الگ کیا گیا ہے۔ مثال کے طور پر ، خاصیتId
اسپاٹ ٹریڈنگ جوڑی کے آرڈر کی شکلETH_USDT
او کے ایکس ایکس ایکسچینج کا ہے:ETH-USDT,1547130415509278720
.
پیرامیٹرorderId
میں منتقل کر دیا جب فونexchange.CancelOrder()
ایک آرڈر منسوخ کرنے کی تقریب کے ساتھ ہم آہنگ ہےId
حکم {@struct/Order Order} ساخت کی خصوصیت.
کےexchange.CancelOrder()
تقریب ایک حقیقی قدر واپس، مثال کے طور پرtrue
کا مطلب ہے کہ منسوخ آرڈر کی درخواست کامیابی کے ساتھ بھیجا گیا ہے. اگر یہ ایک غلط قدر واپس کرتا ہے, جیسےfalse
، کا مطلب ہے کہ منسوخ آرڈر کی درخواست بھیجنے میں ناکام رہی۔ واپسی کی قیمت صرف اس بات کا تعین کرنے کے لئے کہ آیا تبادلے نے آرڈر منسوخ کیا ہے یا نہیں بھیجنے کی درخواست کی کامیابی یا ناکامی کی نمائندگی کرتی ہے۔ آپ کال کرسکتے ہیںexchange.GetOrders()
اس بات کا تعین کرنے کے لئے کہ آیا آرڈر منسوخ کیا گیا ہے۔
بول
تبادلہ.آرڈر منسوخ کریں (آرڈر ID) تبادلہ.آرڈر منسوخ کریں (آرڈر ID،...args)
کےorderId
پیرامیٹر کو منسوخ کرنے کے لئے آرڈر کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
حکم دیا
سچ
نمبر، سٹرنگ
توسیع پیرامیٹرز، آپ کو اس واپسی لاگ میں منسلک معلومات کو آؤٹ پٹ کر سکتے ہیں،arg
پیرامیٹرز ایک سے زیادہ منتقل کیا جا سکتا ہے.
ارگ
غلط
string، number، bool، object، array، null اور نظام کی طرف سے معاونت کی کسی بھی دوسری قسم
function main(){
var id = exchange.Sell(99999, 1)
exchange.CancelOrder(id)
}
def main():
id = exchange.Sell(99999, 1)
exchange.CancelOrder(id)
void main() {
auto id = exchange.Sell(99999, 1);
exchange.CancelOrder(id);
}
حکم منسوخ کریں.
function main() {
if (exchange.GetName().includes("Futures_")) {
Log("Set the contract as: perpetual contract, set the trade direction as: open long position.")
exchange.SetContractType("swap")
exchange.SetDirection("buy")
}
var ticker = exchange.GetTicker()
exchange.Buy(ticker.Last * 0.5, 0.1)
var orders = exchange.GetOrders()
for (var i = 0 ; i < orders.length ; i++) {
exchange.CancelOrder(orders[i].Id, "Cancelled orders:", orders[i])
Sleep(500)
}
}
def main():
if exchange.GetName().find("Futures_") != -1:
Log("Set the contract as: perpetual contract, set the trade direction as: open long position.")
exchange.SetContractType("swap")
exchange.SetDirection("buy")
ticker = exchange.GetTicker()
exchange.Buy(ticker["Last"] * 0.5, 0.1)
orders = exchange.GetOrders()
for i in range(len(orders)):
exchange.CancelOrder(orders[i]["Id"], "Cancelled orders:", orders[i])
Sleep(500)
void main() {
if (exchange.GetName().find("Futures_") != std::string::npos) {
Log("Set the contract as: perpetual contract, set the trade direction as: open long position.");
exchange.SetContractType("swap");
exchange.SetDirection("buy");
}
auto ticker = exchange.GetTicker();
exchange.Buy(ticker.Last * 0.5, 0.1);
auto orders = exchange.GetOrders();
for (int i = 0 ; i < orders.size() ; i++) {
exchange.CancelOrder(orders[i].Id, "Cancelled orders:", orders[i]);
Sleep(500);
}
}
FMZ API افعال جو لاگ آؤٹ پٹ افعال جیسے:Log()
, exchange.Buy()
, exchange.CancelOrder()
ضروری پیرامیٹرز کے بعد کچھ معاون آؤٹ پٹ پیرامیٹرز کے بعد ہوسکتا ہے۔ مثال کے طور پر:exchange.CancelOrder(orders[i].Id, orders[i])
، تاکہ آرڈر منسوخ کرتے وقت جس کا ID ہےorders[i].Id
، آرڈر کی معلومات اس کے ساتھ آؤٹ پٹ ہوتی ہے۔ یعنی ، {@struct/Order Order} کی ساختorders[i]
.
آپ docker کے ایک پرانے ورژن استعمال کر رہے ہیں تو، exchange.CancelOrder() تقریب کے orderId پیرامیٹر موجودہ دستاویز میں بیان orderId سے مختلف ہو سکتا ہے.
{@fun/Trade/exchange.Buy exchange.Buy}، {@fun/Trade/exchange.Sell exchange.Sell}، {@fun/Trade/exchange.GetOrders exchange.GetOrders}
کےexchange.GetOrder()
آرڈر کی معلومات حاصل کرنے کے لئے استعمال کیا جاتا ہے.
آرڈر نمبر کے مطابق آرڈر کی تفصیلات کی انکوائری کریں ، اور اگر انکوائری کامیاب ہوجاتی ہے تو {@struct/Order Order} ڈھانچہ واپس کریں ، یا اگر انکوائری ناکام ہوجاتی ہے تو null واپس کریں۔ {@struct/Order Order}، null قدر
تبادلہ.GetOrder ((orderId)
کےorderId
پیرامیٹر استعمال کیا جاتا ہے ترتیب کی وضاحت کرنے کے لئے استفسار کیا جائے.
صفتId
ایف ایم زیڈ پلیٹ فارم کے آرڈر {@struct/Order Order} ڈھانچے میں ایکسچینج پروڈکٹ کوڈ اور ایکسچینج کی اصل آرڈر آئی ڈی شامل ہیں ، جن کو انگریزی کمانڈوں سے الگ کیا گیا ہے۔ مثال کے طور پر ، خاصیتId
اسپاٹ ٹریڈنگ جوڑی کے آرڈر کی شکلETH_USDT
او کے ایکس ایکس ایکسچینج کا ہے:ETH-USDT,1547130415509278720
.
پیرامیٹرorderId
میں منتقل کر دیا جب فونexchange.GetOrder()
ایک آرڈر کو استفسار کرنے کی تقریب کے ساتھ ہم آہنگ ہےId
حکم {@struct/Order Order} ساخت کی خصوصیت.
حکم دیا سچ سٹرنگ
function main(){
var id = exchange.Sell(1000, 1)
// Parameter id is the order number, you need to fill in the number of the order you want to query
var order = exchange.GetOrder(id)
Log("Id:", order.Id, "Price:", order.Price, "Amount:", order.Amount, "DealAmount:",
order.DealAmount, "Status:", order.Status, "Type:", order.Type)
}
def main():
id = exchange.Sell(1000, 1)
order = exchange.GetOrder(id)
Log("Id:", order["Id"], "Price:", order["Price"], "Amount:", order["Amount"], "DealAmount:",
order["DealAmount"], "Status:", order["Status"], "Type:", order["Type"])
void main() {
auto id = exchange.Sell(1000, 1);
auto order = exchange.GetOrder(id);
Log("Id:", order.Id, "Price:", order.Price, "Amount:", order.Amount, "DealAmount:",
order.DealAmount, "Status:", order.Status, "Type:", order.Type);
}
کےexchange.GetOrder()
فنکشن کچھ تبادلے کی طرف سے حمایت نہیں کی جاتی.AvgPrice
{@struct/Order Order} ڈھانچے کی واپسی کی قیمت میں خاصیت ٹرانزیکشن کی اوسط قیمت ہے۔ کچھ تبادلے اس فیلڈ کی حمایت نہیں کرتے ہیں ، اور اگر وہ نہیں کرتے ہیں تو ، یہ 0 پر مقرر کیا جاتا ہے۔
اگر آپ ڈوکر کا پرانا ورژن استعمال کر رہے ہیں تو،orderId
پیرامیٹرexchange.GetOrder()
تقریب سے مختلف ہو سکتا ہےorderId
موجودہ دستاویزات میں بیان کیا گیا ہے.
تبادلے جو حمایت نہیں کرتےexchange.GetOrder()
فنکشن:
فنکشن کا نام | غیر تعاون یافتہ اسپاٹ ایکسچینجز | غیر معاون فیوچر ایکسچینج |
---|---|---|
آرڈر حاصل کریں | Zaif / Coincheck / Bitstamp | – |
{@struct/Order Order}، {@fun/Trade/exchange.GetOrders exchange.GetOrders}، {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}، {@struct/Trade/Order Order}، {@fun/Trade/exchange.GetOrders exchange.GetHistoryOrders}، {@fun/Trade/Orders exchange.GetOrders}، {@fun/Trade/exchange.GetHistoryOrders}، {@fun/Trade/exchange.GetHistoryOrders}، {@fun/Trade/exchange.GetHistoryOrders}، {@fun/Trade/exchange.GetOrders exchange.GetOrders}، {@fun/Trade/exchange.GetOrders exchange.GetOrders}، {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}، {@fun/Trade/exchange.GetOrders exchange.GetOrders exchange.GetOrders}، {@fun/
کےexchange.GetOrders()
فنکشن کے بقایا احکامات حاصل کرنے کے لئے استعمال کیا جاتا ہے.
کےexchange.GetOrders()
فنکشن {@struct/Order Order} ڈھانچوں کی ایک صف واپس کرتا ہے اگر ڈیٹا کی درخواست کامیاب ہو جاتی ہے ، اور اگر ڈیٹا کی درخواست ناکام ہوجاتی ہے تو یہ null اقدار واپس کرتا ہے۔
{@struct/Order Order} صف، خالی قدر
تبادلہ.GetOrders() تبادلہ.GetOrders ((علامت)
پیرامیٹرsymbol
سیٹ کرنے کے لئے استعمال کیا جاتا ہےٹرانزیکشن کا نشانیاٹرانزیکشن سمبل رینجپوچھ گچھ کی جائے۔
اسپاٹ ایکسچینج اشیاء کے لئے، اگرsymbol
پیرامیٹر منظور نہیں کیا جاتا ہے، تمام اسپاٹ مصنوعات کے نامکمل آرڈر کے اعداد و شمار کی درخواست کی جائے گی.
فیوچر ایکسچینج اشیاء کے لئے، اگرsymbol
پیرامیٹر پاس نہیں کیا جاتا ہے تو، ڈیفالٹ موجودہ ٹریڈنگ جوڑی اور معاہدے کے کوڈ کے طول و عرض کی حد میں تمام اقسام کے نامکمل آرڈر کے اعداد و شمار کی درخواست کرنا ہے.
علامت غلط سٹرنگ
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
function main() {
var arrSymbol = ["ETH_USDT", "BTC_USDT", "LTC_USDT", "SOL_USDT"]
for (var symbol of arrSymbol) {
var t = exchange.GetTicker(symbol)
exchange.CreateOrder(symbol, "buy", t.Last / 2, 0.01)
}
var spotOrders = exchange.GetOrders()
var tbls = []
for (var orders of [spotOrders]) {
var tbl = {type: "table", title: "test GetOrders", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
for (var order of orders) {
tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
}
tbls.push(tbl)
}
LogStatus("`" + JSON.stringify(tbls) + "`")
// Print out the information once and then return to prevent the order from being executed during the subsequent backtest and affecting data observation
return
}
'''backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
'''
import json
def main():
arrSymbol = ["ETH_USDT", "BTC_USDT", "LTC_USDT", "SOL_USDT"]
for symbol in arrSymbol:
t = exchange.GetTicker(symbol)
exchange.CreateOrder(symbol, "buy", t["Last"] / 2, 0.01)
spotOrders = exchange.GetOrders()
tbls = []
for orders in [spotOrders]:
tbl = {"type": "table", "title": "test GetOrders", "cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], "rows": []}
for order in orders:
tbl["rows"].append([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
tbls.append(tbl)
LogStatus("`" + json.dumps(tbls) + "`")
return
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
void main() {
auto arrSymbol = {"ETH_USDT", "BTC_USDT", "LTC_USDT", "SOL_USDT"};
for (const auto& symbol : arrSymbol) {
auto t = exchange.GetTicker(symbol);
exchange.CreateOrder(symbol, "buy", t.Last / 2, 0.01);
}
auto spotOrders = exchange.GetOrders();
json tbls = R"([])"_json;
std::vector<std::vector<Order>> arr = {spotOrders};
for (const auto& orders : arr) {
json tbl = R"({
"type": "table",
"title": "test GetOrders",
"cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"],
"rows": []
})"_json;
for (const auto& order : orders) {
json arrJson = R"([])"_json;
arrJson.push_back("Symbol");
arrJson.push_back("Id");
arrJson.push_back(order.Price);
arrJson.push_back(order.Amount);
arrJson.push_back(order.DealAmount);
arrJson.push_back(order.AvgPrice);
arrJson.push_back(order.Status);
arrJson.push_back(order.Type);
arrJson.push_back(order.Offset);
arrJson.push_back(order.ContractType);
tbl["rows"].push_back(arrJson);
}
tbls.push_back(tbl);
}
LogStatus(_D(), "\n", "`" + tbls.dump() + "`");
return;
}
اسپاٹ ایکسچینج آبجیکٹ کا استعمال کرتے ہوئے موجودہ قیمت کے آدھے حصے پر متعدد مختلف تجارتی جوڑوں کے لئے خرید آرڈرز لگائیں اور پھر بقایا آرڈر کی معلومات سے استفسار کریں۔
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
function main() {
var arrSymbol = ["BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]
for (var symbol of arrSymbol) {
var t = exchange.GetTicker(symbol)
exchange.CreateOrder(symbol, "buy", t.Last / 2, 1)
exchange.CreateOrder(symbol, "sell", t.Last * 2, 1)
}
var defaultOrders = exchange.GetOrders()
var swapOrders = exchange.GetOrders("USDT.swap")
var futuresOrders = exchange.GetOrders("USDT.futures")
var btcUsdtSwapOrders = exchange.GetOrders("BTC_USDT.swap")
var tbls = []
var arr = [defaultOrders, swapOrders, futuresOrders, btcUsdtSwapOrders]
var tblDesc = ["defaultOrders", "swapOrders", "futuresOrders", "btcUsdtSwapOrders"]
for (var index in arr) {
var orders = arr[index]
var tbl = {type: "table", title: tblDesc[index], cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
for (var order of orders) {
tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
}
tbls.push(tbl)
}
LogStatus("`" + JSON.stringify(tbls) + "`")
// Print out the information once and then return to prevent the order from being executed during the subsequent backtest and affecting data observation
return
}
'''backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
'''
import json
def main():
arrSymbol = ["BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]
for symbol in arrSymbol:
t = exchange.GetTicker(symbol)
exchange.CreateOrder(symbol, "buy", t["Last"] / 2, 1)
exchange.CreateOrder(symbol, "sell", t["Last"] * 2, 1)
defaultOrders = exchange.GetOrders()
swapOrders = exchange.GetOrders("USDT.swap")
futuresOrders = exchange.GetOrders("USDT.futures")
btcUsdtSwapOrders = exchange.GetOrders("BTC_USDT.swap")
tbls = []
arr = [defaultOrders, swapOrders, futuresOrders, btcUsdtSwapOrders]
tblDesc = ["defaultOrders", "swapOrders", "futuresOrders", "btcUsdtSwapOrders"]
for index in range(len(arr)):
orders = arr[index]
tbl = {"type": "table", "title": tblDesc[index], "cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], "rows": []}
for order in orders:
tbl["rows"].append([order["Symbol"], order["Id"], order["Price"], order["Amount"], order["DealAmount"], order["AvgPrice"], order["Status"], order["Type"], order["Offset"], order["ContractType"]])
tbls.append(tbl)
LogStatus("`" + json.dumps(tbls) + "`")
return
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
void main() {
auto arrSymbol = {"BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"};
for (const auto& symbol : arrSymbol) {
auto t = exchange.GetTicker(symbol);
exchange.CreateOrder(symbol, "buy", t.Last / 2, 1);
exchange.CreateOrder(symbol, "sell", t.Last * 2, 1);
}
auto defaultOrders = exchange.GetOrders();
auto swapOrders = exchange.GetOrders("USDT.swap");
auto futuresOrders = exchange.GetOrders("USDT.futures");
auto btcUsdtSwapOrders = exchange.GetOrders("BTC_USDT.swap");
json tbls = R"([])"_json;
std::vector<std::vector<Order>> arr = {defaultOrders, swapOrders, futuresOrders, btcUsdtSwapOrders};
std::string tblDesc[] = {"defaultOrders", "swapOrders", "futuresOrders", "btcUsdtSwapOrders"};
for (int index = 0; index < arr.size(); index++) {
auto orders = arr[index];
json tbl = R"({
"type": "table",
"cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"],
"rows": []
})"_json;
tbl["title"] = tblDesc[index];
for (const auto& order : orders) {
json arrJson = R"([])"_json;
arrJson.push_back(order.Symbol);
arrJson.push_back(to_string(order.Id)); // The Id attribute type in the Order structure is TId, which is encoded using a C++ function to_string built into the FMZ platform.
arrJson.push_back(order.Price);
arrJson.push_back(order.Amount);
arrJson.push_back(order.DealAmount);
arrJson.push_back(order.AvgPrice);
arrJson.push_back(order.Status);
arrJson.push_back(order.Type);
arrJson.push_back(order.Offset);
arrJson.push_back(order.ContractType);
tbl["rows"].push_back(arrJson);
}
tbls.push_back(tbl);
}
LogStatus(_D(), "\n", "`" + tbls.dump() + "`");
return;
}
متعدد مختلف تجارتی جوڑوں اور معاہدے کے کوڈوں کے لئے آرڈر دینے کے لئے فیوچر ایکسچینج اشیاء کا استعمال کریں۔ قیمتوں پر آرڈر دیں جو ہم منصب کی قیمت سے دور ہیں ، احکامات کو غیر پورا حالت میں رکھیں ، اور متعدد طریقوں سے آرڈر کی انکوائری کریں۔
function main() {
var orders = exchange.GetOrders("BTC_USDT") // Examples of spot products
// var orders = exchange.GetOrders("BTC_USDT.swap") // Examples of futures products
Log("orders:", orders)
}
def main():
orders = exchange.GetOrders("BTC_USDT") # Examples of spot products
# orders = exchange.GetOrders("BTC_USDT.swap") # Examples of futures products
Log("orders:", orders)
void main() {
auto orders = exchange.GetOrders("BTC_USDT"); // Examples of spot products
// auto orders = exchange.GetOrders("BTC_USDT.swap"); // Examples of futures products
Log("orders:", orders);
}
جب کال کریںexchange.GetOrders()
فنکشن، میں منتقلSymbol
ایک مخصوص ٹریڈنگ جوڑی اور معاہدے کا کوڈ کے لئے آرڈر کے اعداد و شمار کی درخواست کرنے کے لئے پیرامیٹر.
میںGetOrders
تقریب، علامت پیرامیٹر کے استعمال کے منظرنامے مندرجہ ذیل طور پر خلاصہ کیا جاتا ہے:
ایکسچینج آبجیکٹ کی درجہ بندی | علامت پیرامیٹرز | سوال کا دائرہ کار | تبصرہ |
---|---|---|---|
جگہ | علامت پیرامیٹر منتقل نہ کریں | تمام اسپاٹ ٹریڈنگ کے جوڑے کی تلاش کریں | تمام کالنگ منظرناموں کے لئے ، اگر ایکسچینج انٹرفیس اس کی حمایت نہیں کرتا ہے تو ، ایک غلطی کی اطلاع دی جائے گی اور ایک صفر قدر واپس کردی جائے گی۔ مزید وضاحت نہیں کی جائے گی۔ |
جگہ | تجارت کی قسم بتائیں، علامت پیرامیٹر ہے: |
مخصوص BTC_USDT ٹریڈنگ جوڑی سے استفسار کریں | اسپاٹ ایکسچینج اشیاء کے لئے علامت پیرامیٹر فارمیٹ ہے: |
مستقبل | علامت پیرامیٹر منتقل نہ کریں | موجودہ ٹریڈنگ جوڑی اور معاہدے کے کوڈ کے طول و عرض کی حد کے اندر تمام ٹریڈنگ پروڈکٹس کی تلاش کریں | اگر موجودہ ٹریڈنگ جوڑی BTC_USDT ہے اور معاہدہ کا کوڈ سویپ ہے تو ، تمام USDT مارجن والے دائمی معاہدوں سے استفسار کیا جائے گا۔ یہ کال کرنے کے برابر ہے۔GetOrders("USDT.swap") |
مستقبل | تجارت کی قسم بتائیں، علامت پیرامیٹر ہے: |
ایک مخصوص بی ٹی سی کے لئے یو ایس ڈی ٹی پر مبنی مستقل معاہدے کی تلاش کریں | فیوچر ایکسچینج اشیاء کے لئے پیرامیٹر علامت کی شکل یہ ہے:تجارتی جوڑااورمعاہدہ کا کوڈایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کیا گیا ہے ، جس میں حروف کے ذریعہ الگ کیا گیا ہے". . |
مستقبل | تجارتی مصنوعات کی حد کی وضاحت کریں، علامت پیرامیٹر ہے: |
تمام USDT پر مبنی مستقل معاہدوں کی تلاش کریں | - |
فیوچر ایکسچینجز جو آپشنز کی حمایت کرتے ہیں | علامت پیرامیٹر منتقل نہ کریں | موجودہ ٹریڈنگ جوڑی کے طول و عرض کی حد کے اندر تمام آپشن معاہدوں کی تلاش کریں | اگر موجودہ ٹریڈنگ جوڑی BTC_USDT ہے، تو معاہدہ ایک آپشن معاہدے پر مقرر کیا جاتا ہے، مثال کے طور پر، بائننس آپشن معاہدہ: BTC-240108-40000-C |
فیوچر ایکسچینجز جو آپشنز کی حمایت کرتے ہیں | مخصوص تجارتی مصنوعات کی وضاحت کریں | مخصوص آپشن معاہدے کی تلاش کریں | مثال کے طور پر بائننس فیوچر ایکسچینج کے لئے، علامت پیرامیٹر ہے: BTC_USDT.BTC-240108-40000-C |
فیوچر ایکسچینجز جو آپشنز کی حمایت کرتے ہیں | تجارتی مصنوعات کی حد کی وضاحت کریں، علامت پیرامیٹر ہے: |
تمام USDT پر مبنی آپشن معاہدوں کی تلاش کریں | - |
میںGetOrders
تقریب، مستقبل کے تبادلے اعتراض استفسار
طول و عرض کی حد مندرجہ ذیل طور پر خلاصہ کیا جاتا ہے:
علامت پیرامیٹرز | درخواست کی حد کی تعریف | تبصرہ |
---|---|---|
USDT.swap | USDT پر مبنی مستقل معاہدے کی حد۔ | کے لئے |
طول و عرض جو تبادلہ API انٹرفیس کی طرف سے حمایت نہیں کر رہے ہیں ایک غلطی کی اطلاع دی جائے گی اور ایک null قدر واپس کیا جائے گا جب بلا رہا ہے۔ ♫ USDT.futures ♫ ♫ USDT پر مبنی ترسیل کے معاہدے کی حد ♫ ♫ USD.swap ♫ ♫ کرنسی پر مبنی دائمی تبادلہ کی حد ♫ معاہدوں. ♫ USD.futures ♫ ♫ کرنسی پر مبنی ترسیل کی حد ♫ معاہدوں. ♫ USDT.option ♫ ♫ USDT پر مبنی اختیارات معاہدہ رینج ♫ ♫ USDT.option ♫ ♫ USD.option ♫ ♫ کرنسی پر مبنی اختیارات معاہدہ رینج ♫ ♫ - ♫ ♫ USDT.futures_combo♫ ♫ سی ایف ڈی کے مجموعوں کی حد ♫ فیوچر_ڈیبیٹ ایکسچینج۔ ♫ USD.futures_ff ♫ ♫ مخلوط مارجن کی ترسیل کے معاہدوں کی ایک حد ♫ مستقبل_کراکن ایکسچینج۔ ♫ USD.swap_pf♫ ♫ مخلوط مارجن دائمی معاہدوں کی ایک رینج ♫ ∙ ∙ مستقبل_کراکن ایکسچینج ∙
جب تبادلہ اعتراض کی طرف سے نمائندگی اکاؤنٹexchange
کے اندر کوئی زیر التواء احکامات نہیں ہیںسوال کی حدیامخصوص تجارتی آلات(ایکٹو احکامات ایک غیر پورا حالت میں) ، اس فنکشن کو کال کرنے سے ایک خالی صف واپس آتی ہے ، یعنی:[]
.
مندرجہ ذیل تبادلے کے لئے مطلوبہ آلہ کو اس وقت غیر مکمل شدہ آرڈرز کی استفسار کرتے وقت آلہ پیرامیٹر میں منتقل کرنا ضروری ہے۔ ان تبادلے کے ساتھ گیٹ آرڈرز فنکشن کو کال کرتے وقت ، اگر آلہ پیرامیٹر نہیں دیا جاتا ہے تو ، صرف موجودہ آلہ کے غیر مکمل شدہ آرڈرز کی درخواست کی جاتی ہے ، نہ کہ تمام آلات کے غیر مکمل احکامات (کیونکہ تبادلے کا انٹرفیس اس کی حمایت نہیں کرتا ہے) ۔
زائف، میکس سی، ایل بینک، کوربٹ، کوئن، بٹ مارٹ، بٹھمب، بٹ فلائر، بگون۔
تبادلے جو حمایت نہیں کرتےexchange.GetOrders()
فنکشن:
فنکشن کا نام | غیر تعاون یافتہ اسپاٹ ایکسچینجز | غیر معاون فیوچر ایکسچینج |
---|---|---|
حاصل احکامات | – | فیوچر_بی باکس |
{@struct/Order Order}، {@fun/Trade/exchange.GetOrder exchange.GetOrder}، {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}، {@struct/Trade/Order Order}، {@fun/Trade/exchange.GetOrder exchange.GetOrder}، {@fun/Trade/exchange.GetHistoryOrders}، {@fun/Trade/exchange.GetHistoryOrders}، {@fun/Trade/exchange.GetOrder exchange.GetOrder}، {@fun/Trade/exchange.GetHistoryOrders}، {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}، {@fun/Trade/exchange.GetOrder exchange.GetOrder.GetOrder}، {@fun/Trade/exchange.GetHistoryOrders}، {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}،
کےexchange.GetHistoryOrders()
موجودہ ٹریڈنگ جوڑی، معاہدوں کے لئے تاریخی احکامات حاصل کرنے کے لئے استعمال کیا جاتا ہے؛ یہ مخصوص ٹریڈنگ کی اقسام کی وضاحت کی حمایت کرتا ہے.
کےexchange.GetHistoryOrders()
فنکشن {@struct/Order Order} ڈھانچے کی ایک صف واپس کرتا ہے اگر ڈیٹا کی درخواست کامیاب ہو جائے، اور اگر درخواست ناکام ہو تو null.
{@struct/Order Order} صفیں، خالی اقدار
تبادلہ.GetHistoryOrders() تبادلہ.GetHistoryOrders (علامت) تبادلہ.GetHistoryOrders ((علامت، چونکہ) exchange.GetHistoryOrders ((علامت، چونکہ، حد) تبادلہ.GetHistoryOrders ((سے) تبادلہ.GetHistoryOrders ((چونکہ، حد)
کےsymbol
پیرامیٹر تجارتی علامت کی وضاحت کے لئے استعمال کیا جاتا ہے.BTC_USDT
ٹریڈنگ جوڑی، مثال کے طور پر، جبexchange
ایک اسپاٹ ایکسچینج آبجیکٹ ہے، کے لئے پیرامیٹر فارمیٹsymbol
ہےBTC_USDT
؛ اگر یہ ایک فیوچر ایکسچینج آبجیکٹ ہے ، مثال کے طور پر دائمی معاہدہ لیتے ہوئے ، پیرامیٹر فارمیٹ کے لئےsymbol
ہے:BTC_USDT.swap
.
اگر آپ اختیارات کے معاہدوں کے آرڈر کے اعداد و شمار کی پوچھ گچھ کر رہے ہیں، پیرامیٹر مقرر کریںsymbol
کرنے کے لئے"BTC_USDT.BTC-240108-40000-C"
(مثال کے طور پر بائننس آپشن بی ٹی سی-240108-40000-C کو لے کر)تجارتی جوڑاایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کردہ اور ایکسچینج کے ذریعہ بیان کردہ مخصوص آپشن معاہدے کا کوڈ ، جس کو علامت
علامت
غلط
سٹرنگ
کےsince
پیرامیٹر استعمال کیا جاتا ہے ملی سیکنڈ میں استفسار کے آغاز کے ٹائم اسٹیمپ کی وضاحت کرنے کے لئے.
کے بعد سے
غلط
نمبر
کےlimit
پیرامیٹر کی درخواست کرنے کے احکامات کی تعداد کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
حد
غلط
نمبر
function main() {
var historyOrders = exchange.GetHistoryOrders()
Log(historyOrders)
}
def main():
historyOrders = exchange.GetHistoryOrders()
Log(historyOrders)
void main() {
auto historyOrders = exchange.GetHistoryOrders();
Log(historyOrders);
}
symbol
, since
, limit
پیرامیٹرز کی وضاحت نہیں کی گئی ہے ، ڈیفالٹ انکوائری موجودہ تجارتی جوڑی ، معاہدے کے تاریخی احکامات ہے۔ موجودہ وقت کے قریب ایک خاص حد کے اندر تاریخی احکامات کی انکوائری کرتا ہے ، انکوائری کی حد ایکسچینج انٹرفیس کی واحد انکوائری کی حد پر منحصر ہے۔symbol
پیرامیٹر کی وضاحت کی گئی ہے تو، مقررہ تجارت کی قسم کے لئے احکامات کی تاریخ کو تلاش کریں.since
پیرامیٹر کی وضاحت کی جاتی ہے، موجودہ وقت کی سمت میں استفسارsince
وقت کے طور پر شروع ہونے کا وقت.limit
پیرامیٹر کی وضاحت کی جاتی ہے، تو کافی تعداد میں اندراجات کے بعد استفسار واپس آ جاتا ہے.تبادلے جو حمایت نہیں کرتےexchange.GetHistoryOrders()
فنکشن:
فنکشن کا نام | غیر تعاون یافتہ اسپاٹ ایکسچینجز | غیر معاون فیوچر ایکسچینج |
---|---|---|
حاصل کریںHistoryOrders | Zaif / Upbit / Coincheck / Bitstamp / Bithumb / BitFlyer / BigONE | Futures_dYdX / Futures_Bibox / Futures_ApolloX |
{@struct/Order Order}، {@fun/Trade/exchange.GetOrder exchange.GetOrder}، {@fun/Trade/exchange.GetOrders exchange.GetOrders}، {@struct/Trade/Order Order}، {@fun/Trade/Exchange.GetOrders exchange.GetOrders}، {@fun/Trade/Exchange.GetOrders exchange.GetOrders}، {@fun/Trade/Exchange.GetOrders exchange.GetOrders}، {@fun/Trade/Exchange.GetOrders exchange.GetOrders}، {@fun/Trade/Exchange.GetOrders exchange.GetOrders}، {@fun/Trade/Exchange.GetOrders exchange.GetOrders}، {@fun/Trade/Exchange.GetOrders exchange.GetOrders}، {@fun/Trade/Exchange.GetOrders exchange.GetOrders}، {@fun/Trade/Exchange.GetOrder exchange.GetOrder exchange.GetOrder exchange.GetOrders}، {@fun/
exchange.SetPrecision()
تقریب کی درستگی مقرر کرنے کے لئے استعمال کیا جاتا ہےexchange
تبادلہ کا مقصدقیمتاورآرڈر کی رقم، ترتیب کے بعد، نظام خود کار طریقے سے اضافی ڈیٹا کو نظر انداز کرے گا.
exchange.SetPrecision ((قیمتPrecision، رقمPrecision)
کےpricePrecision
پیرامیٹر قیمت کے اعداد و شمار کی درستگی کو کنٹرول کرنے کے لئے استعمال کیا جاتا ہے.
قیمت
سچ
نمبر
کےamountPrecision
پیرامیٹر کو حکم دیا جائے گا کہ اعداد و شمار کی مقدار کی درستگی کو کنٹرول کرنے کے لئے استعمال کیا جاتا ہے.
رقمدرستگی
سچ
نمبر
function main(){
// Set the decimal precision of price to 2 bits, and the decimal precision of variety order amount to 3 bits
exchange.SetPrecision(2, 3)
}
def main():
exchange.SetPrecision(2, 3)
void main() {
exchange.SetPrecision(2, 3);
}
بیک ٹسٹنگ سسٹم اس فنکشن کی حمایت نہیں کرتا ہے، اور بیک ٹسٹنگ سسٹم کی عددی درستگی کو خود بخود سنبھالا جاتا ہے.
{@fun/Trade/exchange.Buy exchange.Buy}، {@fun/Trade/exchange.Sell exchange.Sell}
ایکسچینج آبجیکٹ کی موجودہ زر مبادلہ کی شرح مقرر کریں۔
exchange.SetRate (قیمت مقرر)
کےrate
تبادلہ کرنسی کی شرح کی وضاحت کرنے کے لئے پیرامیٹر استعمال کیا جاتا ہے.
شرح
سچ
نمبر
function main(){
Log(exchange.GetTicker())
// Set exchange rate conversion
exchange.SetRate(7)
Log(exchange.GetTicker())
// Set to 1, no conversion
exchange.SetRate(1)
}
def main():
Log(exchange.GetTicker())
exchange.SetRate(7)
Log(exchange.GetTicker())
exchange.SetRate(1)
void main() {
Log(exchange.GetTicker());
exchange.SetRate(7);
Log(exchange.GetTicker());
exchange.SetRate(1);
}
اگر زر مبادلہ کی شرح کی قیمت کوexchange.SetRate()
اس کے بعد تمام قیمت کی معلومات جیسے ٹکر، گہرائیوں، آرڈر کی قیمتوں، وغیرہ کے تبادلے کی طرف سے نمائندگی موجودہexchange
تبادلہ اعتراض 7 کی مقررہ زر مبادلہ کی شرح سے ضرب کر کے تبدیل کیا جائے گا. مثال کے طور پر،exchange
ایک تبادلہ ہے جس میں امریکی ڈالر بطور کرنسی ہے۔exchange.SetRate(7)
، براہ راست مارکیٹ پر تمام قیمتوں کو قریب قیمتوں میں تبدیل کیا جائے گاCNY7 سے ضرب کر کے نامزد.
{@fun/Market/exchange.GetRate تبادلہ.GetRate}
کےexchange.IO()
تقریب تبادلہ اعتراض سے متعلق دیگر انٹرفیس کالز کے لئے استعمال کیا جاتا ہے.
کےexchange.IO()
فنکشن ایکسچینج آبجیکٹ سے متعلق دیگر انٹرفیس کو کال کرتا ہے ، کامیاب کال پر مطلوبہ رسپانس ڈیٹا واپس کرتا ہے اور یہ ناکام کال پر null واپس کرتا ہے۔
string, number, bool, object, array, null, اور نظام کی طرف سے معاونت کسی بھی دوسری قسم
exchange.IO(k،...args)
کےk
پیرامیٹر کال کی قسم مقرر کرنے کے لئے استعمال کیا جاتا ہے، اختیاری اقدار کے ساتھ"api"
, "currency"
, "base"
, "trade_margin"
, "trade_normal"
, "public_base"
, "mbase"
, selfTradePreventionMode
, simulate
, cross
, dual
, unified
اور اسی طرح.
k
سچ
سٹرنگ
توسیع شدہ پیرامیٹرز، مخصوص کال منظر نامے کے مطابق منظور،arg
پیرامیٹرز ایک سے زیادہ منتقل کیا جا سکتا ہے.exchange.IO()
فنکشن، مختلف پیرامیٹر کی ترتیبات مختلف افعال کے مطابق.exchange.IO()
فنکشن غیر معینہ ہیں.
ارگ
سچ
string, number, bool, object, array, null اور نظام کی طرف سے حمایت کی کسی بھی دیگر اقسام
function main() {
var arrOrders = [
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"},
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"2","posSide":"long"}
]
// Call exchange.IO to access the exchange's bulk order interface directly
var ret = exchange.IO("api", "POST", "/api/v5/trade/batch-orders", "", JSON.stringify(arrOrders))
Log(ret)
}
import json
def main():
arrOrders = [
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"},
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"2","posSide":"long"}
]
ret = exchange.IO("api", "POST", "/api/v5/trade/batch-orders", "", json.dumps(arrOrders))
Log(ret)
void main() {
json arrOrders = R"([
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"},
{"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"2","posSide":"long"}
])"_json;
auto ret = exchange.IO("api", "POST", "/api/v5/trade/batch-orders", "", arrOrders.dump());
Log(ret);
}
کا استعمال کرتے ہوئےexchange.IO("api", httpMethod, resource, params, raw)
کال فارمexchange.IO()
یہ آپ کو FMZ پلیٹ فارم میں شامل نہیں کیا جاتا ہے کہ فعالیت کو بڑھانے کے لئے اجازت دے گا.POST
درخواست آپ کو خفیہ کاری ، دستخط ، یا پیرامیٹرز کی توثیق کے بارے میں فکر کرنے کی ضرورت نہیں ہے ، جو پہلے ہی نیچے ایف ایم زیڈ کے ذریعہ سنبھالا جاتا ہے ، جب تک کہ آپ اسی پیرامیٹرز کو پُر کریں۔ آپ بیچ آرڈر کی مثال کا حوالہ دے سکتے ہیں۔OKX ایکسچینجمستقبل کے معاہدوں، اور پیرامیٹر کا استعمالraw
آرڈر پیرامیٹرز کو منتقل کرنے کے لئے:
var amount = 1
var price = 10
var basecurrency = "ltc"
function main () {
// Note that both amount.toString() and price.toString() have a ' character on the left and right side
var message = "symbol=" + basecurrency + "&amount='" + amount.toString() + "'&price='" + price.toString() + "'&side=buy" + "&type=limit"
var id = exchange.IO("api", "POST", "/v1/order/new", message)
}
amount = 1
price = 10
basecurrency = "ltc"
def main():
message = "symbol=" + basecurrency + "&amount='" + str(amount) + "'&price='" + str(price) + "'&side=buy" + "&type=limit"
id = exchange.IO("api", "POST", "/v1/order/new", message)
void main() {
auto amount = 1.0;
auto price = 10.0;
auto basecurrency = "ltc";
string message = format("symbol=%s&amount=\"%.1f\"&price=\"%.1f\"&side=buy&type=limit", basecurrency, amount, price);
auto id = exchange.IO("api", "POST", "/v1/order/new", message);
}
اگر کلیدی قدر میںparams
پیرامیٹر (یعنی، Http درخواست پیرامیٹر) ایک تار ہے، یہ پیرامیٹر کی قیمت کو لپیٹنے کے لئے پیرامیٹر کی قیمت کے ارد گرد واحد کوٹس (یعنی، علامت ') میں لکھا جا کرنے کی ضرورت ہے.
function main() {
var ret = exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC")
Log(ret)
}
def main():
ret = exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC")
Log(ret)
void main() {
auto ret = exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC");
Log(ret);
}
یہ مکمل یو آر ایل پیرامیٹرز میں منتقل کرنے کی حمایت کرتا ہے جو بیس ایڈریس سوئچنگ کے آپریشن کو چھوڑ سکتا ہے (بنیادی ایڈریس کو کال کرنا)exchange.SetBase()
فنکشن).
function main(){
var ret = exchange.IO("api", "GET", "/api/v5/trade/orders-pending", "instType=SPOT")
Log(ret)
}
def main():
ret = exchange.IO("api", "GET", "/api/v5/trade/orders-pending", "instType=SPOT")
Log(ret)
void main() {
auto ret = exchange.IO("api", "GET", "/api/v5/trade/orders-pending", "instType=SPOT");
Log(ret);
}
پیرامیٹر کے بغیر کال کا مثالraw
:
function main() {
// For example, if you set the current trading pair of the exchange object to BTC_USDT at the beginning of the live trading, print the current trading pair tickers
Log(exchange.GetTicker())
// Switch the trading pair to LTC_BTC
exchange.IO("currency", "LTC_BTC")
Log(exchange.GetTicker())
}
def main():
Log(exchange.GetTicker())
exchange.IO("currency", "LTC_BTC")
Log(exchange.GetTicker())
void main() {
Log(exchange.GetTicker());
exchange.IO("currency", "LTC_BTC");
Log(exchange.GetTicker());
}
موجودہ تبادلے کی ٹریڈنگ جوڑی سوئچ کریں، تاکہ یہ کوڈ کی طرف سے تشکیل ٹریڈنگ جوڑی سوئچ کرے گالائیو ٹریڈنگ تخلیق پریابیک ٹیسٹ میں.
function main () {
// exchanges[0] is the first exchange object added when the live trading is created
exchanges[0].IO("base", "https://api.huobi.pro")
}
def main():
exchanges[0].IO("base", "https://api.huobi.pro")
void main() {
exchanges[0].IO("base", "https://api.huobi.pro");
}```
For example, the default base address when the exchange object is wrapped is ```https://api.huobipro.com```, and when you need to switch to ```https://api.huobi.pro```, use the following code to switch:
```javascript
function main() {
exchange.SetBase("https://api.bitfinex.com")
exchange.IO("mbase", "https://api-pub.bitfinex.com")
}
def main():
exchange.SetBase("https://api.bitfinex.com")
exchange.IO("mbase", "https://api-pub.bitfinex.com")
void main() {
exchange.SetBase("https://api.bitfinex.com");
exchange.IO("mbase", "https://api-pub.bitfinex.com");
}
ٹکر انٹرفیس اور تجارتی انٹرفیس کے لئے مختلف بیس ایڈریس والے تبادلے کے ل for ، مثال کے طور پر ، بٹ فائنکس فیوچر کے دو پتے ہیں ، ایک ٹکر انٹرفیس کے لئے اور دوسرا تجارتی انٹرفیس کے لئے۔ بٹ فائنکس فیوچر کا استعمال کرتے ہوئے نجی انٹرفیس بیس ایڈریس کو سوئچ کریں۔exchange.SetBase("xxx")
. Bitfinex مستقبل عوامی انٹرفیس بیس ایڈریس کا استعمال کرتے ہوئے سوئچexchange.IO("mbase", "xxx")
.
I. کریپٹوکرنسی پر مبنی تبادلے کے لئے دیگر API انٹرفیس کالز جو یکساں طور پر نہیں ہیں، پیرامیٹر کے ساتھk
مقرر کریں"api"
:
exchange.IO("api", httpMethod, resource, params, raw)
POST
, GET
، وغیرہURL
.کےexchange.IO("api", httpMethod, resource, params, raw)
فنکشن کال ایکسچینج انٹرفیس تک رسائی حاصل کرے گا اور کال ناکام ہوجاتی ہے اور غلطی واقع ہوتی ہے تو null واپس کرے گا۔
صرف حقیقی ٹریڈنگ کی حمایت کرتا ہےexchange.IO("api", httpMethod, resource, params, raw)
function.
II. ٹریڈنگ کے جوڑوں کو تبدیل کرنے کے لئے، پیرامیٹرk
پر مقرر کیا گیا ہے"currency"
:
exchange.IO("currency", currency)
کرنسی: پیرامیٹر ایک یونیفارم بڑے حروف کی شکل کے ساتھ ایک تار کی قسم ہے، الگ کرنے کے لئے ایک underscore کا استعمال کرتے ہوئےbaseCurrency
سےquoteCurrency
، جیسےBTC_USDT
.
ETH_BTC
صرف تبدیل کر سکتے ہیںLTC_BTC
، نہیں کرناLTC_USDT
.exchange.IO("currency", currency)
تجارت کے جوڑوں کو تبدیل کرنے کے لئے.III۔ کریپٹوکرنسی اسپاٹ ایکسچینج آبجیکٹ لیورجڈ اکاؤنٹ موڈ کو سوئچ کرنے کے لئے استعمال کیا جاتا ہے:
k
پر مقرر کیا گیا ہے"trade_margin"
اسپاٹ لیوریج اکاؤنٹ موڈ پر سوئچ کرنے کے لئے۔ احکامات دینے اور اکاؤنٹ کے اثاثے حاصل کرنے سے ایکسچینج کے اسپاٹ لیوریج انٹرفیس تک رسائی حاصل ہوگی۔
اگر ایکسچینج اسپاٹ لیول میں مکمل مارجن اور الگ تھلگ مارجن میں فرق کرتا ہے تو:exchange.IO("trade_super_margin")
لیورجڈ اکاؤنٹ کے لیے مکمل مارجن پر سوئچ کرنا، اورexchange.IO("trade_margin")
لیورجڈ اکاؤنٹ کے لیے الگ تھلگ مارجن پر سوئچ کرنا۔k
پر مقرر کیا گیا ہے"trade_normal"
معمول کے اسپاٹ اکاؤنٹ موڈ پر واپس جانے کے لیے۔اسپاٹ ایکسچینجز جو لیورجڈ اکاؤنٹ ماڈلز کے درمیان سوئچنگ کی حمایت کرتے ہیں:
تبادلہ | خصوصی تبصرے |
---|---|
OKX | لیورجڈ اکاؤنٹ موڈ میں ٹریڈنگ جوڑے عام لوگوں سے مختلف ہیں ، کچھ ٹریڈنگ جوڑوں میں ان کا امکان نہیں ہوسکتا ہے۔ استعمال کریںexchange.IO("trade_super_margin") لیورجڈ اکاؤنٹس کے لئے مکمل پوزیشن پر سوئچ کرنے اور استعمال کرنے کے لئےexchange.IO("trade_margin") پوزیشن کی طرف سے پوزیشن پر سوئچ کرنے کے لئے.trade_normal معمول کے اسپاٹ موڈ پر سوئچ کرنے کے لیے استعمال کریں۔exchange.IO("tdMode", "cross") براہ راست لیوریج موڈ کی وضاحت کرنے کے لئے. |
ہوبی | لیوریجڈ اکاؤنٹ موڈ ٹریڈنگ کے جوڑے عام سے مختلف ہوتے ہیں ، کچھ ٹریڈنگ جوڑوں میں ان کی کمی ہوسکتی ہے۔ ہووبی لیوریجڈ اکاؤنٹس میں مکمل پوزیشن اور پوزیشن کے لحاظ سے پوزیشن موجود ہیں۔ استعمال کریںtrade_margin لیوریج اکاؤنٹ کی پوزیشن پر پوزیشن کے مطابق سوئچ کرنے کے لئے، استعمالtrade_super_margin لیوریج اکاؤنٹ مکمل پوزیشن پر سوئچ کرنے کے لئے.trade_normal عام کرنسی کرنسی موڈ پر سوئچ کرنے کے لئے. |
بائننس | لیورجڈ اکاؤنٹ موڈ کو پوزیشن کے لحاظ سے پوزیشن اور مکمل پوزیشن میں تقسیم کیا گیا ہے، استعمالtrade_margin پوزیشن کی طرف سے پوزیشن پر سوئچ کرنے کے لئے، استعمالtrade_super_margin مکمل پوزیشن پر سوئچ کرنے کے لئے، استعمالtrade_normal عام کرنسی کرنسی موڈ پر سوئچ کرنے کے لئے. |
دروازہ | لیورجڈ اکاؤنٹ موڈ کو پوزیشن کے لحاظ سے پوزیشن اور مکمل پوزیشن میں تقسیم کیا گیا ہے، استعمالtrade_margin پوزیشن کی طرف سے پوزیشن پر سوئچ کرنے کے لئے، استعمالtrade_super_margin مکمل پوزیشن پر سوئچ کرنے کے لئے، استعمالtrade_normal عام کرنسی کرنسی موڈ پر سوئچ کرنے کے لئے. |
AscendEx | استعمالexchange.IO("trade_margin") لیوریج اکاؤنٹ موڈ پر سوئچ کرنے کے لئے اورexchange.IO("trade_normal") عام اکاؤنٹ موڈ پر واپس سوئچ کرنے کے لئے. |
واہ | استعمالexchange.IO("trade_margin") لیوریج اکاؤنٹ موڈ پر سوئچ کرنے کے لئے اورexchange.IO("trade_normal") عام اکاؤنٹ موڈ پر واپس سوئچ کرنے کے لئے. |
CoinEx | استعمالexchange.IO("trade_margin") لیوریجڈ اکاؤنٹ موڈ پر سوئچ کرنے کے لئے اورexchange.IO("trade_normal") عام اکاؤنٹ موڈ پر واپس سوئچ کرنے کے لئے. |
دیگر سوئچنگ افعال:چیک کریںexchange.IO()
کے لئے فنکشندیگر سوئچنگ افعالصارف گائیڈ میں.
{@fun/NetSettings/exchange.SetBase exchange.SetBase}، {@fun/Account/exchange.SetCurrency exchange.SetCurrency}، {@var EXCHANGE_OP_IO_CONTROL}
کےexchange.Log()
فنکشن کا استعمال لاگ کالم کے علاقے میں آرڈر کی جگہ اور انخلا کا لاگ آؤٹ کرنے کے لئے کیا جاتا ہے۔ جب کال کیا جاتا ہے تو ، کوئی آرڈر نہیں دیئے جاتے ہیں ، صرف ٹرانزیکشن لاگ آؤٹ کیا جاتا ہے اور ریکارڈ کیا جاتا ہے۔
تبادلہ.لاگ ((آرڈرٹائپ ، قیمت ، رقم) exchange.Log ((orderType, price, amount,...args) آرڈر کی قسم، قیمت، رقم،...args)
کےorderType
پیرامیٹر آؤٹ پٹ لاگ کی قسم مقرر کرنے کے لئے استعمال کیا جاتا ہے، اختیاری اقدار ہیں {@var/LOG_TYPE/LOG_TYPE_BUY LOG_TYPE_BUY}، {@var/LOG_TYPE/LOG_TYPE_SELL LOG_TYPE_SELL}، {@var/LOG_TYPE/LOG_TYPE_CANCEL LOG_TYPE_CANCEL}.
آرڈرٹائپ
سچ
نمبر
کےprice
پیرامیٹر آؤٹ پٹ لاگ میں دکھایا گیا قیمت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
قیمت
سچ
نمبر
کےamount
پیرامیٹر کا استعمال آؤٹ پٹ لاگ میں دکھائے جانے والے دیئے گئے آرڈرز کی مقدار کو ترتیب دینے کے لئے کیا جاتا ہے۔
رقم
سچ
نمبر
توسیع شدہ پیرامیٹرز جو اس لاگ میں معلومات کے ساتھ آؤٹ پٹ کر سکتے ہیں،arg
پیرامیٹرز ایک سے زیادہ منتقل کیا جا سکتا ہے.
ارگ
غلط
string، number، bool، object، array، null اور نظام کی طرف سے معاونت کی کسی بھی دوسری قسم
var id = 123
function main() {
// Order type buy, price 999, amount 0.1
exchange.Log(LOG_TYPE_BUY, 999, 0.1)
// Cancel the order
exchange.Log(LOG_TYPE_CANCEL, id)
}
id = 123
def main():
exchange.Log(LOG_TYPE_BUY, 999, 0.1)
exchange.Log(LOG_TYPE_CANCEL, id)
void main() {
auto id = 123;
exchange.Log(LOG_TYPE_BUY, 999, 0.1);
exchange.Log(LOG_TYPE_CANCEL, id);
}
استعمال کرناexchange.Log(orderType, price, amount)
ٹیسٹ کے بعد لائیو ٹریڈنگ آرڈر کے لئے استعمال کیا جاسکتا ہے ، مشابہت شدہ آرڈر کی جگہ ، اور یہ آرڈر کی جگہ کی لاگنگ میں مدد کرسکتا ہے۔ سب سے عام منظرناموں میں سے ایک {@ تفریح / تجارت / تبادلہ.IOexchange.IO} فنکشن مشروط احکامات بنانے کے لئے تبادلے کے انٹرفیس تک رسائی حاصل کرنے کے لئے، لیکنexchange.IO()
تقریب لائیو ٹریڈنگ لاگ ریکارڈ میں ٹرانزیکشن لاگ کی معلومات کی پیداوار نہیں کرتا.exchange.Log()
آرڈر کی جگہ کی معلومات کو ریکارڈ کرنے کے لئے آؤٹ پٹ لاگ کو مکمل کرنے کے لئے فنکشن کا استعمال کیا جاسکتا ہے ، اور آرڈر کی واپسی کے عمل کے لئے بھی یہی سچ ہے۔
جبorderType
پیرامیٹر ہےLOG_TYPE_CANCEL
،price
پیرامیٹر منسوخ شدہ آرڈر کا آرڈر آئی ڈی ہے جس کا استعمال جب آرڈر براہ راست انسٹال کیا جاتا ہے تو انسٹال لاگ پرنٹ کرنے کے لئے کیا جاتا ہےexchange.IO()
فنکشن.exchange.Log()
فنکشن {@var/EXCHANGE exchange} ایکسچینج آبجیکٹ کا ممبر فنکشن ہے ، جیسا کہ عالمی فنکشن {@fun/Log Log} سے ممتاز ہے۔
{@fun/Log Log}، {@var/EXCHANGE exchange}، {@var/LOG_TYPE/LOG_TYPE_BUY LOG_TYPE_BUY}، {@var/LOG_TYPE/LOG_TYPE_SELL LOG_TYPE_SELL}، {@var/LOG_TYPE/LOG_TYPE_CANCEL LOG_TYPE_CANCEL}
کےexchange.Encode()
فنکشن دستخط خفیہ کاری کے حساب کے لئے استعمال کیا جاتا ہے.
کےexchange.Encode()
فنکشن حساب شدہ ہیش ویلیو کوڈنگ لوٹاتا ہے۔
سٹرنگ
exchange.Encode ((algo، inputFormat، outputFormat، data) exchange.Encode ((algo، inputFormat، outputFormat، data، keyFormat، key)
پیرامیٹرalgo
کوڈنگ حساب کتاب کے لئے استعمال کیا جاتا الگورتھم ہے۔ معاون ترتیبات ہیں: algo
بھی حمایت کرتا ہے: algo
بھی معاون ہے: algo
ed25519.seed
حساب کتاب.
کچھ
سچ
سٹرنگ
ڈیٹا فارمیٹ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہےdata
پیرامیٹر.inputFormat
پیرامیٹر میں سے کسی ایک پر مقرر کیا جا سکتا ہے: hex
کوڈت، base64
انکوڈ کیا جاتا ہے، اور outputFormat
پیرامیٹر مندرجہ ذیل ترتیبات کی حمایت کرتا ہے: hex
کوڈت، base64
انکوڈ کیا جاتا ہے، اور data
یہ وہ اعداد و شمار ہیں جن پر کارروائی کی جائے گی۔
اعداد و شمار
سچ
سٹرنگ
ڈیٹا فارمیٹ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہےkey
پیرامیٹر.key
پیرامیٹر میں سے کسی ایک پر مقرر کیا جا سکتا ہے: hex
کوڈت، base64
انکوڈ کیا جاتا ہے، اور key
پیرامیٹر کا استعمال دستخط کے حساب میں استعمال کی کلید کی وضاحت کرنے کے لئے کیا جاتا ہے، اور یہ ایک سادہ متن تار کے طور پر استعمال کیا جا سکتا ہے."{{accesskey}}"
, "{{secretkey}}"
کا حوالہ دینے کے لئےaccessKey
اورsecretKey
{@var/EXCHANGE exchange} تبادلہ آبجیکٹ میں تشکیل شدہ.
چابی
غلط
سٹرنگ
function main() {
var APIKEY = "your Access Key(Bitmex API ID)"
var expires = parseInt(Date.now() / 1000) + 10
var signature = exchange.Encode("sha256", "string", "hex", "GET/realtime" + expires, "hex", "{{secretkey}}")
var client = Dial("wss://www.bitmex.com/realtime", 60)
var auth = JSON.stringify({args: [APIKEY, expires, signature], op: "authKeyExpires"})
var pos = 0
client.write(auth)
client.write('{"op": "subscribe", "args": "position"}')
while (true) {
bitmexData = client.read()
if(bitmexData.table == 'position' && pos != parseInt(bitmexData.data[0].currentQty)){
Log('position change', pos, parseInt(bitmexData.data[0].currentQty), '@')
pos = parseInt(bitmexData.data[0].currentQty)
}
}
}
import time
def main():
APIKEY = "your Access Key(Bitmex API ID)"
expires = int(time.time() + 10)
signature = exchange.Encode("sha256", "string", "hex", "GET/realtime" + expires, "hex", "{{secretkey}}")
client = Dial("wss://www.bitmex.com/realtime", 60)
auth = json.dumps({"args": [APIKEY, expires, signature], "op": "authKeyExpires"})
pos = 0
client.write(auth)
client.write('{"op": "subscribe", "args": "position"}')
while True:
bitmexData = json.loads(client.read())
if "table" in bitmexData and bitmexData["table"] == "position" and len(bitmexData["data"]) != 0 and pos != bitmexData["data"][0]["currentQty"]:
Log("position change", pos, bitmexData["data"][0]["currentQty"], "@")
pos = bitmexData["data"][0]["currentQty"]
void main() {
auto APIKEY = "your Access Key(Bitmex API ID)";
auto expires = Unix() + 10;
auto signature = exchange.Encode("sha256", "string", "hex", format("GET/realtime%d", expires), "hex", "{{secretkey}}");
auto client = Dial("wss://www.bitmex.com/realtime", 60);
json auth = R"({"args": [], "op": "authKeyExpires"})"_json;
auth["args"].push_back(APIKEY);
auth["args"].push_back(expires);
auth["args"].push_back(signature);
auto pos = 0;
client.write(auth.dump());
client.write("{\"op\": \"subscribe\", \"args\": \"position\"}");
while(true) {
auto bitmexData = json::parse(client.read());
if(bitmexData["table"] == "position" && bitmexData["data"][0].find("currentQty") != bitmexData["data"][0].end() && pos != bitmexData["data"][0]["currentQty"]) {
Log("test");
Log("position change", pos, bitmexData["data"][0]["currentQty"], "@");
pos = bitmexData["data"][0]["currentQty"];
}
}
}
BitMEX پوزیشن تبدیلی دباؤ (wss پروٹوکول) کا مثال:
صرف حقیقی ٹریڈنگ کی حمایت کرتا ہےexchange.Encode()
فنکشن."{{accesskey}}"
, "{{secretkey}}"
حوالہ جات صرف اس صورت میں درست ہیں جبexchange.Encode()
استعمال کیا جاتا ہے.
{@var/EXCHANGE تبادلہ}، {@fun/Global/Encode Encode}
ملٹی تھریڈڈ غیر متزلزل سپورٹ افعال تمام معاون افعال کے آپریشنز کو غیر متزلزل بیک وقت عمل میں تبدیل کرسکتے ہیں۔
کےexchange.Go()
تقریب فوری طور پر ایک متوازی اعتراض واپس، اور آپ کو استعمال کر سکتے ہیںwait()
متوازی درخواست کا نتیجہ حاصل کرنے کے لئے اس متوازی اعتراض کا طریقہ.
چیز
تبادلہ.Go (میتھڈ) تبادلہ.Go ((طریقہ،...args)
کےmethod
پیرامیٹر متوازی فنکشن کا نام بتانے کے لئے استعمال کیا جاتا ہے۔ نوٹ کریں کہ پیرامیٹر فنکشن کا نام سٹرنگ ہے ، نہ کہ فنکشن کا حوالہ۔
طریقہ کار
سچ
سٹرنگ
پیرامیٹرزبیک وقت انجام دینے والے افعال، ایک سے زیادہ پیرامیٹر ہو سکتا ہےarg
. پیرامیٹر کی قسم اور تعدادarg
کے پیرامیٹرز پر منحصربیک وقت عملدرآمد کی تقریب.
ارگ
غلط
string, number, bool, object, array, function, null, and all other types supported by the system string, number, bool, object, array, function, null, and all other types supported by the system string, number, bool, object, array, function, null, and all other types supported by the system string, number, bool, object, array, function, function, null, and all other types supported by the system
function main(){
// The following four operations are concurrently executed asynchronously by multiple threads and do not take time and return immediately
var a = exchange.Go("GetTicker")
var b = exchange.Go("GetDepth")
var c = exchange.Go("Buy", 1000, 0.1)
var d = exchange.Go("GetRecords", PERIOD_H1)
// Call the wait method to wait for the return of the ticker results asynchronously
var ticker = a.wait()
// Returns the depth, or null if it fails
var depth = b.wait()
// return order number, limited to 1 second timeout, if timeout, returns undefined, the object can continue to call wait if the last wait timeout
var orderId = c.wait(1000)
if(typeof(orderId) == "undefined") {
// Timeout, reacquire
orderId = c.wait()
}
var records = d.wait()
}
def main():
a = exchange.Go("GetTicker")
b = exchange.Go("GetDepth")
c = exchange.Go("Buy", 1000, 0.1)
d = exchange.Go("GetRecords", PERIOD_H1)
ticker, ok = a.wait()
depth, ok = b.wait()
orderId, ok = c.wait(1000)
if ok == False:
orderId, ok = c.wait()
records, ok = d.wait()
void main() {
auto a = exchange.Go("GetTicker");
auto b = exchange.Go("GetDepth");
auto c = exchange.Go("Buy", 1000, 0.1);
auto d = exchange.Go("GetRecords", PERIOD_H1);
Ticker ticker;
Depth depth;
Records records;
TId orderId;
a.wait(ticker);
b.wait(depth);
if(!c.wait(orderId, 300)) {
c.wait(orderId);
}
d.wait(records);
}
Exchange.Go()
فنکشن استعمال مثال، کا تعین کرنے کے لئےundefined
استعمال کرناtypeof(xx) === "undefined"
، کیونکہnull == undefined
جاوا اسکرپٹ میں درست ہے۔
function main() {
var d = exchange.Go("GetRecords", PERIOD_H1)
// Waiting for K-line results
var records = d.wait()
// Here waits an asynchronous operation that has been waited and finished, it will return null, and log the error message
var ret = d.wait()
}
def main():
d = exchange.Go("GetRecords", PERIOD_H1)
records, ok = d.wait()
ret, ok = d.wait()
void main() {
auto d = exchange.Go("GetRecords", PERIOD_H1);
Records records;
d.wait(records);
Records ret;
d.wait(ret);
}
بلاتا ہےwait()
ایک متوازی اعتراض پر طریقہ ہے کہ جاری کیا گیا ہے ایک غلطی کی اطلاع دے گا:
function main() {
while(true) {
var beginTS = new Date().getTime()
var arrRoutine = []
var arrTicker = []
var arrName = []
for(var i = 0; i < exchanges.length; i++) {
arrRoutine.push(exchanges[i].Go("GetTicker"))
arrName.push(exchanges[i].GetName())
}
for(var i = 0; i < arrRoutine.length; i++) {
arrTicker.push(arrRoutine[i].wait())
}
var endTS = new Date().getTime()
var tbl = {
type: "table",
title: "ticker",
cols: ["index", "name", "latest-deal-price"],
rows: []
}
for(var i = 0; i < arrTicker.length; i++) {
tbl.rows.push([i, arrName[i], arrTicker[i].Last])
}
LogStatus(_D(), "Total time taken to obtain tickers from multiple exchanges concurrently:", endTS - beginTS, "millisecond", "\n", "`" + JSON.stringify(tbl) + "`")
Sleep(500)
}
}
import time
import json
def main():
while True:
beginTS = time.time()
arrRoutine = []
arrTicker = []
arrName = []
for i in range(len(exchanges)):
arrRoutine.append(exchanges[i].Go("GetTicker"))
arrName.append(exchanges[i].GetName())
for i in range(len(exchanges)):
ticker, ok = arrRoutine[i].wait()
arrTicker.append(ticker)
endTS = time.time()
tbl = {
"type": "table",
"title": "ticker",
"cols": ["index", "name", "latest-deal-price"],
"rows": []
}
for i in range(len(arrTicker)):
tbl["rows"].append([i, arrName[i], arrTicker[i]["Last"]])
LogStatus(_D(), "Total time taken to obtain tickers from multiple exchanges concurrently:", endTS - beginTS, "second", "\n", "`" + json.dumps(tbl) + "`")
Sleep(500)
void main() {
while(true) {
int length = exchanges.size();
auto beginTS = UnixNano() / 1000000;
Ticker arrTicker[length] = {};
string arrName[length] = {};
// Note that to add several exchange objects, several exchanges[n].Go functions have to be executed here, this example is to add four exchange objects, the details can be modified
auto r0 = exchanges[0].Go("GetTicker");
auto r1 = exchanges[1].Go("GetTicker");
auto r2 = exchanges[2].Go("GetTicker");
auto r3 = exchanges[3].Go("GetTicker");
GoObj *arrRoutine[length] = {&r0, &r1, &r2, &r3};
for(int i = 0; i < length; i++) {
arrName[i] = exchanges[i].GetName();
}
for(int i = 0; i < length; i++) {
Ticker ticker;
arrRoutine[i]->wait(ticker);
arrTicker[i] = ticker;
}
auto endTS = UnixNano() / 1000000;
json tbl = R"({
"type": "table",
"title": "ticker",
"cols": ["index", "name", "latest-deal-price"],
"rows": []
})"_json;
for(int i = 0; i < length; i++) {
json arr = R"(["", "", ""])"_json;
arr[0] = format("%d", i);
arr[1] = arrName[i];
arr[2] = format("%f", arrTicker[i].Last);
tbl["rows"].push_back(arr);
}
LogStatus(_D(), "Total time taken to obtain tickers from multiple exchanges concurrently:", format("%d", endTS - beginTS), "millisecond", "\n", "`" + tbl.dump() + "`");
Sleep(500);
}
}
متعدد ایکسچینج ٹکرز تک بیک وقت رسائی:
function main() {
/*
Testing with OKX futures order interface
POST /api/v5/trade/order
*/
var beginTS = new Date().getTime()
var param = {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"}
var ret1 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", JSON.stringify(param))
var ret2 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", JSON.stringify(param))
var ret3 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", JSON.stringify(param))
var id1 = ret1.wait()
var id2 = ret2.wait()
var id3 = ret3.wait()
var endTS = new Date().getTime()
Log("id1:", id1)
Log("id2:", id2)
Log("id3:", id3)
Log("Concurrent order placement time consumption:", endTS - beginTS, "millisecond")
}
import time
import json
def main():
beginTS = time.time()
param = {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"}
ret1 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", json.dumps(param))
ret2 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", json.dumps(param))
ret3 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", json.dumps(param))
id1, ok1 = ret1.wait()
id2, ok2 = ret2.wait()
id3, ok3 = ret3.wait()
endTS = time.time()
Log("id1:", id1)
Log("id2:", id2)
Log("id3:", id3)
Log("Concurrent order placement time consumption:", endTS - beginTS, "second")
void main() {
auto beginTS = UnixNano() / 1000000;
json param = R"({"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"})"_json;
auto ret1 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", param.dump());
auto ret2 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", param.dump());
auto ret3 = exchange.Go("IO", "api", "POST", "/api/v5/trade/order", "", param.dump());
json id1 = R"({})"_json;
json id2 = R"({})"_json;
json id3 = R"({})"_json;
ret1.wait(id1);
ret2.wait(id2);
ret3.wait(id3);
auto endTS = UnixNano() / 1000000;
Log("id1:", id1);
Log("id2:", id2);
Log("id3:", id3);
Log("Concurrent order placement time consumption:", endTS - beginTS, "millisecond");
}
متوازی کالز کے لئےexchange.IO("api", ...)
فنکشن:
یہ فنکشن صرف حقیقی تجارت میں چلانے پر ملٹی تھریڈڈ ایگزیکشن ٹاسکس تخلیق کرتا ہے ، بیک ٹسٹنگ ملٹی تھریڈڈ بیک وقت ٹاسک ایگزیکشن کی حمایت نہیں کرتا ہے (بیک ٹسٹنگ دستیاب ہے ، لیکن پھر بھی ترتیب سے عملدرآمد ہوتا ہے) ۔
کے بعدexchange.Go()
تقریب ایک اعتراض، اس کی واپسیwait()
فنکشن اس موضوع کے ذریعے بلایا جاتا ہے تھریڈ کی طرف سے واپس اعداد و شمار حاصل کرنے کے لئے.wait()
تقریب کو خود کار طریقے سے جاری کیا جائے گا اس سے پہلے ڈیٹا حاصل کرنے کے لئے بلایا جانا چاہئے.wait()
اگر آپ کے پاس ایک مخصوص تھریڈ ہے تو ، تھریڈ کو خود بخود جاری نہیں کیا جائے گا یہاں تک کہ اگر ٹائم آؤٹ واقع ہو۔ تھریڈ کا نتیجہ خود بخود جاری ہونے سے پہلے حاصل کیا جانا چاہئے (ایک ہی وقت میں رسائی کے لئے انٹرفیس کال کی کامیابی یا ناکامی سے قطع نظر) ۔ آسان الفاظ میں ، مطلوبہ تھریڈ کوwait()
تقریب چاہے عملدرآمد کامیابی یا ناکامی، اور موضوع کی درخواست کی ہے کہ وسائل کی طرف سےexchange.Go()
فنکشن ڈوکر کی طرف سے خود کار طریقے سے جاری کیا جانا چاہئے.
کےwait()
طریقہ ایک ٹائم آؤٹ پیرامیٹر کی حمایت:
بغیر کسی ٹائم آؤٹ پیرامیٹر کے، یعنی،wait()
، یا 0 کی ایک ٹائم آؤٹ پیرامیٹر کے ساتھ، یعنی،wait(0)
.wait()
فنکشن بلاک کرتا ہے اور انتظار کرتا ہے جب تک کہ ہم آہنگ تھریڈ چلانے کا کام ختم نہ ہو جائے ، جو ہم آہنگ تھریڈ کے عملدرآمد کا نتیجہ واپس کرتا ہے۔
مقرر کریں ٹائم آؤٹ پیرامیٹر - 1، یعنیwait(-1)
.wait()
فنکشن فوری طور پر لوٹتا ہے، مختلف پروگرامنگ زبانوں کے لئے مختلف واپسی کی قیمتوں کے ساتھ، ایک مثال کال کے لئے اس ذیلی سیکشن کو دیکھیں.
مخصوص ٹائم آؤٹ پیرامیٹر مقرر کریں،wait(300)
، اورwait()
فنکشن واپس آنے سے پہلے زیادہ سے زیادہ 300 ملی سیکنڈ انتظار کرے گا.
اگر واپسی کا نتیجہwait()
فنکشن حاصل نہیں کیا جاتا ہے، موضوع کے وسائل کو خود بخود جاری نہیں کیا جائے گا، جس کی وجہ سے مطلوبہ موضوعات جمع ہو جائیں گے، اور 2000 سے زائد غلطی کی اطلاع دیں گے:"too many routine wait, max is 2000"
.
معاون افعال:GetTicker
, GetDepth
, GetTrades
, GetRecords
, GetAccount
, GetOrders
, GetOrder
, CancelOrder
, Buy
, Sell
, GetPositions
, IO
. یہ تمام افعال موجودہ {@var/EXCHANGE تبادلہ} تبادلے اعتراض کی بنیاد پر چلایا جاتا ہے جب بیک وقت بلایا جاتا ہے.
پائیتھون زبان اور جاوا اسکرپٹ زبان کے درمیان فرق یہ ہے کہwait()
پائیتھون زبان میں متوازی اشیاء کی تقریب دو پیرامیٹرز لوٹاتی ہے۔ پہلا پیرامیٹر ایک غیر متزلزل API کال کے ذریعہ واپس آنے والا نتیجہ ہے ، اور دوسرا پیرامیٹر اس بات کی نشاندہی کرتا ہے کہ آیا غیر متزلزل کال مکمل ہوگئی ہے۔
def main():
d = exchange.Go("GetRecords", PERIOD_D1)
# ok will return True definitely, unless the strategy is stopped
ret, ok = d.wait()
# If the wait times out, or if it waits for an instance that has already ended, ok returns False
ret, ok = d.wait(100)
{@fun/Global/Mail_Go Mail_Go}، {@fun/Global/HttpQuery_Go HttpQuery_Go}، {@fun/Global/EventLoop ایونٹ لوپ}
کےexchange.GetAccount()
فنکشن تبادلہ اکاؤنٹ کی معلومات کی درخواست کرنے کے لئے استعمال کیا جاتا ہے.GetAccount()
فنکشن تبادلہ آبجیکٹ {@var/EXCHANGE exchange} کا ممبر فنکشن ہے۔exchange
آبجیکٹ صرف سے متعلق ہےexchange
، اور یہ دستاویزات کے بعد دوبارہ نہیں کیا جائے گا.
اکاؤنٹ اثاثہ کی معلومات کی انکوائری کریں اور اگر انکوائری کامیاب ہو تو {@struct/Account Account} ڈھانچہ واپس کریں یا اگر یہ ناکام ہو تو null. {@struct/اکاؤنٹ اکاؤنٹ}، null value
تبادلہ.GetAccount()
function main(){
// Switching trading pairs
exchange.IO("currency", "BTC_USDT")
// Take OKX futures as an example, set the contract as the current week's contract, the current trading pair is BTC_USDT, so the current contract is BTC's U-nominal current week contract
exchange.SetContractType("this_week")
// Get current account asset data
var account = exchange.GetAccount()
// Available balance of USDT as margin
Log(account.Balance)
// USDT freeze amount as margin
Log(account.FrozenBalance)
// Current asset equity
Log(account.Equity)
// The unrealized profit and loss of all positions held with the current asset as margin
Log(account.UPnL)
}
def main():
exchange.IO("currency", "BTC_USDT")
exchange.SetContractType("this_week")
account = exchange.GetAccount()
Log(account["Balance"])
Log(account["FrozenBalance"])
Log(account["Equity"])
Log(account["UPnL"])
void main() {
exchange.IO("currency", "BTC_USDT");
exchange.SetContractType("this_week");
auto account = exchange.GetAccount();
Log(account.Balance);
Log(account.FrozenBalance);
Log(account["Equity"])
Log(account["UPnL"])
}
ٹریڈنگ جوڑوں، معاہدے کوڈ قائم کریں، اور موجودہ اکاؤنٹ کی معلومات حاصل کریں.
اگر تبادلے کا اعتراض ایک cryptocurrency فیوچر معاہدے تبادلے پر مقرر کیا جاتا ہے، اور ایک معاہدے کے ساتھ تبدیل کر دیا جاتا ہےUSDT
مارجن کے طور پر (دیکھیں {@fun/Account/exchange.SetCurrency exchange.SetCurrency}، {@fun/Futures/exchange.SetContractType exchange.SetContractType} افعال کس طرح سوئچ کرنے کے لئے). اثاثہ ہےUSDT
کے طور پر مارجن، جو ریکارڈ کیا جاتا ہےBalance
, FrozenBalance
{@struct/Account Account} ڈھانچے کی خصوصیات۔
اگر تبادلہ کا مقصد کریپٹوکرنسی فیوچر معاہدے کے تبادلے پر مقرر کیا گیا ہے ، اور کرنسی پر مبنی معاہدے پر تبدیل کردیا گیا ہے تو ، اثاثہ کرنسی میں مارجن کے طور پر ہے اور اس میں ریکارڈ کیا جاتا ہےStocks
, FrozenStocks
{@struct/Account Account} ڈھانچے کی خصوصیات۔
جب بائننس فیوچر متحد اکاؤنٹ کا استعمال کرتے ہوئے،exchange.GetAccount()
اکاؤنٹ کی معلومات کی درخواست کرنے کے لئے تقریب، احاطہ کردہ اعداد و شمار میں تبدیل تمام اثاثوں کی رقم ہےامریکی ڈالر. یہ میں دکھایا گیا ہےBalance
{@struct/Account Account} ڈھانچے کا فیلڈ۔ اگر آپ کو دیگر اثاثوں کی تبادلوں کی رقم کا حساب لگانے کی ضرورت ہے تو ، آپ اس کا حساب لگانے کے لئے امریکی ڈالر کی تبادلوں کی رقم کو انڈیکس قیمت (تبدیل کرنے والے اثاثے کی) سے تقسیم کرکے اور پھر رہن کی شرح (تبدیل کرنے والے اثاثے کی) سے تقسیم کرکے استعمال کرسکتے ہیں۔
{@struct/اکاؤنٹ اکاؤنٹ}، {@fun/اکاؤنٹ/تبادلہ.SetCurrency exchange.SetCurrency}، {@fun/Futures/exchange.SetContractType exchange.SetContractType}
کےexchange.GetAssets
فنکشن کا استعمال ایکسچینج اکاؤنٹ اثاثہ کی معلومات کی درخواست کرنے کے لئے کیا جاتا ہے۔
کےexchange.GetAssets()
فنکشن {@struct/Asset Asset} ڈھانچے کی ایک صف واپس کرتا ہے اگر ڈیٹا کی درخواست کامیاب ہو، یا اگر درخواست ناکام ہو تو null.
{@struct/Asset Asset} صف، خالی قدر
تبادلہ.GetAssets()
function main() {
// exchange.SetCurrency("BTC_USDT") // You can set up trading pairs
// exchange.SetContractType("swap") // You can set up contracts
var assets = exchange.GetAssets()
Log(assets)
}
def main():
# exchange.SetCurrency("BTC_USDT") # You can set up trading pairs
# exchange.SetContractType("swap") # You can set up contracts
assets = exchange.GetAssets()
Log(assets)
void main() {
// exchange.SetCurrency("BTC_USDT"); // You can set up trading pairs
// exchange.SetContractType("swap"); // You can set up contracts
auto assets = exchange.GetAssets();
Log(assets);
}
ایکسچینج اکاؤنٹ کے اثاثوں کے بارے میں معلومات حاصل کریں،exchange.GetAssets()
اثاثہ ڈھانچے کے عناصر کے ساتھ ایک صف لوٹاتا ہے.
کےGetAssets()
فیوچر ایکسچینج آبجیکٹ کی فنکشن موجودہ ٹریڈنگ جوڑی کے تحت مارجن اثاثوں (کرنسی پر مبنی ، USDT پر مبنی ، USDC پر مبنی ، وغیرہ) کو لوٹاتا ہے۔
{@struct/Asset Asset}
کےexchange.GetName()
فنکشن کا استعمال تبادلے کا نام حاصل کرنے کے لئے کیا جاتا ہے جس پر موجودہ تبادلے کا اعتراض پابند ہے۔
کےexchange.GetName()
فنکشن FMZ Quant Trading پلیٹ فارم کی طرف سے مقرر تبادلہ کا نام لوٹاتا ہے.
سٹرنگ
تبادلہ.GetName()
function main() {
Log("The exchange object exchange is judged to be Binance spot, and the result is judged to be:", exchange.GetName() == "Binance")
}
def main():
Log("The exchange object exchange is judged to be Binance spot, and the result is judged to be:", exchange.GetName() == "Binance")
void main() {
Log("The exchange object exchange is judged to be Binance spot, and the result is judged to be:", exchange.GetName() == "Binance");
}
کےexchange.GetName()
فنکشن عام طور پر تبادلہ اشیاء کی شناخت کے لئے استعمال کیا جاتا ہے، جیسےexchange
یاexchanges[1]
, exchanges[2]
حکمت عملی کے کوڈ میں. cryptocurrency مستقبل کے معاہدے کے تبادلے کے ناموں میں فکسڈ پریفیکس ہےFutures_
.
{@fun/Account/exchange.GetLabel تبادلہ.GetLabel}
کےexchange.GetLabel()
تقریب تبادلہ اعتراض تشکیل دیا گیا تھا جب مقرر کیا گیا تھا کہ اپنی مرضی کے مطابق لیبل حاصل کرنے کے لئے استعمال کیا جاتا ہے.
کےexchange.GetLabel()
فنکشن اپنی مرضی کے مطابق لیبل واپس کرتا ہے جو تبادلے کے اعتراض کی تشکیل کے وقت مقرر کیا گیا تھا.
سٹرنگ
تبادلہ.GetLabel()
function main() {
Log("exchange label:", exchange.GetLabel())
}
def main():
Log("exchange label:", exchange.GetLabel())
void main() {
Log("exchange label:", exchange.GetLabel());
}
تبادلہ اشیاء جیسےexchange
یاexchanges[1]
, exchanges[2]
اسٹریٹجی کوڈ میں سیٹ ٹیگ کے ذریعے شناخت کی جاتی ہیں۔
{@var/EXCHANGE تبادلہ}
کےexchange.GetCurrency()
فی الحال مقرر کردہ ٹریڈنگ جوڑی حاصل کرنے کے لئے فنکشن کا استعمال کیا جاتا ہے.
کےexchange.GetCurrency()
فنکشن موجودہ {@var/EXCHANGE exchange} ایکسچینج آبجیکٹ کی طرف سے مقرر ٹریڈنگ جوڑی لوٹاتا ہے.
سٹرنگ
تبادلہ.GetCurrency()
function main() {
Log("the current trading pair of exchange is:", exchange.GetCurrency())
}
def main():
Log("the current trading pair of exchange is:", exchange.GetCurrency())
void main() {
Log("the current trading pair of exchange is:", exchange.GetCurrency());
}
ٹریڈنگ جوڑی کی شکل بڑے حروف کے ساتھ یکساں طور پر ہے،baseCurrency
اورquoteCurrency
، جیسےBTC_USDT
.
{@fun/Account/exchange.SetCurrency exchange.SetCurrency} {@fun/Account/exchange.SetCurrency exchange.SetCurrency} {@account/account/exchange.SetCurrency exchange.SetCurrency} {@fun/account/exchange.SetCurrency exchange.SetCurrency.SetCurrency}
کےexchange.SetCurrency()
فنکشن کا استعمال تبادلہ آبجیکٹ {@var/EXCHANGE exchange} کی موجودہ ٹریڈنگ جوڑی کو سوئچ کرنے کے لئے کیا جاتا ہے۔
تبادلہ.سیٹ کرنسی ((کرنسی)
کےcurrency
پیرامیٹر کا استعمال ٹریڈنگ جوڑی کو سوئچ کرنے کے لئے کیا جاتا ہے۔ ٹریڈنگ جوڑی کی شکل بڑے حروف میں یکساں طور پر ہے ، جس میں الگ کرنے کے لئے ایک underscore استعمال کیا جاتا ہےbaseCurrency
سےquoteCurrency
، جیسےBTC_USDT
.
کرنسی
سچ
سٹرنگ
function main() {
var ticker = exchange.GetTicker()
Log(ticker)
Log(exchange.GetAccount())
// Switching trading pairs, pay attention to the changes of ticker data and account information after switching
exchange.SetCurrency("LTC_USDT")
Log("Switch to LTC_USDT")
ticker = exchange.GetTicker()
Log(ticker)
Log(exchange.GetAccount())
}
def main():
ticker = exchange.GetTicker()
Log(ticker)
Log(exchange.GetAccount())
exchange.SetCurrency("LTC_USDT")
Log("Switch to LTC_USDT")
ticker = exchange.GetTicker()
Log(ticker)
Log(exchange.GetAccount())
void main() {
auto ticker = exchange.GetTicker();
Log(ticker);
Log(exchange.GetAccount());
exchange.SetCurrency("LTC_USDT");
Log("Switch to LTC_USDT");
ticker = exchange.GetTicker();
Log(ticker);
Log(exchange.GetAccount());
}
exchange.IO("currency", "BTC_USDT")
سوئچنگ کا طریقہ، براہ مہربانی {@funexcahnge.IO}.BTC_USDT
پر تبدیل کیا جا سکتا ہےLTC_USDT
، نہیں کرناLTC_BTC
.BTC_USDT
، کی تعدادBTC
3 ہے، کی تعدادUSDT
ہے 10000۔ اس وقت، پر سوئچ کریںLTC_USDT
فوری طور پر، ٹریڈنگ کرنسیوں کی تعداد 0 ہے سوئچنگ کے بعد، یعنیLTC_USDT
اکاؤنٹ میں 0 ہے، یعنی، کی تعدادLTC
اکاؤنٹ میں 0 ہے، اور سوئچڈ ٹریڈنگ جوڑی کا اشتراک کرتا ہےUSDT
، جو کہ 10000 ہے.{@fun/Account/exchange.GetCurrency exchange.GetCurrency} {@fun/Account/exchange.GetCurrency exchange.GetCurrency} {@account/exchange.GetCurrency exchange.GetCurrency} {@fun/account/exchange.GetCurrency exchange.GetCurrency} {@account/exchange.GetCurrency exchange.GetCurrency} {@account/exchange.GetCurrency exchange.GetCurrency} {@account/exchange.GetCurrency}
کےexchange.GetQuoteCurrency()
فنکشن کا استعمال موجودہ ٹریڈنگ جوڑی کی denominated کرنسی کا نام حاصل کرنے کے لئے کیا جاتا ہے، یعنیquoteCurrency
.
کےexchange.GetQuoteCurrency()
فنکشن موجودہ ٹریڈنگ جوڑی کی کرنسی کا نام لوٹاتا ہے۔
سٹرنگ
تبادلہ.GetQuoteCurrency()
function main() {
exchange.SetCurrency("BTC_USDT")
Log("BTC_USDT denominated currency name:", exchange.GetQuoteCurrency())
// exchange.SetCurrency("ETH_BTC")
// Log("ETH_BTC denominated currency name:", exchange.GetQuoteCurrency())
}
def main():
exchange.SetCurrency("BTC_USDT")
Log("BTC_USDT denominated currency name:", exchange.GetQuoteCurrency())
# exchange.SetCurrency("ETH_BTC")
# Log("ETH_BTC denominated currency name:", exchange.GetQuoteCurrency())
void main() {
exchange.SetCurrency("BTC_USDT");
Log("BTC_USDT denominated currency name:", exchange.GetQuoteCurrency());
// exchange.SetCurrency("ETH_BTC")
// Log("ETH_BTC denominated currency name:", exchange.GetQuoteCurrency())
}
مثال کے طور پر: {@var/EXCHANGE تبادلہ} تبادلہ آبجیکٹBTC_USDT
،exchange.GetQuoteCurrency()
فنکشن لوٹاتا ہےUSDT
اگر موجودہ ٹریڈنگ جوڑیETH_BTC
،exchange.GetQuoteCurrency()
فنکشن لوٹاتا ہےBTC
.
{@fun/Account/exchange.GetCurrency exchange.GetCurrency}، {@fun/Account/exchange.SetCurrency exchange.SetCurrency}، {@fun/Account/exchange.SetCurrency exchange.GetCurrency}، {@fun/Account/exchange.SetCurrency exchange.SetCurrency}، {@fun/Account/exchange.SetCurrency.GetCurrency.GetCurrency}، {@fun/Account/exchange.SetCurrency.SetCurrency.GetCurrency.GetCurrency}، {@fun/Account/exchange.SetCurrency.SetCurrency.SetCurrency}، {@fun/Account/exchange.SetCurrency.GetCurrency.GetCurrency.GetCurrency.GetCurrency}، {@fun/Account/exchange.GetCurrency.GetCurrency.GetCurrency}، {@fun/Account/account/exchange.
کےexchange.GetPositions()
فنکشن پوزیشن کی معلومات حاصل کرنے کے لئے استعمال کیا جاتا ہے؛GetPositions()
تقریب تبادلہ اعتراض {@var/EXCHANGE تبادلہ} کا ایک رکن تقریب ہے.GetPositions()
تقریب تبادلہ اعتراض سے منسلک تبادلہ اکاؤنٹ کی پوزیشن کی معلومات حاصل کرتا ہےexchange
. رکن کے افعال (طرز) کا مقصدexchange
آبجیکٹ صرف سے متعلق ہےexchange
اور یہاں دوبارہ نہیں کیا جائے گا.
کےexchange.GetPositions()
فنکشن {@struct/Position Position} ڈھانچوں کی ایک صف واپس کرتا ہے اگر ڈیٹا کی درخواست کامیاب ہو جاتی ہے ، اور اگر ڈیٹا کی درخواست ناکام ہوجاتی ہے تو یہ null قدر واپس کرتا ہے۔
{@struct/Position Position} صفیں، خالی اقدار
تبادلہ.GetPositions() تبادلہ.GetPositions ((علامت)
پیرامیٹرsymbol
سیٹ کرنے کے لئے استعمال کیا جاتا ہےتجارتی نشانیاتجارتی علامت کی حدپوچھ گچھ کی جائے۔
اگرsymbol
پیرامیٹر پاس نہیں کیا جاتا ہے، ڈیفالٹ موجودہ ٹریڈنگ جوڑی اور معاہدے کے کوڈ کے طول و عرض کی حد میں تمام علامتوں کی پوزیشن کے اعداد و شمار کی درخواست کرنا ہے.
علامت غلط سٹرنگ
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
function main() {
var arrSymbol = ["BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]
for (var symbol of arrSymbol) {
exchange.CreateOrder(symbol, "buy", -1, 1)
exchange.CreateOrder(symbol, "sell", -1, 1)
}
var defaultPositions = exchange.GetPositions()
var swapPositions = exchange.GetPositions("USDT.swap")
var futuresPositions = exchange.GetPositions("USDT.futures")
var btcUsdtSwapPositions = exchange.GetPositions("BTC_USDT.swap")
var tbls = []
var arr = [defaultPositions, swapPositions, futuresPositions, btcUsdtSwapPositions]
var tblDesc = ["defaultPositions", "swapPositions", "futuresPositions", "btcUsdtSwapPositions"]
for (var index in arr) {
var positions = arr[index]
var tbl = {type: "table", title: tblDesc[index], cols: ["Symbol", "MarginLevel", "Amount", "FrozenAmount", "Price", "Profit", "Type", "ContractType", "Margin"], rows: [] }
for (var pos of positions) {
tbl.rows.push([pos.Symbol, pos.MarginLevel, pos.Amount, pos.FrozenAmount, pos.Price, pos.Profit, pos.Type, pos.ContractType, pos.Margin])
}
tbls.push(tbl)
}
LogStatus("`" + JSON.stringify(tbls) + "`")
// Print out the information once and then return to prevent the order from being executed during the subsequent backtest and affecting data observation
return
}
'''backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
'''
import json
def main():
arrSymbol = ["BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]
for symbol in arrSymbol:
exchange.CreateOrder(symbol, "buy", -1, 1)
exchange.CreateOrder(symbol, "sell", -1, 1)
defaultPositions = exchange.GetPositions()
swapPositions = exchange.GetPositions("USDT.swap")
futuresPositions = exchange.GetPositions("USDT.futures")
btcUsdtSwapPositions = exchange.GetPositions("BTC_USDT.swap")
tbls = []
arr = [defaultPositions, swapPositions, futuresPositions, btcUsdtSwapPositions]
tblDesc = ["defaultPositions", "swapPositions", "futuresPositions", "btcUsdtSwapPositions"]
for index in range(len(arr)):
positions = arr[index]
tbl = {"type": "table", "title": tblDesc[index], "cols": ["Symbol", "MarginLevel", "Amount", "FrozenAmount", "Price", "Profit", "Type", "ContractType", "Margin"], "rows": []}
for pos in positions:
tbl["rows"].append([pos["Symbol"], pos["MarginLevel"], pos["Amount"], pos["FrozenAmount"], pos["Price"], pos["Profit"], pos["Type"], pos["ContractType"], pos["Margin"]])
tbls.append(tbl)
LogStatus("`" + json.dumps(tbls) + "`")
return
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
void main() {
auto arrSymbol = {"BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"};
for (const auto& symbol : arrSymbol) {
exchange.CreateOrder(symbol, "buy", -1, 1);
exchange.CreateOrder(symbol, "sell", -1, 1);
}
auto defaultPositions = exchange.GetPositions();
auto swapPositions = exchange.GetPositions("USDT.swap");
auto futuresPositions = exchange.GetPositions("USDT.futures");
auto btcUsdtSwapPositions = exchange.GetPositions("BTC_USDT.swap");
json tbls = R"([])"_json;
std::vector<std::vector<Position>> arr = {defaultPositions, swapPositions, futuresPositions, btcUsdtSwapPositions};
std::string tblDesc[] = {"defaultPositions", "swapPositions", "futuresPositions", "btcUsdtSwapPositions"};
for (int index = 0; index < arr.size(); index++) {
auto positions = arr[index];
json tbl = R"({
"type": "table",
"cols": ["Symbol", "MarginLevel", "Amount", "FrozenAmount", "Price", "Profit", "Type", "ContractType", "Margin"],
"rows": []
})"_json;
tbl["title"] = tblDesc[index];
for (const auto& pos : positions) {
json arrJson = R"([])"_json;
arrJson.push_back(pos.Symbol);
arrJson.push_back(pos.MarginLevel);
arrJson.push_back(pos.Amount);
arrJson.push_back(pos.FrozenAmount);
arrJson.push_back(pos.Price);
arrJson.push_back(pos.Profit);
arrJson.push_back(pos.Type);
arrJson.push_back(pos.ContractType);
arrJson.push_back(pos.Margin);
tbl["rows"].push_back(arrJson);
}
tbls.push_back(tbl);
}
LogStatus(_D(), "\n", "`" + tbls.dump() + "`");
return;
}
متعدد مختلف تجارتی جوڑوں اور معاہدے کے کوڈز کے لئے مارکیٹ آرڈرز رکھنے کے لئے فیوچر ایکسچینج اشیاء کا استعمال کریں۔ متعدد طریقوں سے پوزیشنوں کی استفسار کریں۔
کریپٹوکرنسی فیوچر معاہدے کریپٹوکرنسی اسپاٹ سے مختلف ہیں ، جس میں صرف پوزیشن کا منطقی تصور ہے۔ ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم کے نظام میں ، کریپٹوکرنسی فیوچر معاہدوں کی مخصوص اقسام کی نشاندہی اس طرح کی جاتی ہے:تجارتی جوڑے, معاہدہ کا کوڈبراہ مہربانی {@fun/Account/exchange.SetCurrency exchange.SetCurrency}، {@fun/Futures/exchange.SetContractType exchange.SetContractType} افعال سے رجوع کریں۔
میںGetPositions
تقریب، علامت پیرامیٹر کے استعمال کے منظرنامے مندرجہ ذیل طور پر خلاصہ کیا جاتا ہے:
ایکسچینج آبجیکٹ کی درجہ بندی | علامت پیرامیٹرز | سوال کا دائرہ کار | تبصرہ |
---|---|---|---|
مستقبل | علامت پیرامیٹر منتقل نہ کریں | موجودہ ٹریڈنگ جوڑی اور معاہدے کے کوڈ کے طول و عرض کی حد کے اندر تمام ٹریڈنگ پروڈکٹس کی تلاش کریں | اگر موجودہ ٹریڈنگ جوڑی BTC_USDT ہے اور معاہدہ کا کوڈ سویپ ہے تو ، تمام USDT پر مبنی دائمی معاہدوں سے استفسار کیا جائے گا۔ یہ کال کرنے کے برابر ہے۔GetPositions("USDT.swap") |
مستقبل | تجارتی مصنوع کی وضاحت کریں، علامت پیرامیٹر ہے: |
ایک مخصوص بی ٹی سی کے یو ایس ڈی ٹی پر مبنی مستقل معاہدے کی تلاش کریں | فیوچر ایکسچینج اشیاء کے لئے پیرامیٹر علامت کی شکل یہ ہے:تجارتی جوڑااورمعاہدہ کا کوڈایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کیا گیا ہے ، جس میں حروف کے ذریعہ الگ کیا گیا ہے". . |
مستقبل | تجارتی مصنوعات کی حد کی وضاحت کریں، علامت پیرامیٹر ہے: |
تمام USDT پر مبنی مستقل معاہدوں کی تلاش کریں | - |
فیوچر ایکسچینجز جو آپشنز کی حمایت کرتے ہیں | علامت پیرامیٹر منتقل نہ کریں | موجودہ ٹریڈنگ جوڑی کے طول و عرض کی حد کے اندر تمام آپشن معاہدوں کی تلاش کریں | اگر موجودہ ٹریڈنگ جوڑی BTC_USDT ہے، تو معاہدہ ایک آپشن معاہدے پر مقرر کیا جاتا ہے، مثال کے طور پر، بائننس آپشن معاہدہ: BTC-240108-40000-C |
فیوچر ایکسچینجز جو آپشنز کی حمایت کرتے ہیں | مخصوص تجارتی مصنوعات کی وضاحت کریں | مخصوص آپشن معاہدے کی تلاش کریں | مثال کے طور پر بائننس فیوچر ایکسچینج کے لئے، علامت پیرامیٹر ہے: BTC_USDT.BTC-240108-40000-C |
فیوچر ایکسچینجز جو آپشنز کی حمایت کرتے ہیں | تجارتی مصنوعات کی حد کی وضاحت کریں، علامت پیرامیٹر ہے: |
تمام USDT پر مبنی آپشن معاہدوں کی تلاش کریں | - |
میںGetPositions
فنکشن، فیوچر ایکسچینج کا اعتراض
استفسار طول و عرض کی حد مندرجہ ذیل طور پر خلاصہ کیا جاتا ہے:
علامت پیرامیٹرز | درخواست کے دائرہ کار کی تعریف | تبصرہ |
---|---|---|
USDT.swap | USDT پر مبنی مستقل معاہدے کی حد۔ | کے لئے |
طول و عرض جو تبادلہ API انٹرفیس کی طرف سے حمایت نہیں کر رہے ہیں ایک غلطی کی اطلاع دی جائے گی اور ایک null قدر واپس کیا جائے گا جب بلا رہا ہے۔
♫ USDT.futures ♫ ♫ USDT پر مبنی ترسیل کے معاہدے کی حد ♫
♫ USD.swap ♫ ♫ کرنسی پر مبنی مستقل تبادلہ کی حد ♫ معاہدوں.
♫ USD.futures ♫ ♫ کرنسی پر مبنی ترسیل کا دائرہ کار ♫ معاہدوں.
♫ USDT.option ♫ ♫ USDT پر مبنی اختیارات معاہدہ رینج ♫ ♫ USDT.option ♫
♫ USD.option ♫ کرنسی پر مبنی اختیارات معاہدہ رینج ♫
♫ USDT.futures_combo♫ ♫ سی ایف ڈی کے مجموعوں کی حد ♫ فیوچر_ڈیبیٹ ایکسچینج۔
♫ USD.futures_ff ♫ ♫ مخلوط مارجن کی ترسیل کے معاہدوں کا دائرہ کار ♫ مستقبل_کراکن ایکسچینج۔
♫ USD.swap_pf ♫ مخلوط مارجن دائمی معاہدہ رینج ♫ مستقبل_کراکن ایکسچینج۔
کے ساتھ ہم آہنگexchange.GetPosition()
کال کریں،GetPosition
بالکل ایک ہی ہےGetPositions
.
جب تبادلہ اعتراض کی طرف سے نمائندگی اکاؤنٹexchange
میں کوئی پوزیشن نہیں ہےسوال کی حدیامخصوص تجارتی آلات،exchange.GetPositions()
فنکشن ایک خالی صف واپس کرتا ہے، مثال کے طور پر:[]
.
{@struct/Position Position}، {@fun/Account/exchange.SetCurrency exchange.SetCurrency}، {@fun/Futures/exchange.SetContractType exchange.SetContractType}، {@struct/Position Position}، {@fun/Account/exchange.SetCurrency exchange.SetCurrency}، {@fun/Futures/exchange.SetContractType exchange.SetContractType}
کےexchange.SetMarginLevel()
اس فنکشن کا استعمال ٹریڈنگ جوڑی یا معاہدے کی لیول ویلیو مقرر کرنے کے لئے کیا جاتا ہےsymbol
پیرامیٹر. پیرامیٹر میں صرف گزرنے کے ساتھ ہم آہنگmarginLevel
{@var/EXCHANGE exchange} ایکسچینج آبجیکٹ کی موجودہ ٹریڈنگ جوڑی یا معاہدے کا لیول ویلیو مقرر کرنا۔
exchange.SetMarginLevel ((علامت، مارجن لیول) تبادلہ.مارجن لیول مقرر کریں (مارجن لیول)
کےsymbol
اس پیرامیٹر کا استعمال اس ٹریڈنگ جوڑی یا معاہدے کی وضاحت کرنے کے لئے کیا جاتا ہے جس کے لئے فائدہ اٹھانے کی قیمت کو ایڈجسٹ کرنے کی ضرورت ہے۔symbol
پیرامیٹرSetMarginLevel()
کی شکل کے ساتھ ہم آہنگ ہےsymbol
پیرامیٹرGetTicker()
فنکشن.
علامت
غلط
سٹرنگ
کےmarginLevel
پیرامیٹر لیول ویلیو مقرر کرنے کے لئے استعمال کیا جاتا ہے، جو عام طور پر ایکسچینجز کے لئے ایک عدد ہوتا ہے اور یہ کچھ ایکسچینجز کے لئے فلوٹنگ پوائنٹ لیول ویلیو کی ترتیبات کو بھی سپورٹ کرتا ہے۔
مارجن سطح
سچ
نمبر
function main() {
exchange.SetMarginLevel(10)
// Set the leverage of BTC’s USDT-margined perpetual contract to 15
exchange.SetMarginLevel("BTC_USDT.swap", 15)
}
def main():
exchange.SetMarginLevel(10)
exchange.SetMarginLevel("BTC_USDT.swap", 15)
void main() {
exchange.SetMarginLevel(10);
exchange.SetMarginLevel("BTC_USDT.swap", 15);
}
کےexchange.SetMarginLevel()
فنکشن صرف cryptocurrency مستقبل کے معاہدے تبادلے اشیاء کی حمایت کرتا ہے.exchange.SetMarginLevel()
لیوریج کی قدر مقرر کرنے کے لئے فنکشن.
کریپٹوکرنسی فیوچر معاہدوں کے ل the ، لیوریج میکانزم کریپٹوکرنسی فیوچر معاہدوں کے تبادلے کی وجہ سے یکساں نہیں ہے۔ کچھ تبادلے میں ، فیوچر معاہدے کی لیوریج ویلیو آرڈر کی جگہ کے انٹرفیس میں ایک پیرامیٹر ہے ، جب آرڈر کی جگہ پر کال کرتے ہیں تو ،exchange.SetMarginLevel()
فنکشن نیٹ ورک کی درخواست نہیں بناتا ہے ، بلکہ بنیادی ایف ایم زیڈ سسٹم میں صرف بیعانہ متغیر طے کرتا ہے (جو آرڈر کی جگہ کے انٹرفیس میں پیرامیٹرز کو منتقل کرنے کے لئے استعمال ہوتا ہے) ۔ کچھ ایکسچینج فیوچر معاہدوں کی بیعانہ کی قیمت ایکسچینج کی ایک ترتیب ہے ، جسے ایکسچینج ویب سائٹ کے صفحے پر یا API انٹرفیس کا استعمال کرتے ہوئے طے کرنے کی ضرورت ہے۔ اس معاملے میں پیکیج کو کال کرناexchange.SetMarginLevel()
فنکشن نیٹ ورک کی درخواست پیدا کرے گا اور فائدہ اٹھانے کی ترتیب میں ناکام ہوسکتا ہے۔ اس کی بہت سی وجوہات ہوسکتی ہیں ، مثال کے طور پر: موجودہ پوزیشن یا زیر التواء آرڈر موجود ہے ، جس کی وجہ سے اس تجارتی جوڑی یا معاہدے کے لئے فائدہ اٹھانے کی نئی قیمت طے کرنا ناممکن ہے۔
تبادلے جو حمایت نہیں کرتےexchange.SetMarginLevel()
فنکشن:
فنکشن کا نام | غیر تعاون یافتہ اسپاٹ ایکسچینجز | غیر معاون فیوچر ایکسچینج |
---|---|---|
مارجن لیول سیٹ کریں | – | فیوچر_ڈی وائی ڈی ایکس / فیوچر_ڈیریبیٹ |
{@var/EXCHANGE تبادلہ}
کےexchange.SetDirection()
فنکشن {@fun/Trade/exchange.Buy exchange.Buy} فنکشن، {@fun/Trade/exchange.Sell exchange.Sell} فنکشن کی آرڈر سمت مقرر کرنے کے لئے استعمال کیا جاتا ہے جب فیوچر معاہدوں کے لئے آرڈر دیا جاتا ہے۔
تبادلہ.سیٹ ڈائریکشن ((نقطہ)
کےdirection
پیرامیٹر کا استعمال آرڈر کی جگہ پر مستقبل کے معاہدے کی سمت مقرر کرنے کے لئے کیا جاتا ہے۔ اختیاری اقدار یہ ہیں:"buy"
, "closesell"
, "sell"
, "closebuy"
.
سمت
سچ
سٹرنگ
function main(){
// For example, set to OKX futures contract of this week
exchange.SetContractType("this_week")
// Set leverage to 5 times
exchange.SetMarginLevel(5)
// Set the order type to long
exchange.SetDirection("buy")
// Place an order for 2 contracts at 10,000
exchange.Buy(10000, 2)
exchange.SetMarginLevel(5)
exchange.SetDirection("closebuy")
exchange.Sell(1000, 2)
}
def main():
exchange.SetContractType("this_week")
exchange.SetMarginLevel(5)
exchange.SetDirection("buy")
exchange.Buy(10000, 2)
exchange.SetMarginLevel(5)
exchange.SetDirection("closebuy")
exchange.Sell(1000, 2)
void main() {
exchange.SetContractType("this_week");
exchange.SetMarginLevel(5);
exchange.SetDirection("buy");
exchange.Buy(10000, 2);
exchange.SetMarginLevel(5);
exchange.SetDirection("closebuy");
exchange.Sell(1000, 2);
}
کےexchange.SetDirection()
فنکشن مستقبل کے معاہدے کے لین دین کی سمت اور آرڈر کی جگہ کے فنکشن کے درمیان مطابقت طے کرتا ہے:
آرڈر دینے کے افعال | سیٹ ڈائریکشن فنکشن کے پیرامیٹرز کے ذریعہ طے شدہ سمت | تبصرے |
---|---|---|
exchange.Buy | خریدیں اور طویل پوزیشن کھولیں | |
exchange.Buy | مختصر پوزیشن خریدیں اور بند کریں | |
exchange.Sell | فروخت اور مختصر پوزیشنیں کھولیں | |
exchange.Sell | فروخت اور بند طویل پوزیشن |
{@fun/Trade/exchange.Buy exchange.Buy}، {@fun/Trade/exchange.Sell exchange.Sell}
کےexchange.SetContractType()
فنکشن {@var/EXCHANGE exchange} ایکسچینج آبجیکٹ کا موجودہ معاہدہ کوڈ مقرر کرنے کے لئے استعمال کیا جاتا ہے.
کےexchange.SetContractType()
فنکشن ایک ایسا ڈھانچہ لوٹاتا ہے جس میں ایکسچینج کنٹریکٹ کوڈ موجود ہے جو موجودہ کنٹریکٹ کوڈ سے مطابقت رکھتا ہے۔ مثال کے طور پر بائننس فیوچر کنٹریکٹ ایکسچینج کے لئے ، موجودہ کنٹریکٹ کوڈ ہےquarter
، اور اس فنکشن کی واپسی کی قیمت کی ساخت ہے:{"InstrumentID": "BTCUSD_230630", "instrument": "BTCUSD_230630"}
.
چیز
exchange.SetContractType ((علامت)
کےsymbol
پیرامیٹر معاہدے کا کوڈ مقرر کرنے کے لئے استعمال کیا جاتا ہے، اختیاری اقدار ہیں:"this_week"
, "next_week"
, "quarter"
, "next_quarter"
, "swap"
، وغیرہ
کریپٹوکرنسی فیوچر معاہدےترسیل کا معاہدہکوڈز، اگر مخصوص نہیں ہیں تو، عام طور پر:
this_week
: جاری ہفتے کے معاہدے.next_week
: اگلے ہفتے کے معاہدے.quarter
: سہ ماہی معاہدہ.next_quarter
: اگلے سہ ماہی معاہدے.مستقل معاہدےکریپٹوکرنسی فیوچر معاہدوں میں کوڈ، اگر مخصوص نہیں ہیں تو، عام طور پر:swap
: دائمی معاہدہ.علامت سچ سٹرنگ
function main() {
// Set to this week contract
exchange.SetContractType("this_week")
}
def main():
exchange.SetContractType("this_week")
void main() {
exchange.SetContractType("this_week");
}
موجودہ معاہدے کو موجودہ ہفتے کے معاہدے کے طور پر مقرر کریں:
function main() {
// The default trading pair is BTC_USD, set the contract for this week, and the contract is a currency standard contract
exchange.SetContractType("this_week")
Log("ticker:", exchange.GetTicker())
// Switching trading pairs, then setting up contracts, switching to USDT as margin contracts, as opposed to currency standard contracts
exchange.IO("currency", "BTC_USDT")
exchange.SetContractType("swap")
Log("ticker:", exchange.GetTicker())
}
def main():
exchange.SetContractType("this_week")
Log("ticker:", exchange.GetTicker())
exchange.IO("currency", "BTC_USDT")
exchange.SetContractType("swap")
Log("ticker:", exchange.GetTicker())
void main() {
exchange.SetContractType("this_week");
Log("ticker:", exchange.GetTicker());
exchange.IO("currency", "BTC_USDT");
exchange.SetContractType("swap");
Log("ticker:", exchange.GetTicker());
}
کے ساتھ ایک معاہدہ قائم کرتے وقتUSDT
مارجن کے طور پر، آپ کو کوڈ میں ٹریڈنگ جوڑی کو تبدیل کرنے کی ضرورت ہے (آپ تبادلہ آبجیکٹ کو شامل کرتے وقت براہ راست ٹریڈنگ جوڑی بھی مقرر کرسکتے ہیں):
function main(){
// Set the contract for this week
var ret = exchange.SetContractType("this_week")
// Return information about the current week's contracts
Log(ret)
}
def main():
ret = exchange.SetContractType("this_week")
Log(ret)
void main() {
auto ret = exchange.SetContractType("this_week");
Log(ret);
}
کی واپسی کی قیمت پرنٹ کریںexchange.SetContractType()
فنکشن:
cryptocurrency مستقبل کے معاہدے کی حکمت عملی میں، مثال کے طور پرBTC_USDT
ٹریڈنگ جوڑا: جب ٹریڈنگ کے جوڑوں کو تبدیل کرتے وقتexchange.SetCurrency("BTC_USDT")
یاexchange.IO("currency", "BTC_USDT")
افعال، سوئچنگ کے بعد، آپ کو استعمال کرنے کی ضرورت ہےexchange.SetContractType()
نئے ٹریڈنگ جوڑے کے تحت کام کرنے والے موجودہ معاہدے کا تعین کرنے کے لئے معاہدے کو ری سیٹ کرنے کی تقریب۔ یہ نظام اس بات کا تعین کرتا ہے کہ آیا یہ ایککرنسی کا معیاری معاہدہیا ایکUSDT معیاری معاہدہٹریڈنگ جوڑی کی بنیاد پر. مثال کے طور پر اگر ایک ٹریڈنگ جوڑی کے لئے مقرر کیا جاتا ہےBTC_USDT
، استعمال کریںexchange.SetContractType("swap")
کے لئے معاہدے کا کوڈ مقرر کرنے کے لئے تقریبswap
. اس وقت، یہ مقرر کیا گیا ہےBTC
کے لئےUSDT معیاریمستقل معاہدہ۔ اگر ٹریڈنگ جوڑیBTC_USD
، استعمال کریںexchange.SetContractType("swap")
کے لئے معاہدے کا کوڈ مقرر کرنے کے لئے تقریبswap
. اس وقت، یہ مقرر کیا گیا ہےBTC
ہےکرنسی کا معیاردائمی معاہدہ.
کریپٹوکرنسی فیوچر کنٹریکٹ کے تعاون یافتہ تبادلے کی تفصیلات ، ہر تبادلے کے لئے معاہدے کے ناموں کے ساتھ:
فیوچر_OKCoin (OKX)
مستقل معاہدوں پر مقرر:exchange.SetContractType("swap")
اس ہفتے کے معاہدے کے لئے مقرر:exchange.SetContractType("this_week")
اگلے ہفتے کے معاہدے پر مقرر:exchange.SetContractType("next_week")
ماہانہ معاہدے پر مقرر:exchange.SetContractType("month")
اگلے مہینے کے معاہدے پر مقرر:exchange.SetContractType("next_month")
سہ ماہی معاہدوں پر مقرر:exchange.SetContractType("quarter")
اگلے سہ ماہی کے معاہدے پر مقرر:exchange.SetContractType("next_quarter")
او کے ایکس کے پاس پری مارکیٹ ٹریڈنگ کے معاہدے ہیں: معاہدے کی ترسیل کی تاریخ ایک مقررہ وقت ہے۔ تبادلہ کے ذریعہ متعین معاہدے کا کوڈ ، مثال کے طور پر ہے:HMSTR-USDT-250207
ٹریڈنگ جوڑی کوHMSTR_USDT
FMZ پلیٹ فارم پر، اور پھر استعمالexchange.SetContractType("HMSTR-USDT-250207")
معاہدہ طے کرنے کے لئے.
کے لئے افعال کی حمایتsymbol
پیرامیٹر، جیسے:exchange.GetTicker()
, exchange.CreateOrder()
، وغیرہ. آپ کی وضاحت کر سکتے ہیںsymbol
پیرامیٹر:HMSTR_USDT.HMSTR-USDT-250207
اس معاہدے کے بازار کے اعداد و شمار حاصل کرنے یا آرڈر دینے کے لئے۔
Futures_HuobiDM (ہوبی فیوچر)
اس ہفتے کے معاہدے کے لئے مقرر:exchange.SetContractType("this_week")
.
اگلے ہفتے کے معاہدے پر مقرر:exchange.SetContractType("next_week")
.
سہ ماہی معاہدوں پر مقرر:exchange.SetContractType("quarter")
.
اگلے سہ ماہی کے معاہدے پر مقرر:exchange.SetContractType("next_quarter")
.
مستقل معاہدوں پر مقرر:exchange.SetContractType("swap")
.
یہ معاہدوں کی حمایت کرتا ہےUSDT
مارجن کے طور پر، لے لوBTC
معاہدہ مثال کے طور پر: استعمالexchange.IO("currency", "BTC_USDT")
ایک معاہدے پر سوئچ کرنے کے لئے جو استعمال کرتا ہےUSDT
بطور مارجن۔
یا موجودہ ٹریڈنگ جوڑی کوBTC_USDT
براہ راست جب لائیو ٹریڈنگ پیرامیٹرز کی تشکیل اور تبادلہ اشیاء کا اضافہ.exchange.SetContractType()
کام دوبارہ معاہدہ قائم کرنے کے لئے.
Futures_BitMEX (BitMEX)
مستقل معاہدوں پر مقرر:exchange.SetContractType("swap")
.
Futures_BitMEX تبادلے کی ترسیل کے معاہدے ماہانہ معاہدے ہیں جن میں مندرجہ ذیل معاہدے کے کوڈز ہیں (جنوری سے دسمبر تک):
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
فراہمی کے معاہدوں کا قیام:exchange.SetContractType("December")
مثال کے طور پر، جب ٹریڈنگ جوڑی کوXBT_USDT
،exchange.SetContractType("December")
فنکشن BTC کی بنیاد پر USDT میں دسمبر کی ترسیل کے لئے معاہدہ مقرر کرنے کے لئے بلایا جاتا ہے (کے اصل معاہدے کوڈ کے مساویXBTUSDTZ23
).
Futures_BitMEX معاہدے کی معلومات کا خلاصہ
Futures_BitMEX کے ذریعہ متعین کردہ معاہدے کا کوڈ | ایف ایم زیڈ میں متعلقہ ٹریڈنگ جوڑی | ایف ایم زیڈ میں معاہدہ کا کوڈ | تبصرہ |
---|---|---|---|
DOGEUSD | DOGE_USD | تبادلہ | امریکی ڈالر میں درج، ایکس بی ٹی کی ادائیگی۔ ایکس بی ٹی بی ٹی سی ہے۔ |
DOGEUSDT | DOGE_USDT | تبادلہ | یو ایس ڈی ٹی میں بیان کردہ، یو ایس ڈی ٹی میں طے شدہ۔ |
XBTETH | XBT_ETH | تبادلہ | ای ٹی ایچ میں درج، ایکس بی ٹی میں طے شدہ۔ |
XBTEUR | XBT_EUR | تبادلہ | یورو میں طے شدہ، ایکس بی ٹی میں طے شدہ |
USDTUSDC | USDT_USDC | تبادلہ | USDC میں درج، XBT میں طے شدہ۔ |
ETHUSD_ETH | ETH_USD_ETH | تبادلہ | امریکی ڈالر میں درج، ETH میں طے شدہ۔ |
XBTH24 | XBT_USD | مارچ | ختم ہونے کی تاریخ: 24 مارچ، مہینے کا کوڈ ہے: H؛ امریکی ڈالر میں، XBT میں طے شدہ. |
ETHUSDZ23 | ETH_USD | دسمبر | ختم ہونے کی تاریخ: 23 دسمبر، مہینے کا کوڈ ہے: Z؛ امریکی ڈالر میں، XBT میں طے شدہ. |
XBTUSDTZ23 | XBT_USDT | دسمبر | ختم ہونے کی تاریخ: 23 دسمبر ، مہینے کا کوڈ ہے: Z ؛ USDT میں بیان کیا گیا ، USDT میں طے شدہ۔ |
ADAZ23 | ADA_XBT | دسمبر | ختم ہونے کی تاریخ: 23 دسمبر ، مہینے کا کوڈ ہے: Z ؛ ایکس بی ٹی بلنگ ، ایکس بی ٹی میں طے شدہ۔ |
P_XBTETFX23 | USDT_XXX | P_XBTETFX23 | ختم ہونے کا وقت: 23/11/23؛ فیصد کے طور پر بیان کیا گیا اور USDT میں طے ہوا۔ |
فیوچر_گیٹی او
اس ہفتے کے معاہدے کے لئے مقرر:exchange.SetContractType("this_week")
.
اگلے ہفتے کے معاہدے پر مقرر:exchange.SetContractType("next_week")
.
سہ ماہی معاہدوں پر مقرر:exchange.SetContractType("quarter")
.
اگلے سہ ماہی کے معاہدے پر مقرر:exchange.SetContractType("next_quarter")
.
مستقل معاہدوں پر مقرر:exchange.SetContractType("swap")
.
یہ معاہدوں کی حمایت کرتا ہےUSDT
مارجن کے طور پر، لے لوBTC
معاہدہ مثال کے طور پر: استعمالexchange.IO("currency", "BTC_USDT")
ایک معاہدے پر سوئچ کرنے کے لئے جو استعمال کرتا ہےUSDT
بطور مارجن۔
یا موجودہ ٹریڈنگ جوڑی کوBTC_USDT
براہ راست جب لائیو ٹریڈنگ پیرامیٹرز کی تشکیل اور تبادلہ اشیاء کا اضافہ.exchange.SetContractType()
کام دوبارہ معاہدہ قائم کرنے کے لئے.
فیوچر_ڈیریبیٹ
مستقل معاہدوں پر مقرر:exchange.SetContractType("swap")
.
یہ DeribitUSDC
معاہدہ.
ترسیل کے معاہدے یہ ہیں:"this_week"
, "next_week"
, "month"
, "quarter"
, "next_quarter"
, "third_quarter"
, "fourth_quarter"
.
سی ایف ڈی (مستقبل_کمبو):"this_week,swap"
, "next_week,swap"
, "next_quarter,this_week"
, "third_quarter,this_week"
, "month,next_week"
، بہت سے مجموعے ہیں.
آپشن معاہدوں کے لئے آپ کو ایکسچینج کی طرف سے مقرر کردہ مخصوص آپشن معاہدہ کوڈ میں منتقل کرنے کی ضرورت ہے، تفصیلات کے لئے Deribit ویب سائٹ دیکھیں.
فیوچر_کوکوئن
مثال کے طور پر، اگر ٹریڈنگ جوڑیBTC_USD
اور معاہدے کا کوڈ مقرر کیا گیا ہے، یہ کرنسی پر مبنی معاہدہ ہے:
مستقل معاہدوں پر مقرر:exchange.SetContractType("swap")
.
سہ ماہی معاہدوں پر مقرر:exchange.SetContractType("quarter")
.
اگلے سہ ماہی کے معاہدے پر مقرر:exchange.SetContractType("next_quarter")
.
USDT بطور مارجن معاہدہ:
مثال کے طور پر، اگر ٹریڈنگ جوڑیBTC_USDT
، اور پھر معاہدے کا کوڈ مقرر، یہ مارجن کے طور پر USDT کے ساتھ ایک معاہدہ ہے.
مستقل معاہدوں پر مقرر:exchange.SetContractType("swap")
.
فیوچر_بائننس
بائننس فیوچر ایکسچینج موجودہ ٹریڈنگ جوڑی کے دائمی معاہدے کے لئے ڈیفالٹ، معاہدے کا کوڈ:swap
.
مستقل معاہدوں پر مقرر:exchange.SetContractType("swap")
، بائننس کے دائمی معاہدوں میں ایسے معاہدے ہیں جو استعمال کرتے ہیںUSDT
مارجن کے طور پر. مثال کے طور پر،USDT
معیاری مستقل معاہدہBTC
ایک مارجن معاہدے کے طور پر استعمال کیا جا سکتا ہے، اور ٹریڈنگ جوڑی کے لئے مقرر کیا جاتا ہےBTC_USDT
. بائننس ہمیشہ کے معاہدوں کی بھی حمایت کرتا ہے جو مثال کے طور پر مارجن کے طور پر سکے استعمال کرتے ہیں ،BTC
Binance معیاری دائمی معاہدے، ٹریڈنگ جوڑی کے ساتھ مقرر کرنے کے لئےBTC_USD
.
سہ ماہی معاہدوں پر مقرر:exchange.SetContractType("quarter")
، ترسیل کے معاہدے میں کرنسی کا معیاری معاہدہ ہوتا ہے (یعنی کرنسیوں کو مارجن کے طور پر استعمال کیا جاتا ہے) ، مثال کے طور پر،BTC
کے سہ ماہی معاہدے میں، ٹریڈنگ جوڑی کو مقرر کیا گیا ہے:BTC_USD
اور پھر معاہدہ طےexchange.SetContractType("quarter")
، اس پر مقرر کیا گیا ہےBTC
ایک کرنسی سٹینڈرڈ معاہدے کے ساتھ سہ ماہی معاہدہ.
اگلے سہ ماہی کے معاہدے پر مقرر:exchange.SetContractType("next_quarter")
مثال کے طور پر،BTC
کرنسی سٹینڈرڈ سہ ماہی معاہدے کا، ٹریڈنگ جوڑا مقرر:BTC_USD
، اور پھر معاہدہ مقررexchange.SetContractType("next_quarter")
.
بائننس جزوی حمایت کرتا ہےUSDT
مارجن کی فراہمی کے معاہدے کے طور پر، لےBTC
مثال کے طور پر، ٹریڈنگ جوڑی مقرر کرنے کے لئےBTC_USDT
، پھر معاہدے کا کوڈ مقرر کریں.
بائننس آپشن معاہدوں کی حمایت:
اختیارات کے معاہدے کا کوڈ کا فارمیٹ تبادلے کی طرف سے مقرر کردہ اختیارات کے معاہدے کے کوڈ پر مبنی ہے:BTC-241227-15000-C
, XRP-240112-0.5-C
, BTC-241227-15000-P
. بائننس آپشن معاہدے کا کوڈ لے لوBTC-241227-15000-P
مثال کے طور پر: بی ٹی سی اختیار کرنسی کا کوڈ ہے، 241227 استعمال کی تاریخ ہے، 15000 استعمال کی قیمت ہے، P فروخت کا اختیار ہے، اور C کال کا اختیار ہے.
آپشن کی قسم کے بارے میں تفصیلات کے لیے، چاہے یہ یورپی آپشن ہو یا امریکی آپشن، براہ کرم ایکسچینج کے آپشن معاہدے کی متعلقہ معلومات دیکھیں۔
ایکسچینج آپشن بیچنے والوں کو محدود کرسکتا ہے اور ان سے علیحدہ علیحدہ اہلیت کے لئے درخواست دینے کی ضرورت ہوتی ہے۔ بائننس آپشنز کو بیچنے والے کی اہلیت کی ضرورت ہوتی ہے۔
فیوچر_بی باکس
بی باکس مستقل معاہدوں کے لئے معاہدے کا کوڈ:swap
.
مستقل معاہدوں پر مقرر:exchange.SetContractType("swap")
.
فیوچر_بیبٹ
ڈیفالٹ موجودہ ٹریڈنگ جوڑی کے لئے مستقل معاہدہ ہے، معاہدے کا کوڈ:swap
.
اس ہفتے کے معاہدے کا کوڈ:this_week
.
اگلے ہفتے کے معاہدے کا کوڈ:next_week
.
تیسرے ہفتے کے معاہدے کا کوڈ:third_week
.
ماہانہ معاہدہ کا کوڈ:month
.
اگلے مہینے کے معاہدے کا کوڈ:next_month
.
سہ ماہی معاہدے کا کوڈ:quarter
.
اگلی سہ ماہی کے معاہدے کا کوڈ:next_quarter
.
تیسری سہ ماہی کے معاہدے کا کوڈ:third_quarter
.
فیوچر_کراکن
ڈیفالٹ موجودہ ٹریڈنگ جوڑی کا مستقل معاہدہ ہے، معاہدے کا کوڈ:swap
.
swap
: دائمی معاہدہ.month
: موجودہ مہینے کا معاہدہ.quarter
: سہ ماہی معاہدہ.next_quarter
اگلی سہ ماہی کا معاہدہ.swap_pf
: مخلوط مارجن پر مبنی مستقل معاہدہ۔quarter_ff
: مخلوط مارجن سہ ماہی معاہدہ.month_ff
: مخلوط مارجن جاری مہینے کا معاہدہnext_quarter_ff
: مخلوط مارجن اگلے سہ ماہی کے معاہدے.
فیوچر_بٹ فائنکس
ڈیفالٹ موجودہ ٹریڈنگ جوڑی کے لئے مستقل معاہدہ ہے، معاہدے کا کوڈ:swap
.
فیوچر_بٹ گیٹ
ڈیفالٹ موجودہ ٹریڈنگ جوڑی کے لئے مستقل معاہدہ ہے، معاہدے کا کوڈ:swap
.
ٹریڈنگ جوڑی پر مقرر کیا گیا ہےBTC_USD
کرنسی کے معیاری معاہدوں کے لئے، اور ٹریڈنگ جوڑی کو مقرر کیا گیا ہےBTC_USDT
معاہدوں کے لئےUSDT
ڈیمو معاہدوں کو تجارتی جوڑوں کے ساتھ ترتیب دیا جا سکتا ہےSBTC_USD
, BTC_SUSDT
.
فیوچر_ڈی آئی ڈی ایکس
dYdX مستقل معاہدوں کے لئے معاہدے کا کوڈ:swap
.
مستقل معاہدوں پر مقرر:exchange.SetContractType("swap")
، dYdX صرف USDT معیاری معاہدوں ہے.
فیوچر_MEXC
MEXC مستقل معاہدوں کے لئے معاہدے کا کوڈ:swap
.
مستقل معاہدوں پر مقرر:exchange.SetContractType("swap")
. ٹریڈنگ جوڑی کو سیٹ کریںBTC_USD
، جو کرنسی سٹینڈرڈ معاہدہ ہے، اور ٹریڈنگ جوڑی مقرر کرنے کے لئےBTC_USDT
، جو کہ ہےUSDT
- معاہدہ طے شدہ.
فیوچر_کریپٹو
ٹوکنcrypto.comتبادلہ کرنسیوں کو امریکی ڈالر میں بیان کردہ کریڈٹ میں تبدیل کیا جا سکتا ہے تاکہ معاہدے کی تجارت کے لئے مارجن کے طور پر استعمال کیا جا سکے۔
مستقل معاہدے پر مقرر:exchange.SetContractType("swap")
. مثال کے طور پرexchange.SetContractType("swap")
بی ٹی سی کے لئے ایک مستقل معاہدہ قائم کرنے کی تقریب جب ٹریڈنگ جوڑی کو مقرر کیا جاتا ہےBTC_USD
.
کےcrypto.comایکسچینج ترسیل کے معاہدے ماہانہ معاہدے ہیں جن میں مندرجہ ذیل معاہدے کے کوڈز ہیں (جنوری سے دسمبر تک):
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
ترسیل کا معاہدہ مقرر کریں:exchange.SetContractType("October")
مثال کے طور پر، جب ٹریڈنگ جوڑی کوBTC_USD
، فنکشن کو کال کریںexchange.SetContractType("October")
بی ٹی سی کے لیے اکتوبر کی ترسیل کا معاہدہ طے کرنا۔
اس وقت معاہدے کا کوڈ یہ ہے:BTCUSD-231027
.
مستقبل_WOO
فیوچر_WOO تبادلہ سپورٹUSDT
پر مبنی معاہدوں کے ساتھ ایک مستقل معاہدے کا کوڈswap
مثال کے طور پر، جب ٹریڈنگ جوڑی کوBTC_USDT
، فنکشنexchange.SetContractType("swap")
موجودہ معاہدے کو بی ٹی سی کے لئے یو ایس ڈی ٹی پر مبنی مستقل معاہدہ کرنے کے لئے کہا جاتا ہے۔
{@fun/Futures/exchange.GetContractType exchange.GetContractType}، {@fun/Account/exchange.SetCurrency exchange.SetCurrency}
کےexchange.GetContractType()
فنکشن {@var/EXCHANGE exchange} ایکسچینج آبجیکٹ کی موجودہ ترتیب کے لئے معاہدے کا کوڈ حاصل کرنے کے لئے استعمال کیا جاتا ہے.
کےexchange.GetContractType()
فنکشن FMZ پلیٹ فارم کی طرف سے مقرر معاہدے کا کوڈ لوٹاتا ہے، مثال کے طور پر:this_week
, swap
، وغیرہ
سٹرنگ
تبادلہ.GetContractType()
function main () {
Log(exchange.SetContractType("this_week"))
Log(exchange.GetContractType())
}
def main():
Log(exchange.SetContractType("this_week"))
Log(exchange.GetContractType())
void main() {
Log(exchange.SetContractType("this_week"));
Log(exchange.GetContractType());
}
{@fun/Futures/exchange.SetContractType تبادلہ.SetContractType}
کےexchange.GetFundings()
فنکشن کا استعمال موجودہ مدت کے لئے فنڈنگ کی شرح کے اعداد و شمار حاصل کرنے کے لئے کیا جاتا ہے۔
کےexchange.GetFundings()
فنکشن {@struct/Funding Funding} ڈھانچے کی ایک صف واپس کرتا ہے جب ڈیٹا کی درخواست کامیاب ہو جاتی ہے ، اور جب ڈیٹا کی درخواست ناکام ہوجاتی ہے تو ایک null قدر واپس کرتا ہے۔
{@struct/Funding Funding} صف، صفر قدر
تبادلہ.GetFundings() exchange.GetFundings (علامت)
پیرامیٹرsymbol
سیٹ کرنے کے لئے استعمال کیا جاتا ہےٹرانزیکشن کا نشانیاٹرانزیکشن سمبل رینجپوچھ گچھ کی جائے گی.symbol
پیرامیٹر پاس نہیں کیا جاتا ہے، موجودہ ٹریڈنگ جوڑی اور معاہدے کا کوڈ کے طول و عرض کی حد میں ڈیفالٹ کے طور پر تمام آلات کی موجودہ فنڈنگ کی شرح کے اعداد و شمار کی درخواست کی جائے گی.
علامت غلط سٹرنگ
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-23 00:05:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDC"}]
*/
function main() {
// LPT_USDT.swap 4-hour period
var symbols = ["SOL_USDT.swap", "ETH_USDT.swap", "LTC_USDT.swap", "SOL_USDC.swap", "ETH_USDC.swap", "BTC_USD.swap", "BTC_USDT.quarter", "LPT_USDT.swap"]
for (var symbol of symbols) {
exchange.GetTicker(symbol)
}
var arr = []
var arrParams = ["no param", "LTC_USDT.swap", "USDT.swap", "USD.swap", "USDC.swap", "USDT.futures", "BTC_USDT.quarter"]
for (p of arrParams) {
if (p == "no param") {
arr.push(exchange.GetFundings())
} else {
arr.push(exchange.GetFundings(p))
}
}
var tbls = []
var index = 0
for (var fundings of arr) {
var tbl = {
"type": "table",
"title": arrParams[index],
"cols": ["Symbol", "Interval", "Time", "Rate"],
"rows": [],
}
for (var f of fundings) {
tbl["rows"].push([f.Symbol, f.Interval / 3600000, _D(f.Time), f.Rate * 100 + " %"])
}
tbls.push(tbl)
index++
}
LogStatus(_D(), "\n Requested market types:", symbols, "\n`" + JSON.stringify(tbls) + "`")
}
'''backtest
start: 2024-10-01 00:00:00
end: 2024-10-23 00:05:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDC"}]
'''
import json
def main():
# LPT_USDT.swap 4-hour period
symbols = ["SOL_USDT.swap", "ETH_USDT.swap", "LTC_USDT.swap", "SOL_USDC.swap", "ETH_USDC.swap", "BTC_USD.swap", "BTC_USDT.quarter", "LPT_USDT.swap"]
for symbol in symbols:
exchange.GetTicker(symbol)
arr = []
arrParams = ["no param", "LTC_USDT.swap", "USDT.swap", "USD.swap", "USDC.swap", "USDT.futures", "BTC_USDT.quarter"]
for p in arrParams:
if p == "no param":
arr.append(exchange.GetFundings())
else:
arr.append(exchange.GetFundings(p))
tbls = []
index = 0
for fundings in arr:
tbl = {
"type": "table",
"title": arrParams[index],
"cols": ["Symbol", "Interval", "Time", "Rate"],
"rows": [],
}
for f in fundings:
tbl["rows"].append([f["Symbol"], f["Interval"] / 3600000, _D(f["Time"]), str(f["Rate"] * 100) + " %"])
tbls.append(tbl)
index += 1
LogStatus(_D(), "\n Requested market types:", symbols, "\n`" + json.dumps(tbls) + "`")
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-23 00:05:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDC"}]
*/
void main() {
// LPT_USDT.swap 4-hour period
json arrSymbol = R"([])"_json;
std::string symbols[] = {"SOL_USDT.swap", "ETH_USDT.swap", "LTC_USDT.swap", "SOL_USDC.swap", "ETH_USDC.swap", "BTC_USD.swap", "BTC_USDT.quarter", "LPT_USDT.swap"};
for (const std::string& symbol : symbols) {
exchange.GetTicker(symbol);
arrSymbol.push_back(symbol);
}
std::vector<std::vector<Funding>> arr = {};
std::string arrParams[] = {"no param", "LTC_USDT.swap", "USDT.swap", "USD.swap", "USDC.swap", "USDT.futures", "BTC_USDT.quarter"};
for (const std::string& p : arrParams) {
if (p == "no param") {
arr.push_back(exchange.GetFundings());
} else {
arr.push_back(exchange.GetFundings(p));
}
}
json tbls = R"([])"_json;
int index = 0;
for (int i = 0; i < arr.size(); i++) {
auto fundings = arr[i];
json tbl = R"({
"type": "table",
"cols": ["Symbol", "Interval", "Time", "Rate"],
"rows": []
})"_json;
tbl["title"] = arrParams[index];
for (int j = 0; j < fundings.size(); j++) {
auto f = fundings[j];
// json arrJson = {f.Symbol, f.Interval / 3600000, _D(f.Time), string(f.Rate * 100) + " %"};
json arrJson = {f.Symbol, f.Interval / 3600000, _D(f.Time), f.Rate};
tbl["rows"].push_back(arrJson);
}
tbls.push_back(tbl);
index++;
}
LogStatus(_D(), "\n Requested market types:", arrSymbol.dump(), "\n`" + tbls.dump() + "`");
}
مستقبل کے تبادلے اعتراض کو کال کرنے کے لئے استعمال کریںexchange.GetFundings()
بیک ٹسٹنگ سسٹم میں فنکشن۔ کسی بھی مارکیٹ فنکشن کو کال کرنے سے پہلے ، گیٹ فنڈنگز صرف موجودہ ڈیفالٹ ٹریڈنگ جوڑی کے فنڈنگ ڈیٹا کو واپس کرتا ہے۔ مارکیٹ فنکشن کو کال کرنے کے بعد ، یہ تمام مطلوبہ اقسام کے فنڈنگ ڈیٹا کو واپس کرتا ہے۔ آپ مندرجہ ذیل ٹیسٹ مثال کا حوالہ دے سکتے ہیں:
مستقبل کے تبادلے کے لئے جو فنڈنگ کی شرح کے اعداد و شمار کے بیچ کی تلاش کی حمایت نہیں کرتے ہیں، اگرsymbol
پیرامیٹر سوال کی حد کے طور پر مخصوص ہے، مثال کے طور پر:USDT.swap
یاsymbol
پیرامیٹر منظور نہیں کیا جاتا ہے، انٹرفیس ایک غلطی کی اطلاع دے گا.GetFundings()
فیوچر ایکسچینج کے اس قسم کے اعتراض کا استعمال کرتے ہوئے، آپ کو وضاحت کرنا ضروری ہےsymbol
پیرامیٹر ایک مخصوص مستقل معاہدے کی قسم کے طور پر تاکہ اس قسم کے موجودہ فنڈنگ کی شرح کے اعداد و شمار کو تلاش کیا جاسکے۔
کےexchange.GetFundings()
فنکشن حقیقی ٹریڈنگ اور بیک ٹیسٹنگ سسٹم کی حمایت کرتا ہے.
تبادلے جو فنڈنگ کی شرح کے اعداد و شمار کے بیچ حصول کی حمایت نہیں کرتے ہیں: Futures_Bitget، Futures_OKX، Futures_MEXC، Futures_Deribit، Futures_Crypto.symbol
مخصوص علامت کوڈ کے ساتھ پیرامیٹر، مثال کے طور پر:ETH_USDT.swap
.
تبادلے جو حمایت نہیں کرتےexchange.GetFundings()
فنکشن:
فنکشن کا نام | غیر تعاون یافتہ اسپاٹ ایکسچینجز | غیر معاون فیوچر ایکسچینج |
---|---|---|
GetFundings | – | فیوچر_ڈیجی فائنکس |
{@struct/ فنڈنگ فنڈنگ}
کےexchange.SetBase()
فنکشن {@var/EXCHANGE exchange} ایکسچینج آبجیکٹ میں تشکیل کردہ ایکسچینج API انٹرفیس کا بیس ایڈریس مقرر کرنے کے لئے استعمال کیا جاتا ہے۔
تبادلہ.SetBase ((s)
کےs
پیرامیٹر تبادلہ API انٹرفیس بیس ایڈریس کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
s
سچ
سٹرنگ
function main() {
// Use default base address
Log(exchange.GetTicker())
// Switch to https://aws.okx.com
exchange.SetBase("https://aws.okx.com")
Log(exchange.GetTicker())
}
def main():
Log(exchange.GetTicker())
exchange.SetBase("https://aws.okx.com")
Log(exchange.GetTicker())
void main() {
Log(exchange.GetTicker());
exchange.SetBase("https://aws.okx.com");
Log(exchange.GetTicker());
}
ایکسچینج API بیس ایڈریس کو سوئچ کرنا بیک ٹیسٹنگ سسٹم میں معاون نہیں ہے ، کیونکہ بیک ٹیسٹنگ سسٹم ایک سینڈ باکس تخروپن کا ماحول ہے اور یہ واقعی ایکسچینج API انٹرفیس تک رسائی حاصل نہیں کرتا ہے۔
{@fun/Trade/exchange.IO exchange.IO}
کےexchange.GetBase()
موجودہ تبادلہ API انٹرفیس بیس ایڈریس حاصل کرنے کے لئے استعمال کیا جاتا ہے.
موجودہ تبادلہ API انٹرفیس بیس ایڈریس. سٹرنگ
تبادلہ.GetBase()
function main() {
Log(exchange.GetBase())
}
def main():
Log(exchange.GetBase())
void main() {
Log(exchange.GetBase());
}
{@fun/NetSettings/exchange.SetBase تبادلہ.SetBase}
کےexchange.SetProxy()
{@var/EXCHANGE exchange} ایکسچینج آبجیکٹ کی پراکسی ترتیب قائم کرنے کے لئے استعمال کیا جاتا ہے.
تبادلہ.SetProxy ((پروکسی)
کےproxy
پیرامیٹر پراکسی ترتیب کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
پراکسی
سچ
سٹرنگ
function main() {
exchange.SetProxy("socks5://192.168.1.10:8080")
// If you can't access the exchange ticker interface, set up an available ss5 proxy and you can access the ticker interface
Log(exchange.GetTicker())
}
def main():
exchange.SetProxy("socks5://192.168.1.10:8080")
Log(exchange.GetTicker())
void main() {
exchange.SetProxy("socks5://192.168.1.10:8080");
Log(exchange.GetTicker());
}
{@var/EXCHANGE تبادلہ} تبادلہ آبجیکٹ کی تشکیل کریںsocks5
پراکسی:
function main(){
exchange.SetProxy("ip://10.0.3.15")
// The requested IP address is 10.0.3.15
exchange.GetTicker()
}
def main():
exchange.SetProxy("ip://10.0.3.15")
exchange.GetTicker()
void main() {
exchange.SetProxy("ip://10.0.3.15");
exchange.GetTicker();
}
کے علاوہعالمی تفصیلات{@var/EXCHANGE exchange} ایکسچینج آبجیکٹ سے درخواست کے IP ایڈریس کی، {@var/EXCHANGE exchange} کی بنیاد پر ایک IP ایڈریس کی وضاحت کے لئے بھی معاونت ہے:
اگر پراکسی کی ترتیب ناکام ہوجاتی ہے تو،exchange.SetProxy()
فنکشن کال کیا جاتا ہے جب null لوٹ آئے گا.exchange.SetProxy()
تقریب کے لئے پراکسی مقرر کرتا ہےrest
صرف پروٹوکول۔ ہر {@var/EXCHANGE exchange} تبادلہ آبجیکٹ کے لئے ایک پراکسی مقرر کیا جاسکتا ہے ، اور پراکسی کی ترتیب کے بعد {@var/EXCHANGE exchange} تبادلہ آبجیکٹ سے منسلک تبادلہ انٹرفیس تک رسائی پراکسی کے ذریعے حاصل کی جائے گی۔
سیٹنگ کے لئے حمایتsocks5
پراکسی، پہلا تبادلہ اعتراض {@var/EXCHANGE تبادلہ} شامل کر رہا ہے یعنی:exchanges[0]
مثال کے طور پر:
exchange.SetProxy("socks5://127.0.0.1:8889")
.exchange.SetProxy("socks5://username:password@127.0.0.1:8889")
. username
صارف کا نام ہے اورpassword
پاس ورڈ ہے.exchange.SetProxy("")
.{@var/EXCHANGE تبادلہ} تبادلہ آبجیکٹ سے درخواست کا IP ایڈریس مقرر کرنے کی حمایت کرتا ہے،مجموعی طور پر مخصوص.
{@var/EXCHANGE تبادلہ}
کےexchange.SetTimeout()
تقریب کا استعمال کیا جاتا ہے وقت کی حد مقرر کرنے کے لئےrest
{@var/EXCHANGE exchange} تبادلہ آبجیکٹ کے لئے درخواست.
تبادلہ.سیٹ ٹائم آؤٹ ((ٹائم آؤٹ)
کےtimeout
پیرامیٹر کا استعمال ٹائم آؤٹ کی ترتیب کے لئے ملی سیکنڈ کی تعداد کی وضاحت کرنے کے لئے کیا جاتا ہے۔
ٹائم آؤٹ
سچ
نمبر
function main() {
exchange.SetTimeout(3000)
Log(exchange.GetTicker())
}
def main():
exchange.SetTimeout(3000)
Log(exchange.GetTicker())
void main() {
exchange.SetTimeout(3000);
Log(exchange.GetTicker());
}
پیرامیٹرtimeout
ایک ملی سیکنڈ کی قدر ہے، 1000 ملی سیکنڈ 1 سیکنڈ کے برابر ہے.rest
صرف پروٹوکول، پر ٹائم آؤٹ مقرر کرنے کے لئے استعمال کیاrest
درخواستیں، یہ صرف ایک بار مقرر کی طرف سے اثر انداز ہوتا ہے.exchange.SetTimeout(3000)
، مقرر کرتا ہےrest
کے لئے وقت کی درخواستexchange
تبادلہ آبجیکٹ کو 3 سیکنڈ تک۔ نیٹ ورک کی درخواستوں کے ساتھ افعال کو کال کرنا جیسےexchange.GetTicker()
کہ 3 سیکنڈ سے زیادہ کے لئے ایک جواب موصول نہیں ہوتا وقت ختم ہو جائے گا، اور تقریب کالز کہ وقت ختم ہو جائے گا null اقدار واپس آ جائیں گے.SetTimeout()
ایک گلوبل فنکشن نہیں ہے، یہ {@var/EXCHANGE exchange} تبادلہ آبجیکٹ کا ایک طریقہ ہے.
{@var/EXCHANGE تبادلہ}
ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم واقعیJavaScript
زبان کی حکمت عملی کو نظام کے نچلے حصے سے شروع کرتا ہے اور مندرجہ ذیل مقاصد کو نافذ کرتا ہے:
اشیاء | ہدایات | تبصرے |
---|---|---|
گھسائی ہوئی | ملٹی تھریڈ گلوبل آبجیکٹ | رکن کے فرائض:Thread , getThread , mainThread ، وغیرہ |
تار | تھریڈ آبجیکٹ | رکن کے فرائض:peekMessage , postMessage , join ، وغیرہ |
تھریڈلاک | تھریڈ لاک آبجیکٹ | رکن کے فرائض:acquire , release وہ تھریڈ ایگزیکشن فنکشن کے پیرامیٹرز کے طور پر تھریڈ ماحول میں منتقل کیے جا سکتے ہیں۔ |
تھریڈ واقعہ | ایونٹ آبجیکٹ | رکن کے فرائض:set , clear , wait , isSet . وہ موضوع کے عملدرآمد کے فنکشن کے پیرامیٹر کے طور پر موضوع کے ماحول میں منتقل کیا جا سکتا ہے. |
تھریڈCondition | شرط کا اعتراض | رکن کے فرائض:notify , notifyAll , wait , acquire , release . وہ موضوع کے عملدرآمد کے فنکشن کے پیرامیٹر کے طور پر موضوع کے ماحول میں منتقل کیا جا سکتا ہے. |
ThreadDict | لغت کا اعتراض | رکن کے فرائض:get , set وہ تھریڈ ایگزیکشن فنکشن کے پیرامیٹرز کے طور پر تھریڈ ماحول میں منتقل کیے جا سکتے ہیں۔ |
کےthreading
object ایک گلوبل ملٹی تھریڈنگ مینجمنٹ ٹول ہے جو بیک وقت تھریڈز ، تھریڈ لاکس ، اور حالت اشیاء بنانے جیسے افعال مہیا کرتا ہے۔ یہ سیکشن رکن افعال کا تعارف کراتا ہےthreading
اعتراض. یہ اعتراض صرف کی طرف سے حمایت کی ہےJavaScript
زبان کی حکمت عملی.
کےThread()
تقریب متوازی موضوعات تخلیق کرنے کے لئے استعمال کیا جاتا ہے.
کےThread()
فنکشن a لوٹاتا ہےThread
آبجیکٹ، جو تخلیق کردہ متوازی تھریڈز، تھریڈ مواصلات وغیرہ کا انتظام کرنے کے لئے استعمال ہوتا ہے۔
Thread
چیز
تھریڈ ((فنک،...آرگز) تھریڈ ((... آئٹمز)
پیرامیٹرfunc
ایک ہی وقت میں عملدرآمد کے لئے ایک فنکشن ہے (ریفرنس کے ذریعے منتقل) ، اور گمنام افعال میں منتقل کرنے کی حمایت کرتا ہے.func
متعدد پیرامیٹرز کو قبول کر سکتے ہیں، جس کے ذریعے منتقل کیا جائے گا...args
اسی وقت کے عملدرآمد کے دوران. لہذا، کے پیرامیٹر کی فہرستfunc
کے ساتھ ہم آہنگ ہونا ضروری ہے...args
.
فنکشن
سچ
فنکشن
پیرامیٹرarg
اصل پیرامیٹر ہے جو پاس کیا جاتا ہےfunc
(یعنی متوازی تھریڈ عملدرآمد تقریب) جب کال بیک عملدرآمد کیا جاتا ہے؛ متعدد پیرامیٹرز ہوسکتے ہیںarg
، اور پیرامیٹر کی فہرستfunc
کے ساتھ ہم آہنگ ہونا ضروری ہے...args
.
ارگ
غلط
string، number، bool، object، array، function، null value اور نظام کی حمایت کی دیگر اقسام
پیرامیٹرitem
ایک صف ہے جس میں فنکشن کے حوالہ جات اور ان کے پیرامیٹرز کو بیک وقت انجام دیا جائے گا۔item
پیرامیٹرز میں منتقل کیا جا سکتا ہے جبThread
function.
آئٹم سچ صف
function test1(a, b, c) {
Log("test1:", a, b, c)
}
function main() {
var t1 = threading.Thread(test1, 1, 2, 3)
var t2 = threading.Thread(function (msg) {
Log("msg:", msg)
}, "Hello thread2")
t1.join()
t2.join()
}
ایک کسٹم فنکشن اور ایک گمنام فنکشن دونوں کے لئے بیک وقت تھریڈز بنائیں.
function test1(msg) {
Log("msg:", msg)
test2("Hello test2")
}
function main() {
var t1 = threading.Thread(
[function(a, b, c) {Log(a, b, c)}, 1, 2, 3],
[test1, "Hello test1"],
[`function test2(msg) {Log("msg:", msg)}`])
t1.join()
}
استعمال کریںThread(...items)
متوازی موضوعات تخلیق کرنے اور متعدد افعال کو ترتیب سے انجام دینے کے لئے فارم.
function testFunc1(p) {
Log("testFunc1 p:", p)
}
function main() {
threading.Thread(function(pfn) {
var threadName = threading.currentThread().name()
var threadId = threading.currentThread().id()
pfn(`in thread threadName: ${threadName}, threadId: ${threadId}`)
}, testFunc1).join()
}
یہ متوازی طور پر انجام دیئے گئے افعال میں پیرامیٹرز کو منتقل کرنے کی حمایت کرتا ہے۔
function ml(input) {
const net = new brain.NeuralNetwork()
net.train([
{ input: [0, 0], output: [0] },
{ input: [0, 1], output: [1] },
{ input: [1, 0], output: [1] },
{ input: [1, 1], output: [0] },
])
return net.run(input)
}
function main() {
var ret = threading.Thread([ml, [1, 0]], [HttpQuery("https://unpkg.com/brain.js")]).join()
// ret: {"id":1,"terminated":false,"elapsed":337636000,"ret":{"0":0.9339330196380615}}
Log(ret)
}
یہ فنکشن سٹرنگز میں منتقل کرنے کی حمایت کرتا ہے اور بیک وقت کمپیوٹنگ کے لئے متحرک طور پر بیرونی لائبریریاں درآمد کرسکتا ہے۔
تھریڈ فنکشنfunc
میں منتقلThread()
متوازی عملدرآمد کے لئے فنکشن الگ تھلگ ماحول میں چلتا ہے ، لہذا تھریڈ کے باہر متغیرات کا براہ راست حوالہ نہیں دیا جاسکتا ہے ، اور جب حوالہ دیا جائے تو تالیف ناکام ہوجائے گی۔ اسی وقت ، تھریڈ کے اندر دوسرے بند ہونے والے افعال کے حوالہ جات کی حمایت نہیں کی جاتی ہے۔ پلیٹ فارم کے ذریعہ فراہم کردہ تمام API کو تھریڈ کے اندر بلایا جاسکتا ہے ، لیکن دوسرے صارف کے ذریعہ بیان کردہ افعال کو بلایا نہیں جاسکتا ہے۔
یہ بیک ٹسٹنگ سسٹم اور براہ راست تجارتی ماحول کی حمایت کرتا ہے۔ بیک ٹسٹنگ سسٹم میں صرف بیک وقت تھریڈ سے متعلق تمام افعال کوڈ کی مطابقت کے طور پر تعاون یافتہ ہیں اور بیک وقت تھریڈز کے ذریعہ واقعتا execute انجام نہیں دیئے جائیں گے ، لہذا وہ اس باب میں دہرائے نہیں جائیں گے۔
{@fun/Threads/threading/getThread getThread}، {@fun/Threads/threading/mainThread mainThread}، {@fun/Threads/threading/currentThread currentThread}، {@fun/Threads/threading/Lock Lock}، {@fun/Threads/threading/Condition Condition}، {@fun/Threads/threading/Event Event}، {@fun/Threads/threads/threading/Dict Dict}، {@fun/Threads/threading/pending pending}، {@fun/Threads/threads/threading/eventLoop}
کےgetThread()
تقریب مخصوص موضوع ID کی بنیاد پر موضوع اعتراض حاصل کرنے کے لئے استعمال کیا جاتا ہے.
کےgetThread()
فنکشن واپس کرتا ہےThread
پیرامیٹر کی طرف سے مخصوص threadId کے ساتھ اعتراض
Thread
چیز
getThread ((threadId) حاصل کریں
پیرامیٹرthreadId
تھریڈ آبجیکٹ آئی ڈی ہے۔ پیرامیٹر کی وضاحت کرکے متعلقہ تھریڈ آبجیکٹ حاصل کریں۔
ThreadId سچ نمبر
function main() {
var t1 = threading.Thread(function () {
Log("Hello thread1")
})
// The Thread object has a method: id(), which is used to get the thread ID. You can view the section of the document corresponding to the Thread object.
var threadId = t1.id()
var threadName = t1.name()
Log("threadId:", threadId, ", threadName:", threadName)
var t2 = threading.getThread(threadId)
Log(`threadId == t2.id():`, threadId == t2.id(), `, threadName == t2.name():`, threadName == t2.name())
}
مخصوص تھریڈ آبجیکٹ کو حاصل کریںthreadId
.
یہ بیک ٹیسٹنگ سسٹم اور لائیو ٹریڈنگ ماحول کی حمایت کرتا ہے.
اگر آپ حاصل کرنا چاہتے ہیں تھریڈ پر عملدرآمد کیا گیا ہے اور جاری کیا گیا ہے، آپ کو استعمال نہیں کر سکتے ہیںthreading.getThread(threadId)
حاصل کرنے کے لئے thread کے موضوع.
{@fun/Threads/threading/Thread Thread}، {@fun/Threads/threading/mainThread mainThread}، {@fun/Threads/threading/currentThread currentThread}، {@fun/Threads/threading/Lock Lock}، {@fun/Threads/threading/Condition Condition}، {@fun/Threads/threading/Event Event}، {@fun/Threads/threading/Dict Dict}، {@fun/Threads/threading/currentThread currentThread}، {@fun/Threads/threading/threading/Lock Lock}، {@fun/Threads/threading/eventLoop eventLoop}، {@fun/Threads/threads/threading/eventLoop}
کےmainThread()
فنکشن مرکزی موضوع کے موضوع کو حاصل کرنے کے لئے استعمال کیا جاتا ہے، یعنی موضوع جہاںmain()
حکمت عملی میں فنکشن واقع ہے.
کےmainThread()
فنکشن مرکزی موضوع کے موضوع کو واپس کرتا ہے.
Thread
چیز
اہم تھریڈ ((()
function main() {
Log("The threadId of the main thread:", threading.mainThread().id())
}
لے لوThread
مرکزی دھاگے کے اعتراض اور پیداوارthreadId
مرکزی موضوع کی.
function test() {
Log("Output the main thread ID in the test function:", threading.mainThread().id())
}
function main() {
var t1 = threading.Thread(test)
t1.join()
}
مرکزی تھریڈ کا تھریڈ آبجیکٹ بیک وقت تھریڈز میں بھی حاصل کیا جاسکتا ہے۔
یہ بیک ٹیسٹنگ سسٹم اور لائیو ٹریڈنگ ماحول کی حمایت کرتا ہے.
{@fun/Threads/getThread getThread}، {@fun/Threads/threading/Thread Thread}، {@fun/Threads/threading/currentThread currentThread}، {@fun/Threads/threading/Lock Lock}، {@fun/Threads/threading/Condition Condition}، {@fun/Threads/threading/Event Event}، {@fun/Threads/threads/threading/Dict Dict}، {@fun/Threads/threading/currentThread currentThread}، {@fun/Threads/threading/threading/Lock Lock}، {@fun/Threads/threading/eventLoop}، {@fun/Threads/threads/threading/eventLoop}، {@fun/threads/threads/threading/eventLoop}، {@fun/Threads/threads/threading/eventLoop}
کےcurrentThread()
تقریب موجودہ موضوع کے موضوع اعتراض حاصل کرنے کے لئے استعمال کیا جاتا ہے.
کےcurrentThread()
تقریب موجودہ موضوع کے موضوع اعتراض واپس.
Thread
چیز
موجودہ تھریڈ ((()
function test() {
Log("Id of the current thread:", threading.currentThread().id())
}
function main() {
var t1 = threading.Thread(test)
t1.join()
}
لے لوThread
موجودہ دھاگے کے اعتراض اور پیداوارthreadId
موجودہ دھاگے کی.
یہ بیک ٹیسٹنگ سسٹم اور لائیو ٹریڈنگ ماحول کی حمایت کرتا ہے.
{@fun/Threads/threading/Thread Thread}، {@fun/Threads/threading/mainThread mainThread}، {@fun/Threads/threading/Thread Thread}، {@fun/Threads/threading/Lock Lock}، {@fun/Threads/threading/threading/Condition Condition}، {@fun/Threads/threading/event Event}، {@fun/Threads/threads/threading/event Dict}، {@fun/Threads/threading/threading/threading/threading}، {@fun/Threads/threads/threading/threading/Look eventLoop}، {@fun/Threads/threading/eventLoop}، {@fun/Threads/threads/threading/eventLoop}
کےLock()
فنکشن ایک تھریڈ لاک آبجیکٹ بنانے کے لئے استعمال کیا جاتا ہے.
کےLock()
فنکشن ایک تھریڈ لاک آبجیکٹ لوٹاتا ہے.
ThreadLock
چیز
قفل (()
function consumer(productionQuantity, dict, lock) {
for (var i = 0; i < productionQuantity; i++) {
lock.acquire()
var count = dict.get("count")
Log("consumer:", count)
Sleep(1000)
lock.release()
}
}
function producer(productionQuantity, dict, lock) {
for (var i = 0; i < productionQuantity; i++) {
lock.acquire()
dict.set("count", i)
Log("producer:", i)
Sleep(1000)
lock.release()
}
}
function main() {
var dict = threading.Dict()
dict.set("count", -1)
var lock = threading.Lock()
var productionQuantity = 10
var producerThread = threading.Thread(producer, productionQuantity, dict, lock)
var consumerThread = threading.Thread(consumer, productionQuantity, dict, lock)
consumerThread.join()
producerThread.join()
}
دو متوازی موضوعات ایک مشترکہ وسائل تک رسائی حاصل.
یہ بیک ٹیسٹنگ سسٹم اور لائیو ٹریڈنگ ماحول کی حمایت کرتا ہے.
{@fun/Threads/threading/getThread getThread}، {@fun/Threads/threading/mainThread mainThread}، {@fun/Threads/threading/currentThread currentThread}، {@fun/Threads/threads/threading/ThreadThread}، {@fun/Threads/threads/threading/condition Condition}، {@fun/Threads/threads/threading/event Event}، {@fun/Threads/threads/threading/Dict Dict}، {@fun/Threads/threads/threading/pending pending}، {@fun/Threads/threads/threading/threading/eventLoop}، {@fun/Threads/threads/threads/eventLoop}
کےCondition()
فنکشن کا استعمال ایک شرط متغیر آبجیکٹ بنانے کے لئے کیا جاتا ہے ، جو ایک ملٹی تھریڈڈ ہم وقت سازی کے ماحول میں تھریڈز کے مابین ہم وقت سازی اور مواصلات کو حاصل کرنے کے لئے استعمال ہوتا ہے۔Condition()
، ایک تھریڈ انتظار کر سکتا ہے جب کچھ شرائط پوری نہیں ہوتی ہیں جب تک کہ دوسرا تھریڈ اسے مطلع نہ کرے کہ شرط پوری ہوگئی ہے۔
کےCondition()
فنکشن a لوٹاتا ہےThreadCondition
object.
ThreadCondition
چیز
حالت
function consumer(productionQuantity, dict, condition) {
for (var i = 0; i < productionQuantity; i++) {
condition.acquire()
while (dict.get("array").length == 0) {
condition.wait()
}
var arr = dict.get("array")
var count = arr.shift()
dict.set("array", arr)
Log("consumer:", count, ", array:", arr)
condition.release()
Sleep(1000)
}
}
function producer(productionQuantity, dict, condition) {
for (var i = 0; i < productionQuantity; i++) {
condition.acquire()
var arr = dict.get("array")
arr.push(i)
dict.set("array", arr)
Log("producer:", i, ", array:", arr)
condition.notify()
condition.release()
Sleep(1000)
}
}
function main() {
var dict = threading.Dict()
dict.set("array", [])
var condition = threading.Condition()
var productionQuantity = 10
var producerThread = threading.Thread(producer, productionQuantity, dict, condition)
var consumerThread = threading.Thread(consumer, productionQuantity, dict, condition)
consumerThread.join()
producerThread.join()
}
دو متوازی موضوعات ایک مشترکہ وسائل تک رسائی حاصل.
بیک ٹسٹنگ سسٹم اس فعالیت کو نافذ نہیں کرتا، یہ صرف اس کی وضاحت کرتا ہے.
{@fun/Threads/getThread getThread}، {@fun/Threads/threads/mainThread mainThread}، {@fun/Threads/threading/currentThread currentThread}، {@fun/Threads/threads/threading/Lock Lock}، {@fun/Threads/threads/threading/thread Thread}، {@fun/Threads/threads/threading/event Event}، {@fun/Threads/threads/threading/Dict Dict}، {@fun/Threads/threading/threading/pending pending}، {@fun/Threads/threading/threading/eventLoop}، {@fun/Threads/threads/threading/eventLoop}،
کےEvent()
تقریب ایک تخلیق کرنے کے لئے استعمال کیا جاتا ہےتھریڈ واقعہاعتراض، جو تھریڈز کے درمیان ہم وقت سازی کے لئے استعمال کیا جاتا ہے، جس سے ایک تھریڈ دوسرے تھریڈ سے نوٹیفکیشن یا سگنل کا انتظار کرسکتا ہے۔
کےEvent()
فنکشن a لوٹاتا ہےThreadEvent
object.
ThreadEvent
چیز
واقعہ
function consumer(productionQuantity, dict, pEvent, cEvent) {
for (var i = 0; i < productionQuantity; i++) {
while (dict.get("array").length == 0) {
pEvent.wait()
}
if (pEvent.isSet()) {
pEvent.clear()
}
var arr = dict.get("array")
var count = arr.shift()
dict.set("array", arr)
Log("consumer:", count, ", array:", arr)
cEvent.set()
Sleep(1000)
}
}
function producer(productionQuantity, dict, pEvent, cEvent) {
for (var i = 0; i < productionQuantity; i++) {
while (dict.get("array").length != 0) {
cEvent.wait()
}
if (cEvent.isSet()) {
cEvent.clear()
}
var arr = dict.get("array")
arr.push(i)
dict.set("array", arr)
Log("producer:", i, ", array:", arr)
pEvent.set()
Sleep(1000)
}
}
function main() {
var dict = threading.Dict()
dict.set("array", [])
var pEvent = threading.Event()
var cEvent = threading.Event()
var productionQuantity = 10
var producerThread = threading.Thread(producer, productionQuantity, dict, pEvent, cEvent)
var consumerThread = threading.Thread(consumer, productionQuantity, dict, pEvent, cEvent)
consumerThread.join()
producerThread.join()
}
دو متوازی موضوعات ایک مشترکہ وسائل تک رسائی حاصل.
یہ بیک ٹیسٹنگ سسٹم اور لائیو ٹریڈنگ ماحول کی حمایت کرتا ہے.
{@fun/Threads/threading/getThread getThread}، {@fun/Threads/threading/mainThread mainThread}، {@fun/Threads/threading/currentThread currentThread}، {@fun/Threads/threads/threading/Lock Lock}، {@fun/Threads/threads/threading/Condition Condition}، {@fun/Threads/threads/threading/Thread Thread}، {@fun/Threads/threads/threading/Dict Dict}، {@fun/Threads/threads/threading/pending pending}، {@fun/Threads/threads/threading/eventLoop}
کےDict()
تقریب متوازی موضوعات پر منتقل کرنے کے لئے ایک لغت اعتراض تخلیق کرنے کے لئے استعمال کیا جاتا ہے.
کےDict()
فنکشن a لوٹاتا ہےThreadDict
object.
ThreadDict
چیز
ڈکٹیٹ
function threadFun1(obj) {
obj["age"] = 100
while (true) {
Log("threadFun1 obj:", obj)
Sleep(5000)
}
}
function threadFun2(obj) {
while (true) {
Log("threadFun2 obj:", obj)
Sleep(5000)
}
}
function main() {
var obj = {"age": 10}
var t1 = threading.Thread(threadFun1, obj)
var t2 = threading.Thread(threadFun2, obj)
t1.join()
t2.join()
}
ایک عام آبجیکٹ کو متوازی تھریڈ ایگزیکشن فنکشن میں منتقل کریں تاکہ یہ جانچنے کے لئے کہ آیا آبجیکٹ کی کلید کی قیمت میں ترمیم کرنے سے دوسرے تھریڈز میں آبجیکٹ کی کلید کی قیمت میں تبدیلی آئے گی۔
function threadFun1(threadDict) {
threadDict.set("age", 100)
while (true) {
Log(`threadFun1 threadDict.get("age"):`, threadDict.get("age"))
Sleep(5000)
}
}
function threadFun2(threadDict) {
while (true) {
Log(`threadFun2 threadDict.get("age"):`, threadDict.get("age"))
Sleep(5000)
}
}
function main() {
var threadDict = threading.Dict()
threadDict.set("age", 10)
var t1 = threading.Thread(threadFun1, threadDict)
var t2 = threading.Thread(threadFun2, threadDict)
t1.join()
t2.join()
}
پاس کریںThreadDict
کی طرف سے پیدا کیا اعتراضDict()
فنکشن کو متوازی تھریڈ ایگزیکیوشن فنکشن سے جوڑنا، اور یہ جانچنا کہ آیا آبجیکٹ کی کلید کی قدر میں ترمیم کرنے سے دیگر تھریڈز میں آبجیکٹ کی کلید کی قدر میں تبدیلی آئے گی۔
جب ایک عام اعتراض کو متوازی تھریڈ فنکشن میں منتقل کیا جاتا ہے تو ، اسے گہری کاپی کے طور پر منتقل کیا جاتا ہے۔ متوازی تھریڈ میں کلیدی قدر میں ترمیم کرنے سے دوسرے تھریڈز میں لغت متاثر نہیں ہوگی۔
یہ بیک ٹیسٹنگ سسٹم اور لائیو ٹریڈنگ ماحول کی حمایت کرتا ہے.
{@fun/Threads/threading/getThread getThread}، {@fun/Threads/threading/mainThread mainThread}، {@fun/Threads/threading/currentThread currentThread}، {@fun/Threads/threading/Lock Lock}، {@fun/Threads/threading/Condition Condition}، {@fun/Threads/threading/Event Event}، {@fun/Threads/threading/threading/Thread Thread}، {@fun/Threads/threading/threading/pending pending}، {@fun/Threads/threading/eventLoop}، {@fun/Threads/threading/eventLoop}، {@fun/Threads/threading/threading/eventLoop}،
کےpending
تقریب موجودہ حکمت عملی پروگرام میں چل رہا متوازی موضوعات کی تعداد حاصل کرنے کے لئے استعمال کیا جاتا ہے.
کےpending()
فنکشن متوازی موضوعات کی تعداد واپس کرتا ہے کہ موجودہ حکمت عملی پروگرام چل رہا ہے.
نمبر
زیر التواء
function threadFun1() {
Log("threadFun1")
Sleep(3000)
}
function threadFun2() {
for (var i = 0; i < 3; i++) {
LogStatus(_D(), "print from threadFun2")
Sleep(3000)
}
}
function main() {
Log(`begin -- threading.pending():`, threading.pending())
var t1 = threading.Thread(threadFun1)
var t2 = threading.Thread(threadFun2)
Log(`after threading.Thread -- threading.pending():`, threading.pending())
t1.join()
t2.join()
Log(`after thread.join -- threading.pending():`, threading.pending())
}
دو بیک وقت چل رہا موضوعات بنائیں اور کال کریںpending()
مختلف وقت نوڈس پر کام.
جب حکمت عملیmain()
فنکشن چلانے شروع ہوتا ہے، فنکشن کو کال کریںpending()
براہ راست 1 واپس آئے گا، کیونکہ مرکزی دھاگہ جہاں حکمت عملیmain()
تقریب واقع ہے بھی ایک زیر التواء موضوع ہے.
یہ بیک ٹیسٹنگ سسٹم اور لائیو ٹریڈنگ ماحول کی حمایت کرتا ہے.
{@fun/Threads/threading/getThread getThread}، {@fun/Threads/threading/mainThread mainThread}، {@fun/Threads/threading/currentThread currentThread}، {@fun/Threads/threading/Lock Lock}، {@fun/Threads/threading/Condition Condition}، {@fun/Threads/threading/Event Event}، {@fun/Threads/threading/Dict Dict}، {@fun/Threads/threading/Thread Thread}، {@fun/Threads/threading/eventLoop}، {@fun/Threads/threading/eventLoop}، {@fun/Threads/threads/threading/eventLoop}،
Thread
اشیاء کی طرف سے پیدا یا واپس کیا جا سکتا ہےthreading.Thread()
, threading.getThread()
, threading.mainThread()
، اورthreading.currentThread()
.
کےpeekMessage()
ایک موضوع سے ایک پیغام حاصل کرنے کے لئے استعمال کیا جاتا ہے.
کےpeekMessage()
فنکشن موجودہ تھریڈ آبجیکٹ سے منسلک تھریڈ کے ذریعہ موصولہ پیغام کو لوٹاتا ہے۔
سٹرنگ، نمبر، بول، آبجیکٹ، صف، null value اور نظام کی حمایت کی دیگر اقسام
peekMessage() peekMessage ((ٹائم آؤٹ)
پیرامیٹرtimeout
is the timeout setting. یہ پیرامیٹر کے ذریعہ طے شدہ ملی سیکنڈ کی تعداد کو بلاک کرے گا اور انتظار کرے گا اور ڈیٹا واپس کرے گا۔ اگر کوئی ڈیٹا نہیں ہے اور ٹائم آؤٹ حد سے زیادہ ہے تو ، ایک null قدر واپس کردی جائے گی۔ اگرtimeout
0 پر مقرر کیا جاتا ہے یاtimeout
پیرامیٹر منظور نہیں کیا جاتا ہے، اس کا مطلب یہ ہے کہ عمل بلاک اور انتظار کریں گے جب تک چینل سے ڈیٹا موصول نہیں ہوتا.timeout
- 1 پر مقرر کیا گیا ہے، اس کا مطلب یہ ہے کہ عمل کو فوری طور پر ڈیٹا کو روکنے اور واپس نہیں کرے گا. اگر کوئی ڈیٹا نہیں ہے تو، ایک null قدر واپس آ جائے گی.
ٹائم آؤٹ غلط نمبر
function main() {
var t1 = threading.Thread(function() {
for (var i = 0; i < 10; i++) {
Log("thread1 postMessage():", i)
threading.mainThread().postMessage(i)
Sleep(500)
}
})
while (true) {
var msg = threading.currentThread().peekMessage()
Log("main peekMessage():", msg)
if (msg == 9) {
break
}
Sleep(1000)
}
t1.join()
}
ایک متوازی موضوع سے مرکزی موضوع پر پیغامات بھیجیں.
پروگرام لکھتے وقت ہمیں تھریڈ ڈیڈ لاک کے مسائل پر توجہ دینے کی ضرورت ہے۔
{@fun/Threads/Thread/postMessage postMessage}، {@fun/Threads/Thread/join join}، {@fun/Threads/Thread/terminate terminate}، {@fun/Threads/Thread/getData getData}، {@fun/Threads/Thread/setData setData}، {@fun/Threads/Thread/id id}، {@fun/Threads/Threads/Thread/join name}، {@Threads/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop}، {@fun/Threads/eventLoop}،
کےpostMessage()
ایک موضوع کو ایک پیغام بھیجنے کے لئے استعمال کیا جاتا ہے.
پوسٹپیغام (msg)
پیرامیٹرmsg
ہے کہ پیغام بھیجا جائے.
پی ایس جی سچ نظام کی طرف سے حمایت کی کسی بھی قسم، جیسے تار، نمبر، بول، اعتراض، صف، تقریب، صفر قدر، وغیرہ.
function main() {
var t1 = threading.Thread(function() {
for (var i = 0; i < 10; i++) {
Log("thread1 postMessage():", i)
threading.mainThread().postMessage(i)
Sleep(500)
}
})
for (var i = 0; i < 10; i++) {
var event = threading.mainThread().eventLoop()
Log("main event:", event)
Sleep(500)
}
t1.join()
}
بیک وقت تھریڈز میں پیغامات بھیجیں اور استعمال کریںeventLoop()
پیغامات کی اطلاع موصول کرنے کے لیے۔
function main() {
threading.mainThread().postMessage(function(msg) {
Log("func from mainThread, msg:", msg)
})
threading.Thread(function() {
var func = threading.mainThread().peekMessage()
func("in " + threading.currentThread().name())
}).join()
}
یہ ایک تقریب بھیجنے کی حمایت کرتا ہے.
جب تھریڈpostMessage()
ایک سگنل یا اعداد و شمار بھیجنے کے لئے تقریب، ایک پیغام واقعہ بھی پیدا کیا جاتا ہے.eventLoop()
پیغام کی اطلاعات وصول کرنے کا فنکشن۔
{@fun/Threads/Thread/peekMessage peekMessage}، {@fun/Threads/Thread/join join}، {@fun/Threads/Thread/terminate terminate}، {@fun/Threads/Thread/getData getData}، {@fun/Threads/Thread/setData set}، {@fun/Threads/Thread/id id}، {@fun/Threads/Threads/Thread/name name join}، {@fun/Threads/Thread/terminate terminate}، {@fun/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/Threads/eventLoop eventLoop}، {@fun/Threads/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop}، {@fun/
کےjoin()
فنکشن کا استعمال تھریڈ کے باہر نکلنے اور سسٹم کے وسائل کی بازیافت کے انتظار میں کیا جاتا ہے۔
کےThreadRet
چیزعملدرآمد کے نتائج کے بارے میں اعداد و شمار پر مشتمل ہے. خصوصیات میں مندرجہ ذیل شامل ہیں:
ThreadRet
چیز
شامل ہو جاؤ شمولیت ((ٹائم آؤٹ)
کےtimeout
پیرامیٹر تھریڈ ختم ہونے کا انتظار کرنے کے لئے ملی سیکنڈ میں ٹائم آؤٹ مقرر کرنے کے لئے استعمال کیا جاتا ہے.timeout
پیرامیٹر 0 پر مقرر کیا جاتا ہے یاtimeout
پیرامیٹر مقرر نہیں ہے،join()
تقریب بلاک کریں گے اور انتظار کریں جب تک موضوع کو ختم عملدرآمد.timeout
پیرامیٹر -1 پر مقرر کیا جاتا ہے،join()
تقریب فوری طور پر واپس آ جائے گا.
ٹائم آؤٹ غلط نمبر
function main() {
var t1 = threading.Thread(function() {
Log("Hello thread1")
Sleep(5000)
})
var ret = t1.join(1000)
Log("ret:", ret) // ret: undefined
ret = t1.join()
Log("ret:", ret) // ret: {"id":1,"terminated":false,"elapsed":5003252000}
}
ٹیسٹ کریںjoin()
ٹائم آؤٹ کے لئے تقریب اور واپسی کی قیمت آؤٹ پٹ.
کےjoin()
فنکشن اوقات باہر اور واپسیundefined
.
{@fun/Threads/Thread/peekMessage peekMessage}، {@fun/Threads/Thread/postMessage postMessage}، {@fun/Threads/Thread/terminate terminate}، {@fun/Threads/Thread/getData getData}، {@fun/Threads/Thread/setData setData}، {@fun/Threads/Threads/Thread/id id}، {@fun/Threads/Threads/Thread/name name}، {@fun/Threads/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/Thread/eventLoop eventLoop}
کےterminate()
فنکشن کا استعمال تھریڈ کو زبردستی ختم کرنے اور تخلیق شدہ تھریڈ کے ذریعہ استعمال ہونے والے ہارڈ ویئر وسائل کو جاری کرنے کے لئے کیا جاتا ہے۔
ختم کریں
function main() {
var t1 = threading.Thread(function() {
for (var i = 0; i < 10; i++) {
Log("thread1 i:", i)
Sleep(1000)
}
})
Sleep(3000)
t1.terminate()
Log("after t1.terminate()")
while (true) {
LogStatus(_D())
Sleep(1000)
}
}
کسی تھریڈ کے عمل کو زبردستی ختم کریں۔ تھریڈ کو زبردستی ختم کرنے کے بعد ، اس تھریڈ سے لاگ میں کوئی آؤٹ پٹ نہیں ہوگا۔
تاروں کے لئے جو طاقت کے ذریعے ختم ہوتے ہیںterminate()
تقریب، ہم اب استعمال نہیں کر سکتے ہیںjoin()
ان کو ختم کرنے کے لئے انتظار کرنے کے لئے تقریب.
{@fun/Threads/Thread/peekMessage peekMessage}، {@fun/Threads/Thread/postMessage postMessage}، {@fun/Threads/Thread/join join}، {@fun/Threads/Thread/getData getData}، {@fun/Threads/Thread/setData setData}، {@fun/Threads/Threads/Thread/id id}، {@fun/Threads/Threads/Thread/name name}، {@fun/Threads/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLo
کےgetData()
تقریب تھریڈ ماحول میں ریکارڈ متغیرات تک رسائی کے لئے استعمال کیا جاتا ہے. ڈیٹا درست ہے جب تھریڈ کو عملدرآمد نہیں کیا ہےjoin()
تقریب (کامیابی سے باہر نکلنے کے لئے انتظار کر رہا ہے) اور عملدرآمد نہیں کیا ہےterminate()
فنکشن (فورس کے ذریعے دھاگے کو ختم کرنا) ۔
کےgetData()
تقریب کی کلید کی قیمت کے مساوی لوٹاتا ہےkey
موجودہ تھریڈ سیاق و سباق میں ذخیرہ کردہ کلیدی قدر جوڑی میں پیرامیٹر.
سٹرنگ، نمبر، بول، آبجیکٹ، صف، null value اور نظام کی حمایت کی دیگر اقسام
getData (ڈیٹا حاصل کریں)) getData ((کلید)
کےkey
پیرامیٹر ذخیرہ شدہ کلید-قدر جوڑی کا کلیدی نام ہے۔
چابی سچ سٹرنگ
function main() {
var t1 = threading.Thread(function() {
for (var i = 0; i < 5; i++) {
threading.currentThread().setData("count", i)
Log(`setData("count"):`, i)
Sleep(1000)
}
})
for (var i = 0; i < 5; i++) {
var count = threading.getThread(t1.id()).getData("count")
Log(`getData("count"):`, count)
Sleep(1000)
}
t1.join()
}
کلید کی قدر ریکارڈ کریںcount
متوازی موضوع ماحول میں، اور پھر کی کلید قدر پڑھcount
مرکزی موضوع میں.
{@fun/Threads/Thread/peekMessage peekMessage}، {@fun/Threads/Thread/postMessage postMessage}، {@fun/Threads/Thread/join join}، {@fun/Threads/Thread/terminate terminate}، {@fun/Threads/Thread/setData set}، {@fun/Threads/Thread/id id}، {@fun/Threads/Thread/name name name}، {@fun/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop}، {@fun/Thre
کےsetData()
تقریب تھریڈ سیاق و سباق میں متغیرات کو ذخیرہ کرنے کے لئے استعمال کیا جاتا ہے.
setData ((کلید، قدر)
کےkey
پیرامیٹر استعمال کیا جاتا ہے ذخیرہ شدہ کلید قدر جوڑی کے کلید نام کی وضاحت کرنے کے لئے.
چابی
سچ
سٹرنگ
کےvalue
پیرامیٹر استعمال کیا جاتا ہے ذخیرہ شدہ کلید-قدر جوڑی کی کلید کی قیمت کی وضاحت کرنے کے لئے.
قیمت سچ نظام کی طرف سے حمایت کی کسی بھی قسم، جیسے تار، نمبر، بول، اعتراض، صف، تقریب، صفر قدر، وغیرہ.
function main() {
var t1 = threading.Thread(function() {
threading.currentThread().setData("data", 100)
})
Sleep(1000)
Log(`t1.getData("data"):`, t1.getData("data"))
t1.join()
}
متوازی موضوع میں کلیدی قدر جوڑی مقرر کریں اور مرکزی موضوع میں کلیدی قدر جوڑی پڑھیں.
function main() {
threading.mainThread().setData("func2", function(p) {
Log("func2 p:", p)
})
var t1 = threading.Thread(function() {
threading.currentThread().setData("func1", function(p) {
Log("func1 p:", p)
})
var func2 = threading.mainThread().getData("func2")
func2("test2")
})
Sleep(1000)
var func1 = t1.getData("func1")
func1("test1")
t1.join()
}
یہ فنکشن میں کلیدی قدر منتقل کرنے کی حمایت کرتا ہے.
اعداد و شمار درست ہے جب موضوع نے عملدرآمد نہیں کیا ہےjoin()
تقریب (کامیابی سے باہر نکلنے کے لئے انتظار کر رہا ہے) اور عملدرآمد نہیں کیا ہےterminate()
تقریب (فورس تھریڈ ختم). پیرامیٹر کی قدرvalue
ایک serializable متغیر ہونا ضروری ہے.
{@fun/Threads/Thread/peekMessage peekMessage}، {@fun/Threads/Thread/postMessage postMessage}، {@fun/Threads/Thread/join join}، {@fun/Threads/Thread/terminate terminate}، {@fun/Threads/Thread/getData getData}، {@fun/Threads/Threads/id id}، {@fun/Threads/Thread/name name name}، {@fun/Threads/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}،
کےid()
فنکشن واپس کرنے کے لئے استعمال کیا جاتا ہےthreadId
موجودہ multithreaded اعتراض مثال کے.
کی واپسی کی قیمتid()
فنکشن ہےthreadId
.
نمبر
id()
function main() {
var t1 = threading.Thread(function() {
threading.currentThread().setData("data", 100)
})
Log(`t1.id():`, t1.id())
t1.join()
}
ایک بیک وقت چل رہا تھریڈ بنائیں اور آؤٹ پٹthreadId
مرکزی موضوع میں اس متوازی موضوع کے.
{@fun/Threads/Thread/peekMessage peekMessage}، {@fun/Threads/Thread/postMessage postMessage}، {@fun/Threads/Thread/join join}، {@fun/Threads/Thread/terminate terminate}، {@fun/Threads/Thread/getData getData}، {@fun/Threads/Threads/setData set}، {@fun/Threads/Thread/name name name}، {@fun/Threads/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/thread/eventLoop eventLoop}، {@fun/Threads/thread/eventLoop eventLoop}، {@fun/Threads/eventLoop eventLoop}، {@fun/threads
کےname()
موجودہ multithreaded اعتراض مثال کا نام واپس کرنے کے لئے استعمال کیا جاتا ہے.
کےname()
فنکشن متوازی تھریڈ کا نام لوٹاتا ہے۔
سٹرنگ
نام
function main() {
var t1 = threading.Thread(function() {
threading.currentThread().setData("data", 100)
})
Log(`t1.name():`, t1.name()) // t1.name(): Thread-1
t1.join()
}
متوازی تھریڈ بنائیں اور مرکزی تھریڈ میں متوازی تھریڈ کا نام آؤٹ پٹ کریں۔
{@fun/Threads/Thread/peekMessage peekMessage}، {@fun/Threads/Thread/postMessage postMessage}، {@fun/Threads/Thread/join join}، {@fun/Threads/Thread/terminate terminate}، {@fun/Threads/Thread/getData getData}، {@fun/Threads/Threads/setData set}، {@fun/Threads/Threads/Thread/id id}، {@fun/Threads/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/Thread/eventLoop eventLoop}، {@fun/Threads/Thread/eventLoop eventLoop}، {
کےeventLoop()
تقریب موضوع کی طرف سے موصول ہونے والے واقعات کے لئے سننے کے لئے استعمال کیا جاتا ہے.
کےeventLoop()
تقریب موجودہ موضوع کی طرف سے موصول ہونے والے واقعہ کی معلومات واپس کرتا ہے.واقعہ کی معلومات کی ساخت.
آبجیکٹ، صفر قدر
ایونٹ لوپ ((() ایونٹ لوپ (ٹائم آؤٹ)
پیرامیٹرtimeout
ملی سیکنڈ میں ٹائم آؤٹ کی ترتیب ہے. اگر پیرامیٹرtimeout
0 پر مقرر کیا گیا ہے تو ، یہ واپسی سے پہلے کسی ایونٹ کے ہونے کا انتظار کرے گا۔ اگر یہ 0 سے زیادہ ہے تو ، یہ ایونٹ کا انتظار کرنے کا وقت طے کرے گا۔ اگر یہ 0 سے کم ہے تو ، یہ فوری طور پر تازہ ترین واقعہ واپس کرے گا۔
ٹائم آؤٹ غلط نمبر
function main() {
var t1 = threading.Thread(function() {
while (true) {
var eventMsg = threading.currentThread().eventLoop() // Blocking wait
// 2024-11-14 10:14:18 thread1 eventMsg: {"Seq":1,"Event":"thread","ThreadId":0,"Index":1,"Queue":0,"Nano":1731550458699947000}
Log(_D(), "thread1 eventMsg:", eventMsg)
}
})
var t2 = threading.Thread(function() {
while (true) {
var eventMsg = threading.currentThread().eventLoop(-1) // Return immediately
Log(_D(), "thread2 eventMsg:", eventMsg)
Sleep(5000)
}
})
var t3 = threading.Thread(function() {
while (true) {
var eventMsg = threading.currentThread().eventLoop(3000) // Set a 3 second timeout
Log(_D(), "thread3 eventMsg:", eventMsg)
}
})
t1.postMessage("Hello ", t1.name())
t2.postMessage("Hello ", t2.name())
t3.postMessage("Hello ", t3.name())
t1.join()
t2.join()
t3.join()
}
تین تھریڈز کو بیک وقت چلائیں اور موصولہ واقعہ کی معلومات کو آؤٹ پٹ کریں۔ اگر ٹائم آؤٹ ہوتا ہے یا فنکشن فوری طور پر واپس آجاتا ہے تو ، آؤٹ پٹ ویلیو null ہے۔
پروسیسنگ میکانزمeventLoop()
تقریب عالمی تقریب کے طور پر ایک ہی ہےEventLoop()
.
{@fun/Threads/Thread/peekMessage peekMessage}، {@fun/Threads/Thread/postMessage postMessage}، {@fun/Threads/Thread/join join}، {@fun/Threads/Thread/terminate terminate}، {@fun/Threads/Thread/getData getData}، {@fun/Threads/Threads/setData setData}، {@fun/Threads/Thread/id id}، {@fun/Threads/Threads/Thread/name name}، {@fun/Threads/name name}، {@fun/Threads/Thread/name name name}،
تھریڈ لاک آبجیکٹ، کثیر تھریڈ مطابقت پذیری پروسیسنگ کے لئے استعمال کیا جاتا ہے.
کےacquire()
فنکشن کا استعمال تھریڈ لاک (لاک) کی درخواست کرنے کے لئے کیا جاتا ہے۔
حاصل کرنا
براہ مہربانی ملاحظہ کریںthreading.Lock()
مثالوں کے لئے سیکشن.
کےacquire()
تقریب ایک موضوع مقفل کرنے کی درخواست کرنے کے لئے استعمال کیا جاتا ہے.acquire()
تھریڈ لاک آبجیکٹ کی تقریب ، یہ لاک حاصل کرنے کی کوشش کرتا ہے۔ اگر لاک فی الحال کسی دوسرے تھریڈ کے ذریعہ نہیں رکھا گیا ہے تو ، کال کرنے والا تھریڈ لاک کو کامیابی کے ساتھ حاصل کرتا ہے اور عملدرآمد جاری رکھتا ہے۔ اگر لاک پہلے ہی کسی دوسرے تھریڈ کے ذریعہ رکھا گیا ہے تو ، تھریڈ کال کرنے والاacquire()
جب تک قفل کو جاری کیا جاتا ہے بلاک کیا جائے گا.
{@fun/Threads/threading/Lock Lock}، {@fun/Threads/ThreadLock/release release}
کےrelease()
فنکشن کا استعمال تھریڈ لاک (انلاک) کو کھولنے کے لئے کیا جاتا ہے۔
رہائی
function consumer(productionQuantity, dict, pLock, cLock) {
for (var i = 0; i < productionQuantity; i++) {
pLock.acquire()
cLock.acquire()
var arr = dict.get("array")
var count = arr.shift()
dict.set("array", arr)
Log("consumer:", count, ", array:", arr)
cLock.release()
Sleep(1000)
pLock.release()
}
}
function producer(productionQuantity, dict, pLock, cLock) {
for (var i = 0; i < productionQuantity; i++) {
cLock.acquire() // cLock.acquire() placed after pLock.acquire() will not cause deadlock
pLock.acquire()
var arr = dict.get("array")
arr.push(i)
dict.set("array", arr)
Log("producer:", i, ", array:", arr)
pLock.release()
Sleep(1000)
cLock.release()
}
}
function main() {
var dict = threading.Dict()
dict.set("array", [])
var pLock = threading.Lock()
var cLock = threading.Lock()
var productionQuantity = 10
var producerThread = threading.Thread(producer, productionQuantity, dict, pLock, cLock)
var consumerThread = threading.Thread(consumer, productionQuantity, dict, pLock, cLock)
consumerThread.join()
producerThread.join()
}
تعطل کے منظرنامے کی جانچ
یہ نوٹ کیا جانا چاہئے کہ تاروں کے تالے کا غلط استعمال جمود کا باعث بن سکتا ہے۔
{@fun/Threads/threading/Lock Lock}، {@fun/Threads/ThreadLock/acquire acquire}
ایونٹ آبجیکٹ، کثیر تھریڈ ایونٹ نوٹیفکیشن اور سگنل کے لئے استعمال کیا جاتا ہے.
کےset()
تقریب واقعات (سیٹ سگنل) کو مطلع کرنے کے لئے استعمال کیا جاتا ہے.
سیٹ (()
براہ مہربانی ملاحظہ کریںthreading.Event()
مثالوں کے لئے سیکشن.
اگر سگنل کا استعمال کرتے ہوئے مقرر کیا گیا ہےset()
، یہ دوبارہ مقرر نہیں کیا جا سکتا. ہم سگنل کو صاف کرنے اور اسے دوبارہ مقرر کرنے کی ضرورت ہے.
{@fun/Threads/ThreadEvent/clear clear}، {@fun/Threads/ThreadEvent/wait wait}، {@fun/Threads/ThreadEvent/isSet isSet}
کےclear()
سگنل کو صاف کرنے کے لئے استعمال کیا جاتا ہے.
صاف (()
براہ مہربانی ملاحظہ کریںthreading.Event()
مثالوں کے لئے سیکشن.
{@fun/Threads/ThreadEvent/set set}، {@fun/Threads/ThreadEvent/wait wait}، {@fun/Threads/ThreadEvent/isSet isSet}
کےwait()
تقریب ایک واقعہ (سگنل) انتظار مقرر کرنے کے لئے استعمال کیا جاتا ہے، اور واقعہ (سگنل) مقرر کیا جاتا ہے اس سے پہلے بلاک کرے گا؛ یہ ایک ٹائم آؤٹ پیرامیٹر کی ترتیب کی حمایت کرتا ہے.
کےwait()
فنکشن واپس کرتا ہے کہ آیا ٹائم آؤٹ ہوا ہے۔ اگر ایسا ہے تو ، یہ ایک حقیقی قدر واپس کرتا ہے۔
بول
انتظار کرو انتظار (ٹائم آؤٹ)
کےtimeout
پیرامیٹر ملسی سیکنڈ میں انتظار کا وقت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
ٹائم آؤٹ غلط نمبر
function main() {
var event = threading.Event()
var t1 = threading.Thread(function(event) {
var ret = event.wait(100)
Log(`event.wait(100):`, ret)
ret = event.wait()
Log(`event.wait():`, ret)
}, event)
Sleep(1000)
event.set()
t1.join()
}
کی واپسی کی قیمت کی جانچ کریںwait()
function.
{@fun/Threads/ThreadEvent/set set}، {@fun/Threads/ThreadEvent/clear clear}، {@fun/Threads/ThreadEvent/isSet isSet}
کےisSet()
تقریب کا استعمال کیا جاتا ہے اس بات کا تعین کرنے کے لئے کہ آیا ایک واقعہ (سگنل) مقرر کیا گیا ہے.
کےisSet()
فنکشن لوٹاتا ہے کہ آیا واقعہ (سگنل) مقرر کیا گیا ہے۔ اگر واقعہ (سگنل) مقرر کیا گیا ہے تو ، یہ ایک حقیقی قدر لوٹاتا ہے۔
بول
isSet()
براہ مہربانی ملاحظہ کریںthreading.Event()
مثالوں کے لئے سیکشن.
{@fun/Threads/ThreadEvent/set set}، {@fun/Threads/ThreadEvent/clear clear}، {@fun/Threads/ThreadEvent/wait wait}
حالت کا اعتراض، کثیر تھریڈ ہم وقت سازی کے لئے استعمال کیا جاتا ہے.
کےnotify()
فنکشن انتظار میں تھریڈ (اگر کوئی ہے تو) کو بیدار کرنے کے لئے استعمال کیا جاتا ہے. صرف تھریڈ ہے کہ بلایا ہےwait()
طریقہ کار جاگ جائے گا.
مطلع کریں
function consumer(dict, condition) {
while (true) {
condition.acquire()
while (dict.get("array").length == 0) {
Log(threading.currentThread().name(), "wait()...", ", array:", dict.get("array"))
condition.wait()
}
var arr = dict.get("array")
var num = arr.shift()
Log(threading.currentThread().name(), ", num:", num, ", array:", arr, "#FF0000")
dict.set("array", arr)
Sleep(1000)
condition.release()
}
}
function main() {
var condition = threading.Condition()
var dict = threading.Dict()
dict.set("array", [])
var t1 = threading.Thread(consumer, dict, condition)
var t2 = threading.Thread(consumer, dict, condition)
var t3 = threading.Thread(consumer, dict, condition)
Sleep(1000)
var i = 0
while (true) {
condition.acquire()
var msg = ""
var arr = dict.get("array")
var randomNum = Math.floor(Math.random() * 5) + 1
if (arr.length >= 3) {
condition.notifyAll()
msg = "notifyAll"
} else {
arr.push(i)
dict.set("array", arr)
if (randomNum > 3 && arr.length > 0) {
condition.notify()
msg = "notify"
} else {
msg = "pass"
}
i++
}
Log(_D(), "randomNum:", randomNum, ", array:", arr, ", msg:", msg)
condition.release()
Sleep(1000)
}
}
استعمال کریںnotify()
فنکشن انتظار کے دھاگے کو بیدار کرنے کے لئے.
کےnotify()
فنکشن انتظار کی قطار میں ایک موضوع کو بیدار کرتا ہے.
جبnotify()
تقریب ایک دھاگہ کو بیدار کرتا ہے، دھاگہ دھاگہ مقفل دوبارہ حاصل کرے گا.
{@fun/Threads/ThreadCondition/notifyAll notifyAll}، {@fun/Threads/ThreadCondition/wait wait}، {@fun/Threads/ThreadCondition/acquire acquire}، {@fun/Threads/ThreadCondition/release release}
کےnotifyAll()
تقریب انتظار کر رہے ہیں تمام موضوعات کو جاگتا ہے.
سب کو مطلع کریں
براہ مہربانی ملاحظہ کریںThreadCondition.notify()
مثالوں کے لئے سیکشن.
کےnotifyAll()
فنکشن ایک ایک کر کے تمام انتظار کر رہے موضوعات کو بیدار کرتا ہے، اور بیدار موضوعات تھریڈ لاک دوبارہ حاصل کرتے ہیں.
{@fun/Threads/ThreadCondition/notify notify}، {@fun/Threads/ThreadCondition/wait wait}، {@fun/Threads/ThreadCondition/acquire acquire}، {@fun/Threads/ThreadCondition/release release}
کےwait()
فنکشن استعمال کیا جاتا ہے کچھ ڈیزائن حالات کے تحت ایک thread انتظار کرنے کے لئے.
انتظار کرو
براہ مہربانی ملاحظہ کریںThreadCondition.notify()
مثالوں کے لئے سیکشن.
کےwait()
فنکشن تھریڈ لاک کو جاری کرتا ہے اور جب جاگتا ہے تو تھریڈ لاک کو دوبارہ حاصل کرتا ہے۔
{@fun/Threads/ThreadCondition/notify notify}، {@fun/Threads/ThreadCondition/notifyAll notifyAll}، {@fun/Threads/ThreadCondition/acquire acquire}، {@fun/Threads/ThreadCondition/release release}
کےacquire()
فنکشن کا استعمال تھریڈ لاک (لاک) کی درخواست کرنے کے لئے کیا جاتا ہے۔
حاصل کرنا
براہ مہربانی ملاحظہ کریںThreadCondition.notify()
مثالوں کے لئے سیکشن.
استعمال سے پہلےwait()
، آپ کو موجودہ حالت آبجیکٹ کی تھریڈ لاک کی درخواست کرنے کی ضرورت ہے.
{@fun/Threads/ThreadCondition/notify notify}، {@fun/Threads/ThreadCondition/notifyAll notifyAll}، {@fun/Threads/ThreadCondition/wait wait}، {@fun/Threads/ThreadCondition/release release}، {@fun/ThreadCondition/ThreadCondition/release release}، {@fun/ThreadCondition/ThreadCondition/notifyAll notifyAll}، {@fun/Threads/ThreadCondition/wait wait}، {@fun/Threads/ThreadCondition/release release}، {@fun/ThreadCondition/ThreadCondition/release release}، {@fun/ThreadCondition/release release}
کےrelease()
فنکشن کا استعمال تھریڈ لاک (انلاک) کو کھولنے کے لئے کیا جاتا ہے۔
رہائی
براہ مہربانی ملاحظہ کریںThreadCondition.notify()
مثالوں کے لئے سیکشن.
استعمال کے بعدwait()
، ہم موجودہ حالت آبجیکٹ کی تھریڈ لاک (انلاک) کو جاری کرنے کی ضرورت ہے.
{@fun/Threads/ThreadCondition/notify notify}، {@fun/Threads/ThreadCondition/notifyAll notifyAll}، {@fun/Threads/ThreadCondition/wait wait}، {@fun/Threads/ThreadCondition/acquire acquire}
لغت کا اعتراض، ڈیٹا شیئرنگ کے لیے استعمال کیا جاتا ہے۔
کےget()
تقریب لغت اعتراض میں ریکارڈ کلید قدر حاصل کرنے کے لئے استعمال کیا جاتا ہے.
کےget()
تقریب کی طرف سے مخصوص کلید کی قدر لوٹاتاkey
parameter.
سٹرنگ، نمبر، بول، آبجیکٹ، صف، null value اور نظام کی حمایت کی دیگر اقسام
حاصل (کلید)
کےkey
پیرامیٹر مطلوبہ کلید کے مطابق کلیدی نام کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
چابی سچ سٹرنگ
function main() {
var event = threading.Event()
var dict = threading.Dict()
dict.set("data", 100)
var t1 = threading.Thread(function(dict, event) {
Log(`thread1, dict.get("data"):`, dict.get("data"))
event.set()
event.clear()
event.wait()
Log(`after main change data, thread1 dict.get("data"):`, dict.get("data"))
dict.set("data", 0)
}, dict, event)
event.wait()
dict.set("data", 99)
event.set()
event.clear()
t1.join()
Log(`main thread, dict.get("data"):`, dict.get("data"))
}
ایونٹ آبجیکٹ کا استعمال کرتے ہوئے ڈیٹا کو پڑھنے اور ترمیم کرنے کے لئے تھریڈز کو مطلع کریں.
{@fun/Threads/ThreadDict/set set} {@fun/Threads/ThreadDict/set set} {@fun/Threads/ThreadDict/set set} {@fun/Threads/ThreadDict/set set}
کےset()
تقریب ایک کلید قدر جوڑی مقرر کرنے کے لئے استعمال کیا جاتا ہے.
سیٹ (کلید، قدر)
پیرامیٹرkey
تبدیل کرنے کے لئے کلیدی نام کی ترتیب کے لئے استعمال کیا جاتا ہے.
چابی
سچ
سٹرنگ
پیرامیٹرvalue
تبدیل کرنے کے لئے کلیدی قدر مقرر کرنے کے لئے استعمال کیا جاتا ہے.
قیمت سچ string، number، bool، object، array، function، null value اور نظام کی حمایت کی دیگر اقسام
function main() {
var dict1 = threading.Dict()
dict1.set("func1", function(p) {
Log("func1 p:", p)
})
threading.Thread(function(dict1) {
var func1 = dict1.get("func1")
func1("test")
}, dict1).join()
}
یہ فنکشن میں کلیدی قدر منتقل کرنے کی حمایت کرتا ہے.
{@fun/Threads/ThreadDict/get get} {@fun/Threads/ThreadDict/get get}
ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم میں ، یہ بنیادی طور پر مختلف افعال کو نافذ کرتا ہے ، بلاکچین سے متعلق کالز کے ذریعےexchange.IO()
مندرجہ ذیل دستاویز میںexchange.IO()
اس کے فنکشن کے مطابق الگ الگ کام.exchange.IO("abi", ...)
ایک ABI رجسٹر کرنے کے لئے استعمال کیا جاتا ہے.
exchange.IO(k، پتہ، abiContent)
کےk
پیرامیٹر کی تقریب مقرر کرنے کے لئے استعمال کیا جاتا ہےexchange.IO()
فنکشن، پر مقرر"abi"
کا مطلب ہے کہ اس فنکشن کو رجسٹر کرنے کے لئے استعمال کیا جاتا ہےABI
.
k
سچ
سٹرنگ
کےaddress
اسمارٹ معاہدے کا پتہ بتانے کے لئے پیرامیٹر استعمال کیا جاتا ہے۔
ایڈریس
سچ
سٹرنگ
کےabiContent
پیرامیٹر کی وضاحت کرنے کے لئے استعمال کیا جاتا ہےABI
اسمارٹ کنٹریکٹ کا۔
abiContent
سچ
سٹرنگ
function main() {
// register Uniswap SwapRouter02 abi
var routerAddress = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45"
var abi = `[{"inputs":[{"components":[{"internalType":"bytes","name":"path","type":"bytes"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMaximum","type":"uint256"}],"internalType":"struct IV3SwapRouter.ExactOutputParams","name":"params","type":"tuple"}],"name":"exactOutput","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"payable","type":"function"}]`
// Get the ```ABI``` content of the contract can be obtained with the following URL, taking the ```result``` field only, e.g:
exchange.IO("abi", routerAddress, abi)
}
اسمارٹ کنٹریکٹ کو کال کرنے کے طریقوں کو رجسٹر کرنے کی ضرورت نہیں ہے اگر وہ معیاری ERC20 طریقوں ہیں۔
لے لوABI
معاہدے کا مواد مندرجہ ذیل URL پر حاصل کیا جا سکتا ہے،result
صرف میدان، مثال کے طور پر:
https://api.etherscan.io/api?module=contract&action=getabi&address=0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45
کال کرنے کا طریقہexchange.IO("api", "eth", ...)
تقریب Ethereum RPC طریقہ کار کو کال کرنے کے لئے استعمال کیا جاتا ہے.
کےexchange.IO("api", "eth", ...)
فنکشن بلایا RPC طریقہ کار کی واپسی کی قیمت لوٹاتا ہے.
string, number, bool, object, array, null اور سسٹم کی معاونت کرنے والی دیگر تمام اقسام
exchange.IO(k، بلاکچین، rpcMethod)exchange.IO(k، بلاکچین، rpcMethod،...args)
کےk
پیرامیٹر کی تقریب مقرر کرنے کے لئے استعمال کیا جاتا ہےexchange.IO()
فنکشن، پر مقرر"api"
اشارہ کرتا ہے کہ فنکشن کو کال کی درخواست کو بڑھانے کے لئے استعمال کیا جاتا ہے.
k
سچ
سٹرنگ
کےblockChain
پیرامیٹر کی تقریب مقرر کرنے کے لئے استعمال کیا جاتا ہےexchange.IO()
فنکشن، پر مقرر"eth"
اشارہ کرتا ہے کہ یہ فنکشن ایتھرئم نیٹ ورک پر آر پی سی طریقہ کار کالوں کے لئے استعمال ہوتا ہے۔
بلاکچین
سچ
سٹرنگ
کےrpcMethod
پیرامیٹر کی طرف سے بلایا جائے گا RPC طریقہ مقرر کرنے کے لئے استعمال کیا جاتا ہےexchange.IO()
فنکشن.
rpc طریقہ
سچ
سٹرنگ
کےarg
پیرامیٹر استعمال کیا جاتا ہے RPC طریقہ کار کے پیرامیٹرز کی وضاحت کرنے کے لئے بلایا جائے گا. ایک سے زیادہ ہو سکتا ہےarg
پیرامیٹر۔ قسم اور تعدادarg
پیرامیٹرز RPC طریقہ کار کی طرف سے مخصوص پر انحصارrpcMethod
پیرامیٹر.
ارگ
غلط
string, number, bool, object, array, function, null, and all other types supported by the system string, number, bool, object, array, function, null, and all other types supported by the system string, number, bool, object, array, function, null, and all other types supported by the system string, number, bool, object, array, function, function, null, and all other types supported by the system
function main() {
// "owner" needs to be replaced with the specific wallet address
// Parameter labels for the "latest" string position: 'latest', 'earliest' or 'pending', please refrer to https://eth.wiki/json-rpc/API#the-default-block-parameter
// The return value ethBalance is a hexadecimal string: 0x9b19ce56113070
var ethBalance = exchange.IO("api", "eth", "eth_getBalance", "owner", "latest")
// ETH has a precision unit of 1e18
var ethDecimal = 18
// Because of the JavaScript language precision, it is necessary to use the system underlying package function BigInt, BigDecimal to process
// Convert ethBalance to readable amount, 0x9b19ce56113070 to 0.043656995388076145
Log(Number((BigDecimal(BigInt(ethBalance))/BigDecimal(Math.pow(10, ethDecimal))).toString()))
}
اپنے بٹوے میں ETH کا بیلنس چیک کریں:
function mian() {
// ETH has a precision unit of 1e18
var ethDecimal = 18
// Number of transfers, readable amount e.g. 0.01 ETH
var sendAmount = 0.01
// Due to the JavaScript language precision, it is necessary to use the system underlying encapsulated functions BigInt, BigDecimal to process, and to convert the readable amount to the data processed on the chain
var toAmount = (BigDecimal(sendAmount)*BigDecimal(Math.pow(10, ethDecimal))).toFixed(0)
// "toAddress" is the address of the recipient's ETH wallet at the time of the transfer, which needs to be filled in specifically, and toAmount is the number of transfers
exchange.IO("api", "eth", "send", "toAddress", toAmount)
}
ETH ٹرانسفر کے لئے، آپ کو مقرر کر سکتے ہیں{gasPrice: 11, gasLimit: 111, nonce: 111}
پیرامیٹر، جس کے آخری پیرامیٹر پر مقرر کیا جاتا ہےexchange.IO()
آپ اپنی مخصوص ضروریات کے مطابق کام کر سکتے ہیں۔nonce
اور نظام ڈیفالٹ استعمال کریں، یا چھوڑgasLimit/gasPrice/nonce
غیر مقرر کریں اور تمام کے لئے سسٹم ڈیفالٹ قدر استعمال کریں.
function toAmount(s, decimals) {
return Number((BigDecimal(BigInt(s))/BigDecimal(Math.pow(10, decimals))).toString())
}
function main() {
var gasPrice = exchange.IO("api", "eth", "eth_gasPrice")
Log("gasPrice:", toAmount(gasPrice, 0)) // 5000000000 , in wei (5 gwei)
}
استفسارgasPrice
:
function toAmount(s, decimals) {
// The toAmount function can convert hex-encoded values to decimal values
return Number((BigDecimal(BigInt(s))/BigDecimal(Math.pow(10, decimals))).toString())
}
function main() {
// Coding approve (authorization) method calls
var data = exchange.IO("encode", "0x111111111117dC0aa78b770fA6A738034120C302", "approve", "0xe592427a0aece92de3edee1f18e0157c05861564", "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
Log("data:", data)
var gasPrice = exchange.IO("api", "eth", "eth_gasPrice")
Log("gasPrice:", toAmount(gasPrice, 0))
var obj = {
"from" : "0x0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", // walletAddress
"to" : "0x111111111117dC0aa78b770fA6A738034120C302",
"gasPrice" : gasPrice,
"value" : "0x0",
"data" : "0x" + data,
}
var gasLimit = exchange.IO("api", "eth", "eth_estimateGas", obj)
Log("gasLimit:", toAmount(gasLimit, 0))
Log("gas fee", toAmount(gasLimit, 0) * toAmount(gasPrice, 0) / 1e18)
}
استفسارeth_estimateGas
:
کے دوسرے پیرامیٹرexchange.IO()
کے ساتھ کام"eth"
براہ راست ایتھرئم نوڈ سرور کے لئے دستیاب RPC طریقوں کو کال کر سکتے ہیں.
{@fun BigDecimal}، {@fun BigInt}
کےexchange.IO("encode", ...)
فنکشن ڈیٹا کوڈنگ کے لئے بلایا جاتا ہے.
کےexchange.IO("encode", ...)
فنکشن کوڈڈ ڈیٹا واپس کرتا ہے.
سٹرنگ
exchange.IO(k، ڈیٹا فارمیٹ،...args)exchange.IO(k، پتہ، ڈیٹا فارمیٹ)exchange.IO(k، پتہ، ڈیٹا فارمیٹ،...args)
کےk
پیرامیٹر کی تقریب مقرر کرنے کے لئے استعمال کیا جاتا ہےexchange.IO()
فنکشن، پر مقرر"encode"
کا مطلب ہے کہ فنکشن کو ڈیٹا کوڈنگ کے لیے استعمال کیا جاتا ہے۔
k
سچ
سٹرنگ
کےaddress
پیرامیٹر اسمارٹ معاہدے کا پتہ مقرر کرنے کے لئے استعمال کیا جاتا ہے.exchange.IO("encode", ...)
فنکشن، میں منتقلaddress
پیرامیٹر اسمارٹ معاہدے پر طریقہ کال کوڈنگ کا اشارہ کرتا ہے.exchange.IO("encode", ...)
فنکشن، اگرaddress
پیرامیٹر منتقل نہیں کیا جاتا ہے، تقریب مخصوص قسم کے حکم کوڈ کرنے کے لئے استعمال کیا جاتا ہے اور فعال طور پر برابر ہےabi.encode
میںSolidity
.
ایڈریس
غلط
سٹرنگ
کےdataFormat
پیرامیٹر استعمال کیا جاتا ہے کوڈڈ ڈیٹا کے طریقہ کار، قسم، اور ترتیب کی وضاحت کرنے کے لئے.
ڈیٹا فارمیٹ
سچ
سٹرنگ
کےarg
پیرامیٹر مخصوص اعداد و شمار کی قیمت ہے کہ اس سے ملتا ہے کی وضاحت کرنے کے لئے استعمال کیا جاتا ہےdataFormat
پیرامیٹر. ایک سے زیادہ ہو سکتا ہےarg
پیرامیٹر، اور قسم اور تعدادarg
پیرامیٹرز پر منحصر ہےdataFormat
پیرامیٹر کی ترتیب.
ارگ
غلط
تار، نمبر، ٹپل، صف، اور نظام کی طرف سے حمایت کی تمام دیگر اقسام
function main() {
// Main network address of ContractV3SwapRouterV2: 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45
// Calling the unwrapWETH9 method requires registering the ABI first, which is omitted here
// "owner" represents the wallet address, which need to fill in the specific, 1 represents the number of unpacking, unpacking a WETH into ETH
var data = exchange.IO("encode", "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45", "unwrapWETH9(uint256,address)", 1, "owner")
Log(data)
}
مثال کے طور پر، انکوڈنگ کے طریقہ کار کو فونunwrapWETH9
:
function main() {
var x = 10
var address = "0x02a5fBb259d20A3Ad2Fdf9CCADeF86F6C1c1Ccc9"
var str = "Hello World"
var array = [1, 2, 3]
var ret = exchange.IO("encode", "uint256,address,string,uint256[]", x, address, str, array) // uint i.e. uint256 , the type length needs to be specified on FMZ
Log("ret:", ret)
/*
000000000000000000000000000000000000000000000000000000000000000a // x
00000000000000000000000002a5fbb259d20a3ad2fdf9ccadef86f6c1c1ccc9 // address
0000000000000000000000000000000000000000000000000000000000000080 // Offset of str
00000000000000000000000000000000000000000000000000000000000000c0 // Offset of array
000000000000000000000000000000000000000000000000000000000000000b // The length of str
48656c6c6f20576f726c64000000000000000000000000000000000000000000 // str data
0000000000000000000000000000000000000000000000000000000000000003 // The length of the array
0000000000000000000000000000000000000000000000000000000000000001 // array the first data
0000000000000000000000000000000000000000000000000000000000000002 // array the second data
0000000000000000000000000000000000000000000000000000000000000003 // array the third data
*/
}
یہ کے کوڈنگ مثال کے برابر ہےabi.encode
میںSolidity
:
function main() {
var types = "tuple(a uint256,b uint8,c address),bytes"
var ret = exchange.IO("encode", types, {
a: 30,
b: 20,
c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
}, "0011")
Log("encode: ", ret)
}
یہ ایک tuple یا ایک tuple پر مشتمل ایک قسم کے حکم کی کوڈنگ کی حمایت کرتا ہے.
اس قسم کے حکم میں شامل ہیں:tuple
, bytes
، تو جب فونexchange.IO()
کوڈنگ کے لئے، آپ کو دو پیرامیٹرز کو منتقل کرنے کے لئے جاری رکھنے کی ضرورت ہے:
{
a: 30,
b: 20,
c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
}
میں منتقل پیرامیٹرز کی ساخت اور قسم کے ساتھ بھی ہم آہنگ ہونا ضروری ہےtuple
، جیسا کہtypes
فارم کا پیرامیٹر:tuple(a uint256,b uint8,c address)
.
bytes
:"0011"
function main() {
var path = ["0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "0xdac17f958d2ee523a2206206994597c13d831ec7"] // ETH address, USDT address
var ret = exchange.IO("encode", "address[]", path)
Log("encode: ", ret)
}
یہ صفوں یا صفوں پر مشتمل اقسام کی ترتیب کوڈنگ کے لئے حمایت کرتا ہے:
کےexchange.IO()
فنکشنencode
طریقہ، جس میں فنکشن کال کوڈ واپس کر سکتے ہیںhex
string فارمیٹ۔ مخصوص استعمال کے لئے ، آپ عوامی طور پر دستیاب پلیٹ فارمز سے رجوع کرسکتے ہیں
کےexchange.IO("encodePacked", ...)
تقریب کے لئے استعمال کیا جاتا ہے کہ ایک طرح سے بلایا جاتا ہےencodePacked
encoding.
کےexchange.IO("encodePacked", ...)
فنکشن واپس کرتا ہےencodePacked
خفیہ کردہ ڈیٹا۔
سٹرنگ
exchange.IO(k، ڈیٹا فارمیٹ،...args)
کےk
پیرامیٹر کی تقریب مقرر کرنے کے لئے استعمال کیا جاتا ہےexchange.IO()
فنکشن، پر مقرر"encodePacked"
کا مطلب ہے کہ فنکشن ڈیٹا کے لئے استعمال کیا جاتا ہےencodePacked
کوڈنگ.
k
سچ
سٹرنگ
کےdataFormat
پیرامیٹر کی قسم اور ترتیب کی وضاحت کرنے کے لئے استعمال کیا جاتا ہےencodePacked
خفیہ کردہ ڈیٹا۔
ڈیٹا فارمیٹ
سچ
سٹرنگ
کےarg
پیرامیٹر مخصوص اعداد و شمار کی قیمت ہے کہ اس سے ملتا ہے کی وضاحت کرنے کے لئے استعمال کیا جاتا ہےdataFormat
پیرامیٹر. ایک سے زیادہ ہو سکتا ہےarg
پیرامیٹر، اور قسم اور تعدادarg
پیرامیٹرز پر منحصر ہےdataFormat
پیرامیٹر کی ترتیب.
ارگ
سچ
تار، نمبر، ٹپل، صف، اور نظام کی طرف سے حمایت کی تمام دیگر اقسام
function main() {
var fee = exchange.IO("encodePacked", "uint24", 3000)
var tokenInAddress = "0x111111111117dC0aa78b770fA6A738034120C302"
var tokenOutAddress = "0x6b175474e89094c44da98b954eedeac495271d0f"
var path = tokenInAddress.slice(2).toLowerCase()
path += fee + tokenOutAddress.slice(2).toLowerCase()
Log("path:", path)
}
استعمال کرتے وقتUniswap V3
، آپ کو تبادلہ راستے کی طرح پیرامیٹرز میں منتقل کرنے کی ضرورت ہے، آپ کو استعمال کرنے کی ضرورت ہےencodePacked
کوڈنگ آپریشن:
کےexchange.IO("decode", ...)
فنکشن کو اس طرح بلایا جاتا ہے جو ڈیکوڈنگ کے لئے استعمال ہوتا ہے۔
کےexchange.IO("decode", ...)
تقریب کوڈت اعداد و شمار واپس کرتا ہے. ایک تار واپس کرتا ہے جب صرف ایک ڈیٹا کی طرف سے مخصوص ہےdataFormat
پیرامیٹر. ایک صف لوٹاتا ہے جب ایک سے زیادہ اعداد و شمار کی طرف سے مخصوص ہیںdataFormat
پیرامیٹر.
صف٬سلسلہ
exchange.IO(k، ڈیٹا فارمیٹ، ڈیٹا)
کےk
پیرامیٹر کی تقریب مقرر کرنے کے لئے استعمال کیا جاتا ہےexchange.IO()
تقریب، اور اس کی ترتیب"decode"
کا مطلب یہ ہے کہ اس فنکشن کا استعمال ڈیٹا کو ڈیکوڈ کرنے کے لئے کیا جاتا ہے۔
k
سچ
سٹرنگ
کےdataFormat
پیرامیٹر کو ڈیکوڈڈ ڈیٹا کی قسم اور ترتیب کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
ڈیٹا فارمیٹ
سچ
سٹرنگ
کےdata
پیرامیٹر کو ڈیکوڈ کرنے کے لئے ڈیٹا مقرر کرنے کے لئے استعمال کیا جاتا ہے.
اعداد و شمار
سچ
سٹرنگ
function main() {
var types = "tuple(a uint256,b uint8,c address),bytes"
var ret = exchange.IO("encode", types, {
a: 30,
b: 20,
c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
}, "0011")
Log("encode: ", ret)
var rawData = exchange.IO("decode", types, ret)
Log("decode:", rawData)
}
ریورس آپریشنexchange.IO("encode", ...)
فنکشن:
function main() {
// register SwapRouter02 abi
var walletAddress = "0x398a93ca23CBdd2642a07445bCD2b8435e0a373f"
var routerAddress = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45"
var abi = `[{"inputs":[{"components":[{"internalType":"bytes","name":"path","type":"bytes"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMaximum","type":"uint256"}],"internalType":"struct IV3SwapRouter.ExactOutputParams","name":"params","type":"tuple"}],"name":"exactOutput","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"payable","type":"function"}]`
exchange.IO("abi", routerAddress, abi) // abi only uses the contents of the local exactOutput method, the full abi can be searched on the Internet
// encode path
var fee = exchange.IO("encodePacked", "uint24", 3000)
var tokenInAddress = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
var tokenOutAddress = "0xdac17f958d2ee523a2206206994597c13d831ec7"
var path = tokenInAddress.slice(2).toLowerCase()
path += fee + tokenOutAddress.slice(2).toLowerCase()
Log("path:", path)
var dataTuple = {
"path" : path,
"recipient" : walletAddress,
"amountOut" : 1000,
"amountInMaximum" : 1,
}
// encode SwapRouter02 exactOutput
var rawData = exchange.IO("encode", routerAddress, "exactOutput", dataTuple)
Log("method hash:", rawData.slice(0, 8)) // 09b81346
Log("params hash:", rawData.slice(8))
// decode exactOutput params
var decodeRaw = exchange.IO("decode", "tuple(path bytes,recipient address,amountOut uint256,amountInMaximum uint256)", rawData.slice(8))
Log("decodeRaw:", decodeRaw)
}
مندرجہ ذیل مثال سب سے پہلے ایک انجام دیتا ہےencodePacked
پر آپریشنpath
پیرامیٹر پروسیسنگ، کیونکہexactOutput
طریقہ کار کال ہے کہ بعد میں انکوڈ کرنے کی ضرورت ہے کی ضرورت ہوتی ہےpath
ایک پیرامیٹر کے طور پر.encode
کےexactOutput
روٹنگ معاہدے کا طریقہ، جس میں صرف ایک قسم کا پیرامیٹر ہوتا ہےtuple
. طریقہ کار کا نامexactOutput
کوڈ کیا جاتا ہے:0x09b81346
، اور استعمالexchange.IO("decode", ...)
نتیجہ اخذ کرنے کا طریقہdecodeRaw
، متغیر کے مطابقdataTuple
.
ڈیٹا پروسیسنگ کے لئے،exchange.IO()
فنکشن نہ صرف کوڈنگ کی حمایت کرتا ہے، بلکہ ڈیکوڈنگ.
کےexchange.IO("key", ...)
تقریب نجی چابیاں سوئچ کرنے کے لئے ایک طرح سے بلایا جاتا ہے.
exchange.IO(K، کلید)
پیرامیٹرk
کی تقریب مقرر کرنے کے لئے استعمال کیا جاتا ہےexchange.IO()
فنکشن، پر مقرر"key"
کا مطلب یہ ہے کہ اس فنکشن کا استعمال نجی کلید کو تبدیل کرنے کے لئے کیا جاتا ہے۔
k
سچ
سٹرنگ
کےkey
پیرامیٹر نجی کلید کی ترتیب کے لئے استعمال کیا جاتا ہے.
چابی
سچ
سٹرنگ
function main() {
exchange.IO("key", "Private Key") // "Private Key" represents the private key string, which needs to be filled in specifically
}
کےexchange.IO()
فنکشن نجی چابیاں تبدیل کرنے کی حمایت کرتا ہے اور یہ متعدد پرس پتوں کو جوڑ سکتا ہے۔ متعدد پرس پتوں کو جوڑنے کے لئے متعدد ایکسچینج آبجیکٹ شامل کرنا بھی ممکن ہے۔
کےexchange.IO("api", ...)
فنکشن کو اس طرح بلایا جاتا ہے جو اسمارٹ معاہدے کے طریقوں کو بلانے کے لئے استعمال ہوتا ہے۔
کےexchange.IO("api", ...)
فنکشن اسمارٹ کنٹریکٹ نامی طریقہ کار کی واپسی کی قیمت واپس کرتا ہے۔
string, number, bool, object, array, null اور سسٹم کی معاونت کرنے والی دیگر تمام اقسام
exchange.IO(k، پتہ، طریقہ)exchange.IO(k، پتہ، طریقہ،...args)exchange.IO(k، پتہ، طریقہ، قدر،...args)
کےk
پیرامیٹر کی تقریب مقرر کرنے کے لئے استعمال کیا جاتا ہےexchange.IO()
فنکشن، پر مقرر"api"
اشارہ کرتا ہے کہ فنکشن کو کال کی درخواست کو بڑھانے کے لئے استعمال کیا جاتا ہے.
k
سچ
سٹرنگ
کےaddress
اسمارٹ معاہدے کا پتہ بتانے کے لئے پیرامیٹر استعمال کیا جاتا ہے۔
ایڈریس
سچ
سٹرنگ
کےmethod
پیرامیٹر اسمارٹ معاہدے کا طریقہ بیان کرنے کے لئے استعمال کیا جاتا ہے جسے بلایا جائے۔
طریقہ کار
سچ
سٹرنگ
کےvalue
ETH کی رقم بھیجنے کے لئے مقرر کرنے کے لئے استعمال کیا جاتا ہے.stateMutability
اسمارٹ معاہدے کے طریقہ کار کی خصوصیت ہے جو عملدرآمد کیا جائے گاpayable
، پھرvalue
پیرامیٹر منتقل کرنے کی ضرورت ہے."stateMutability": "payable"
ABI سے دیکھا جا سکتا.exchange.IO()
تقریب کی بنیاد پر مطلوبہ پیرامیٹر کا تعین کرے گاstateMutability
رجسٹرڈ کیا گیا ہے کہ ABI میں وصف.stateMutability
وصف ہےnonpayable
، پھرvalue
پیرامیٹر منتقل کرنے کی ضرورت نہیں ہے.
قیمت
غلط
نمبر٬سلسلہ
کےarg
پیرامیٹر استعمال کیا جاتا ہے اسمارٹ معاہدے کے طریقہ کار کے پیرامیٹرز کی وضاحت کرنے کے لئے بلایا جا رہا ہے.arg
پیرامیٹر، اور قسم اور تعدادarg
پیرامیٹرز اسمارٹ کنٹریکٹ کے طریقہ کار پر منحصر ہے جسے بلایا جائے۔
ارگ
غلط
تار، نمبر، بول، اور نظام کی طرف سے حمایت کی دیگر تمام اقسام
function main(){
var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302" // The contract address of the token, the token is 1INCH in the example
Log(exchange.IO("api", tokenAddress, "decimals")) // Query, print 1INCH tokens with precision index of 18
}
کےdecimals
طریقہ کار ایک ہےconstant
ERC20 کا طریقہ ہے کہ گیس کی کھپت کا سامنا نہیں کرتا اور یہ ایک ٹوکن کی صحت سے متعلق اعداد و شمار کو تلاش کر سکتے ہیں.decimals
طریقہ کار کے پاس کوئی پیرامیٹرز نہیں ہیں۔ واپسی کی قیمت: ٹوکن کے صحت سے متعلق ڈیٹا۔
function main(){
// The contract address of the token, in the example the token is 1INCH
var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302"
// For example, the query yields 1000000000000000000, divided by the precision unit of the token 1e18, the wallet to which the current exchange object is bound has authorized 1 1INCH to the spender address
Log(exchange.IO("api", tokenAddress, "allowance", "owner", "spender"))
}
کےallowance
طریقہ کار ایک ہےconstant
ERC20 کا ایک طریقہ ہے جو گیس کی کھپت پیدا نہیں کرتا ہے اور ایک مخصوص معاہدے کے ایڈریس کے لئے ایک ٹوکن کی مجاز رقم سے استفسار کرسکتا ہے۔allowance
طریقہ کار 2 پیرامیٹرز لیتا ہے ، پہلا والٹ ایڈریس ہے اور دوسرا مجاز پتہ ہے۔ واپسی کی قیمت: ٹوکن کی اجازت کی رقم۔
owner
: بٹوے کا پتہ، مثال spender
: منظور شدہ معاہدے کا پتہ، مثال کے طور پر سلسلہ Uniswap V3 router v1
address.
function main(){
// The contract address of the token, the token is 1INCH in the example
var tokenAddress = "0x111111111117dC0aa78b770fA6A738034120C302"
// The hexadecimal string of the authorization amount: 0xde0b6b3a7640000 , the corresponding decimal string: 1e18 , 1e18 divided by the precision unit of the token, i.e. 1 token amount, so this refers to the authorization of one token
Log(exchange.IO("api", tokenAddress, "approve", "spender", "0xde0b6b3a7640000"))
}```
The ```approve``` method is a non-```constant``` method of ERC20, which generates gas consumption and is used to authorize the operation amount of a token to a contract address. The ```approve``` method takes 2 parameters, the first one is the address to be authorized and the second one is the amount to be authorized. Return value: txid.
```spender```: the address of the authorized contract, the example is replaced by the string "spender", the actual use needs to fill in the specific address, for example, it can be ```Uniswap V3 router v1``` address. ```0xde0b6b3a7640000```: the number of authorizations, here is the hexadecimal string, the corresponding decimal value is 1e18, divided by the token precision unit in the example (i.e. 1e18). The result is that 1 token is authorized. The third parameter of the ```exchange.IO()``` function is passed to the method name ```approve```, which can also be written in the form of methodId, such as "0x571ac8b0". It is also possible to write the full standard method name, for example: "approve(address,uint256)".
```javascript
function main() {
var ContractV3SwapRouterV2 = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45"
var tokenInName = "ETH"
var amountIn = 0.01
var options = {gasPrice: 5000000000, gasLimit: 21000, nonce: 100} // This is an example, depending on the actual scene settings
var data = "" // The encoded data, here is the empty string, depending on the actual scene settings
var tx = exchange.IO("api", ContractV3SwapRouterV2, "multicall(uint256,bytes[])", (tokenInName == 'ETH' ? amountIn : 0), (new Date().getTime() / 1000) + 3600, data, options || {})
}
کےmulticall
طریقہ کار ایک غیرconstant
طریقہ کارUniswap V3
جو گیس کی کھپت پیدا کرتا ہے اور ٹوکن کو کئی طریقوں سے تبدیل کرنے کے لئے استعمال کیا جاتا ہے۔
کےmulticall
طریقہ پیرامیٹرز کو منتقل کرنے کے مختلف طریقے ہوسکتے ہیں ، آپ ABI کو چیک کرسکتے ہیں جس میں طریقہ خاص طور پر ہوتا ہے ، آپ کو طریقہ کار کو کال کرنے سے پہلے ABI کو رجسٹر کرنے کی ضرورت ہے۔ واپسی کی قیمت: txid۔
کے مخصوص مثالوں کے لئےmulticall
طریقہ کار کالز، آپ کو عوامی طور پر دستیاب پلیٹ فارم سے رجوع کر سکتے ہیں
یہاں کچھ تفصیلات کا استعمال کرتے ہوئے بیان کیا گیا ہے:
exchange.IO("api", ContractV3SwapRouterV2, "multicall(uint256,bytes[])", value, deadline, data)
ContractV3SwapRouterV2
: Uniswap V3 کے روٹر v2 کا پتہ.value
: منتقلی کے لئے ETH کی رقم، اگر ایکسچینج آپریشن کا ٹوکن ETH نہیں ہے تو 0 پر سیٹ کریں۔deadline
: deadline
کے پیرامیٹر ہےmulticall
طریقہ، جس میں (نئی Date().getTime() / 1000) + 3600 پر مقرر کیا جا سکتا ہے، اس بات کا اشارہ ہے کہ یہ ایک گھنٹے کے لئے درست ہے.data
: data
کے پیرامیٹر ہےmulticall
طریقہ کار، پیکیجنگ آپریشن کے اعداد و شمار کو انجام دیا جائے گا.
اسی طرحexchange.IO("api", "eth", "send", "toAddress", toAmount)
،gasLimit/gasPrice/nonce
ترتیب کے طریقہ کار کال کی وضاحت کی جا سکتی ہےmulticall
طریقہ کار
ایک بار پھر، ہم بیان کرنے کے لئے جعلی کوڈ کا استعمال کرتے ہیں:
exchange.IO("api", ContractV3SwapRouterV2, "multicall(uint256,bytes[])", value, deadline, data, {gasPrice: 123456, gasLimit: 21000})
پیرامیٹر{gasPrice: 11, gasLimit: 111, nonce: 111}
مخصوص ضروریات کے مطابق مقرر کیا جا سکتا ہے، جس کے آخری پیرامیٹر پر مقرر کیا جاتا ہےexchange.IO()
فنکشن.
آپ کو چھوڑ سکتے ہیںnonce
اور سسٹم ڈیفالٹ قدر کا استعمال کریں، یا چھوڑ دیںgasLimit/gasPrice/nonce
غیر مقرر کریں اور تمام کے لئے سسٹم ڈیفالٹ قدر استعمال کریں.
کےexchange.IO("address")
فنکشن {@var/EXCHANGE exchange} ایکسچینج آبجیکٹ کی طرف سے تشکیل والی پرس کا پتہ حاصل کرنے کے لئے اس طرح سے بلایا جاتا ہے.
کےexchange.IO("address")
فنکشن تشکیل شدہ بٹوے کا پتہ لوٹاتا ہے۔
سٹرنگ
exchange.IO(ک)
کےk
پیرامیٹر کی تقریب مقرر کرنے کے لئے استعمال کیا جاتا ہےexchange.IO()
فنکشن، پر مقرر"address"
کا مطلب یہ ہے کہ فنکشن استعمال کیا جاتا ہے تشکیل شدہ پرس ایڈریس حاصل کرنے کے لئے.
k
سچ
سٹرنگ
function main() {
Log(exchange.IO("address")) // Print the wallet address of the private key configured on the exchange object
}
کےexchange.IO("base", ...)
فنکشن RPC نوڈ ایڈریس مقرر کرنے کے لئے ایک طرح سے بلایا جاتا ہے.
exchange.IO(k، پتہ)
کےk
پیرامیٹر کی تقریب مقرر کرنے کے لئے استعمال کیا جاتا ہےexchange.IO()
فنکشن، پر مقرر"base"
کا مطلب یہ ہے کہ فنکشن کا استعمال آر پی سی نوڈس کو سوئچ کرنے کے لئے کیا جاتا ہے۔
k
سچ
سٹرنگ
کےaddress
پیرامیٹر RPC نوڈ ایڈریس مقرر کرنے کے لئے استعمال کیا جاتا ہے.
ایڈریس
سچ
سٹرنگ
function main() {
var chainRpc = "https://bsc-dataseed.binance.org"
e.IO("base", chainRpc) // Switching to BSC chain
}
کےTA.MACD()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتااشاریہ MACD اشاریہ.
کی واپسی کی قیمتTA.MACD()
فنکشن ایک دو جہتی صف ہے جس کی ساخت ہے:[DIF, DEA, MACD]
.
صف
TA.MACD ((inReal) TA.MACD ((inReal، optInFastPeriod، optInSlowPeriod، optInSignalPeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInFastPeriod
پیرامیٹر روزہ مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
optInFastPeriod
غلط
نمبر
کےoptInSlowPeriod
پیرامیٹر سست مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
optInSlowPeriod
غلط
نمبر
کےoptInSignalPeriod
پیرامیٹر سگنل کی مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
optSignalPeriodسائنل پیریڈ
غلط
نمبر
function main(){
// You can fill in different k-line periods, such as PERIOD_M1,PERIOD_M30,PERIOD_H1...
var records = exchange.GetRecords(PERIOD_M15)
var macd = TA.MACD(records, 12, 26, 9)
// Watching the logs, you can see that three arrays are returned, corresponding to DIF, DEA and MACD.
Log("DIF:", macd[0], "DEA:", macd[1], "MACD:", macd[2])
}
def main():
r = exchange.GetRecords(PERIOD_M15)
macd = TA.MACD(r, 12, 26, 9)
Log("DIF:", macd[0], "DEA:", macd[1], "MACD:", macd[2])
void main() {
auto r = exchange.GetRecords(PERIOD_M15);
auto macd = TA.MACD(r, 12, 26, 9);
Log("DIF:", macd[0], "DEA:", macd[1], "MACD:", macd[2]);
}
کےTA
FMZ Quant کے اشارے لائبریری، عام اشارے الگورتھم کے لئے مرضی کے مطابق.JavaScript
, Python
, C++
زبان کی حکمت عملی کالز،اوپن سورس ٹی اے لائبریری کا کوڈ.
کے ڈیفالٹ اقدارoptInFastPeriod
, optInSlowPeriod
، اورoptInSignalPeriod
پیرامیٹرزTA.MACD()
کام ہیں:12
, 26
، اور9
.
{@fun/TA/TA.KDJ TA.KDJ}، {@fun/TA/TA.RSI TA.RSI}، {@fun/TA/TA.ATR TA.ATR}، {@fun/TA/TA.OBV TA.OBV}، {@fun/TA/TA.MA}،TA.MA}، {@fun/TA/TA.EMA TA.EMA}، {@fun/TA/TA.BOLL TA.BOLL}، {@fun/TA/TA.Alligator TA.Alligator}، {@fun/TA/TA.CMF TA.CMF}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA.Lowest TA.Lowest}، {@fun/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest
کےTA.KDJ()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےاسٹوکاسٹک اشارے.
کی واپسی کی قیمتTA.KDJ()
فنکشن ایک دو جہتی صف ہے جس کی ساخت ہے:[K, D, J]
.
صف
TA.KDJ ((inReal) TA.KDJ ((inReal، دورانیہ، kPeriod، dPeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےperiod
پیرامیٹر مدت 1 مقرر کرنے کے لئے استعمال کیا جاتا ہے.
مدت
غلط
نمبر
کےkPeriod
پیرامیٹر مدت 2 مقرر کرنے کے لئے استعمال کیا جاتا ہے.
کپیریڈ
غلط
نمبر
کےdPeriod
پیرامیٹر مدت 3 مقرر کرنے کے لئے استعمال کیا جاتا ہے.
ڈیپیریڈ
غلط
نمبر
function main(){
var records = exchange.GetRecords(PERIOD_M15)
var kdj = TA.KDJ(records, 9, 3, 3)
Log("k:", kdj[0], "d:", kdj[1], "j:", kdj[2])
}
def main():
r = exchange.GetRecords(PERIOD_M15)
kdj = TA.KDJ(r, 9, 3, 3)
Log("k:", kdj[0], "d:", kdj[1], "j:", kdj[2])
void main() {
auto r = exchange.GetRecords();
auto kdj = TA.KDJ(r, 9, 3, 3);
Log("k:", kdj[0], "d:", kdj[1], "j:", kdj[2]);
}
کے لئے ڈیفالٹ اقدارperiod
, kPeriod
، اورdPeriod
پیرامیٹرزTA.KDJ()
کام ہیں:9
, 3
، اور3
.
{@fun/TA/TA.MACD TA.MACD}، {@fun/TA/TA.RSI TA.RSI}، {@fun/TA/TA.ATR TA.ATR}، {@fun/TA/TA.OBV TA.OBV}، {@fun/TA/TA.MA}، {@fun/TA/TA.OBV}،TA.MA}، {@fun/TA/TA.EMA TA.EMA}، {@fun/TA/TA.BOLL TA.BOLL}، {@fun/TA/TA.Alligator TA.Alligator}، {@fun/TA/TA.CMF TA.CMF}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA.Lowest TA.Lowest}، {@fun/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest
کےTA.RSI()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاطاقت کا اشارے.
کی واپسی کی قیمتTA.RSI()
فنکشن ہے: ایک جہتی صف.
صف
TA.RSI ((ان ریئل) TA.RSI ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main(){
var records = exchange.GetRecords(PERIOD_M30)
var rsi = TA.RSI(records, 14)
Log(rsi)
}
def main():
r = exchange.GetRecords(PERIOD_M30)
rsi = TA.RSI(r, 14)
Log(rsi)
void main() {
auto r = exchange.GetRecords(PERIOD_M30);
auto rsi = TA.RSI(r, 14);
Log(rsi);
}
کے ڈیفالٹ قدرoptInTimePeriod
پیرامیٹرTA.RSI()
فنکشن ہے:14
.
{@fun/TA/TA.MACD TA.MACD}، {@fun/TA/TA.KDJ TA.KDJ}، {@fun/TA/TA.ATR TA.ATR}، {@fun/TA/TA.OBV TA.OBV}، {@fun/TA/TA.MA}،TA.MA}، {@fun/TA/TA.EMA TA.EMA}، {@fun/TA/TA.BOLL TA.BOLL}، {@fun/TA/TA.Alligator TA.Alligator}، {@fun/TA/TA.CMF TA.CMF}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA.Lowest TA.Lowest}، {@fun/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest
کےTA.ATR()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتااوسط حقیقی اتار چڑھاؤ کا اشارے.
کی واپسی کی قیمتTA.ATR()
فنکشن ہے: ایک جہتی صف.
صف
TA.ATR ((inPriceHLC) TA.ATR ((PriceHLC میں، optInTimePeriod میں)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main(){
var records = exchange.GetRecords(PERIOD_M30)
var atr = TA.ATR(records, 14)
Log(atr)
}
def main():
r = exchange.GetRecords(PERIOD_M30)
atr = TA.ATR(r, 14)
Log(atr)
void main() {
auto r = exchange.GetRecords(PERIOD_M30);
auto atr = TA.ATR(r, 14);
Log(atr);
}
کے ڈیفالٹ قدرoptInTimePeriod
پیرامیٹرTA.ATR()
فنکشن ہے:14
.
{@fun/TA/TA.MACD TA.MACD}، {@fun/TA/TA.KDJ TA.KDJ}، {@fun/TA/TA.RSI TA.RSI}، {@fun/TA/TA.OBV TA.OBV}، {@fun/TA/TA.MA}،TA.MA}، {@fun/TA/TA.EMA TA.EMA}، {@fun/TA/TA.BOLL TA.BOLL}، {@fun/TA/TA.Alligator TA.Alligator}، {@fun/TA/TA.CMF TA.CMF}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA.Lowest TA.Lowest}، {@fun/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest
کےTA.OBV()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاتوانائی کی لہر کا اشارہ.
کی واپسی کی قیمتTA.OBV()
فنکشن ہے: ایک جہتی صف.
صف
TA.OBV ((inReal) TA.OBV ((inReal، inPriceV)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےinPriceV
پیرامیٹر کا استعمال ٹرانزیکشن کی رقم کے اعداد و شمار کی وضاحت کے لئے کیا جاتا ہے۔
inPriceV
غلط
{@struct/Record Record} ڈھانچہ صف
function main(){
var records = exchange.GetRecords(PERIOD_M30)
var obv = TA.OBV(records)
Log(obv)
}
def main():
r = exchange.GetRecords(PERIOD_M30)
obv = TA.OBV(r)
Log(obv)
void main() {
auto r = exchange.GetRecords(PERIOD_M30);
auto obv = TA.OBV(r);
Log(obv);
}
{@fun/TA/TA.MACD TA.MACD}، {@fun/TA/TA.KDJ TA.KDJ}، {@fun/TA/TA.RSI TA.RSI}، {@fun/TA/TA.ATR TA.ATR}، {@fun/TA/TA.MA}، {@fun/TA/TA.MA}، {@fun/TA/TA.ATR TA.ATR}، {@fun/TA/TA.MA}،TA.MA}، {@fun/TA/TA.EMA TA.EMA}، {@fun/TA/TA.BOLL TA.BOLL}، {@fun/TA/TA.Alligator TA.Alligator}، {@fun/TA/TA.CMF TA.CMF}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA.Lowest TA.Lowest}، {@fun/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest
کےTA.MA()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاایم اے سی ڈی اشارے.
کی واپسی کی قیمتTA.MA()
فنکشن ہے: ایک جہتی صف.
صف
TA.MA(غیر حقیقی)TA.MA(inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main(){
var records = exchange.GetRecords(PERIOD_M30)
var ma = TA.MA(records, 14)
Log(ma)
}
def main():
r = exchange.GetRecords(PERIOD_M30)
ma = TA.MA(r, 14)
Log(ma)
void main() {
auto r = exchange.GetRecords(PERIOD_M30);
auto ma = TA.MA(r, 14);
Log(ma);
}
کے ڈیفالٹ قدرoptInTimePeriod
پیرامیٹرTA.MA()
فنکشن ہے:9
.
{@fun/TA/TA.MACD TA.MACD}، {@fun/TA/TA.KDJ TA.KDJ}، {@fun/TA/TA.RSI TA.RSI}، {@fun/TA/TA.ATR TA.ATR}، {@fun/TA/TA.OBV TA.OBV}، {@fun/TA/TA.EMA TA.EMA}، {@fun/TA/TA.BOLL TA.BOLL}، {@fun/TA/TA.Alligator TA.Alligator}، {@fun/TA/TA.CM TA.F.CMF}، {@fun/TA/TA.Highest TA.HOST}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest TA.BOLL}، {@fun/TA/TA.BOLL}، {@fun/TA/TA.Lowest TA.Low
کےTA.EMA()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتااشاریاتی اوسط اشارے.
کی واپسی کی قیمتTA.EMA()
فنکشن ہے: ایک جہتی صف.
صف
TA.EMA ((inReal) TA.EMA ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main(){
var records = exchange.GetRecords()
// Determine if the number of K-line bars meets the calculation period of the indicator
if (records && records.length > 9) {
var ema = TA.EMA(records, 9)
Log(ema)
}
}
def main():
r = exchange.GetRecords()
if r and len(r) > 9:
ema = TA.EMA(r, 9)
Log(ema)
void main() {
auto r = exchange.GetRecords();
if(r.Valid && r.size() > 9) {
auto ema = TA.EMA(r, 9);
Log(ema);
}
}
کے ڈیفالٹ قدرoptInTimePeriod
پیرامیٹرTA.EMA()
فنکشن ہے:9
.
{@fun/TA/TA.MACD TA.MACD}، {@fun/TA/TA.KDJ TA.KDJ}، {@fun/TA/TA.RSI TA.RSI}، {@fun/TA/TA.ATR TA.ATR}، {@fun/TA/TA.OBV TA.OBV}، {@fun/TA/TA.MA}،TA.MA}، {@fun/TA/TA.BOLL TA.BOLL}، {@fun/TA/TA.Alligator TA.Alligator}، {@fun/TA/TA.CMF TA.CMF}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}
کےTA.BOLL()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتابولنگر بینڈ اشارے.
کی واپسی کی قیمتTA.BOLL()
فنکشن ایک دو جہتی صف ہے جس کی ساخت ہے:[upLine, midLine, downLine]
.
صف
TA.BOLL ((inReal) TA.BOLL ((inReal، نقطہ، ضرب)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےperiod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
مدت
غلط
نمبر
کےmultiplier
پیرامیٹر ضرب کو مقرر کرنے کے لئے استعمال کیا جاتا ہے.
ضرب
غلط
نمبر
function main() {
var records = exchange.GetRecords()
if(records && records.length > 20) {
var boll = TA.BOLL(records, 20, 2)
var upLine = boll[0]
var midLine = boll[1]
var downLine = boll[2]
Log(upLine)
Log(midLine)
Log(downLine)
}
}
def main():
r = exchange.GetRecords()
if r and len(r) > 20:
boll = TA.BOLL(r, 20, 2)
upLine = boll[0]
midLine = boll[1]
downLine = boll[2]
Log(upLine)
Log(midLine)
Log(downLine)
void main() {
auto r = exchange.GetRecords();
if(r.Valid && r.size() > 20) {
auto boll = TA.BOLL(r, 20, 2);
auto upLine = boll[0];
auto midLine = boll[1];
auto downLine = boll[2];
Log(upLine);
Log(midLine);
Log(downLine);
}
}
کے لئے ڈیفالٹ اقدارperiod
اورmultiplier
پیرامیٹرزTA.BOLL()
کام ہیں:20
اور2
.
{@fun/TA/TA.MACD TA.MACD}، {@fun/TA/TA.KDJ TA.KDJ}، {@fun/TA/TA.RSI TA.RSI}، {@fun/TA/TA.ATR TA.ATR}، {@fun/TA/TA.OBV TA.OBV}، {@fun/TA/TA.MA}،TA.MA}، {@fun/TA/TA.EMA TA.EMA}، {@fun/TA/TA.Alligator TA.Alligator}، {@fun/TA/TA.CMF TA.CMF}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}
کےTA.Alligator()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامگرمچھ کا اشارہ.
کی واپسی کی قیمتTA.Alligator()
فنکشن ایک دو جہتی صف ہے جس کی ساخت ہے:[jawLine, teethLine, lipsLine]
.
صف
TA.Alligator ((inReal) TA.Aligator ((InReal, jawLength, teethLength, lipsLength) چہرے کی لمبائی، دانت لمبائی، ہونٹوں کی لمبائی
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےjawLength
پیرامیٹر جبڑے کی مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
جبڑے کی لمبائی
غلط
نمبر
کےteethLength
پیرامیٹر دانتوں کی مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
دانت لمبائی
غلط
نمبر
کےlipsLength
پیرامیٹر اپر ہونٹ کی مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
ہونٹوں کی لمبائی
غلط
نمبر
function main(){
var records = exchange.GetRecords()
var alligator = TA.Alligator(records)
Log("jawLine:", alligator[0])
Log("teethLine:", alligator[1])
Log("lipsLine:", alligator[2])
}
def main():
records = exchange.GetRecords()
alligator = TA.Alligator(records)
Log("jawLine:", alligator[0])
Log("teethLine:", alligator[1])
Log("lipsLine:", alligator[2])
void main() {
auto records = exchange.GetRecords();
auto alligator = TA.Alligator(records);
Log("jawLine:", alligator[0]);
Log("teethLine:", alligator[1]);
Log("lipsLine:", alligator[2]);
}
کے ڈیفالٹ اقدارjawLength
, teethLength
، اورlipsLength
پیرامیٹرزTA.Alligator()
کام ہیں:13
, 8
، اور5
.
{@fun/TA/TA.MACD TA.MACD}، {@fun/TA/TA.KDJ TA.KDJ}، {@fun/TA/TA.RSI TA.RSI}، {@fun/TA/TA.ATR TA.ATR}، {@fun/TA/TA.OBV TA.OBV}، {@fun/TA/TA.MA}،TA.MA}، {@fun/TA/TA.EMA TA.EMA}، {@fun/TA/TA.BOLL TA.BOLL}، {@fun/TA/TA.CMF TA.CMF}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}
کےTA.CMF()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاچیکن منی فلو انڈیکیٹر.
کی واپسی کی قیمتTA.CMF()
فنکشن ہے: ایک جہتی صف.
صف
TA.CMF ((inReal) TA.CMF ((ان ریئل، ان پرائس وی)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےinPriceV
پیرامیٹر حجم کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceV
غلط
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var cmf = TA.CMF(records)
Log(cmf)
}
def main():
records = exchange.GetRecords()
cmf = TA.CMF(records)
Log(cmf)
void main() {
auto records = exchange.GetRecords();
auto cmf = TA.CMF(records);
Log(cmf);
}
{@fun/TA/TA.MACD TA.MACD}، {@fun/TA/TA.KDJ TA.KDJ}، {@fun/TA/TA.RSI TA.RSI}، {@fun/TA/TA.ATR TA.ATR}، {@fun/TA/TA.OBV TA.OBV}، {@fun/TA/TA.MA}،TA.MA}، {@fun/TA/TA.EMA TA.EMA}، {@fun/TA/TA.BOLL TA.BOLL}، {@fun/TA/TA.Alligator TA.Alligator}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.BOLL TA.BOLL}، {@fun/TA/TA.Alligator TA.Alligator}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}
کےTA.Highest()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامدت کی بلند ترین قیمت.
کےTA.Highest()
تقریب موجودہ بار کو خارج کرتے ہوئے آخری مخصوص مدت میں ایک وصف کی زیادہ سے زیادہ قیمت واپس کرتا ہے.
نمبر
TA.Highest ((InReal) TA.Highest ((inReal، مدت، attr)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےperiod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
مدت
غلط
نمبر
کےattr
پیرامیٹر صفات مقرر کرنے کے لئے استعمال کیا جاتا ہے، اختیاری طور پر:Open
, Close
, Low
, High
, Volume
, OpenInterest
.
ایٹر
غلط
سٹرنگ
function main() {
var records = exchange.GetRecords()
var highestForOpen = TA.Highest(records, 10, "Open")
Log(highestForOpen)
}
def main():
records = exchange.GetRecords()
highestForOpen = TA.Highest(records, 10, "Open")
Log(highestForOpen)
void main() {
auto records = exchange.GetRecords();
auto highestForOpen = TA.Highest(records.Open(), 10);
Log(highestForOpen);
}
مثال کے طور پر، اگرTA.Highest(records, 30, "High")
تقریب بلایا جاتا ہے، اگر مدت پیرامیٹرperiod
پر مقرر کیا گیا ہے0
، اس کا مطلب ہے کہ تمام حساب کرنے کے لئےBars
کے لائن کے اعداد و شمار کے ذریعے منتقلinReal
پیرامیٹر؛ اگر خصوصیت پیرامیٹرattr
وضاحت نہیں کی گئی ہے، K لائن کے اعداد و شمارinReal
پیرامیٹر ایک عام صف سمجھا جاتا ہے.
{@fun/TA/TA.MACD TA.MACD}، {@fun/TA/TA.KDJ TA.KDJ}، {@fun/TA/TA.RSI TA.RSI}، {@fun/TA/TA.ATR TA.ATR}، {@fun/TA/TA.OBV TA.OBV}، {@fun/TA/TA.MA}،TA.MA}، {@fun/TA/TA.EMA TA.EMA}، {@fun/TA/TA.BOLL TA.BOLL}، {@fun/TA/TA.Alligator TA.Alligator}، {@fun/TA/TA.CMF TA.CMF}، {@fun/TA/TA.Lowest TA.Lowest}
کےTA.Lowest()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامدت کم قیمت.
کےTA.Lowest()
فنکشن موجودہ بار کو چھوڑ کر آخری مخصوص مدت میں ایک خصوصیت کی کم سے کم قیمت واپس کرتا ہے۔
نمبر
TA.Lowest ((InReal) TA.Lowest ((inReal، مدت، attr)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےperiod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
مدت
غلط
نمبر
کےattr
پیرامیٹر صفات مقرر کرنے کے لئے استعمال کیا جاتا ہے، اختیاری طور پر:Open
, Close
, Low
, High
, Volume
, OpenInterest
.
ایٹر
غلط
سٹرنگ
function main() {
var records = exchange.GetRecords()
var lowestForOpen = TA.Lowest(records, 10, "Open")
Log(lowestForOpen)
}
def main():
records = exchange.GetRecords()
lowestForOpen = TA.Lowest(records, 10, "Open")
Log(lowestForOpen)
void main() {
auto records = exchange.GetRecords();
auto lowestForOpen = TA.Lowest(records.Open(), 10);
Log(lowestForOpen);
}
مثال کے طور پر، اگرTA.Lowest(records, 30, "Low")
تقریب بلایا جاتا ہے، اگر مدت پیرامیٹرperiod
پر مقرر کیا گیا ہے0
، اس کا مطلب ہے کہ تمام حساب کرنے کے لئےBars
کے لائن کے اعداد و شمار کے ذریعے منتقلinReal
پیرامیٹر؛ اگر خصوصیت پیرامیٹرattr
وضاحت نہیں کی گئی ہے، K لائن کے اعداد و شمارinReal
پیرامیٹر ایک عام صف سمجھا جاتا ہے.
کے استعمالTA.Highest()
اورTA.Lowest()
میں افعالC++
حکمت عملی کو نوٹ کرنا ضروری ہے کہHighest()
اورLowest()
افعال میں سے ہر ایک صرف 2 پیرامیٹرز ہیں.
اور پہلے پیرامیٹر میں منتقل کیا جاتا ہے K لائن کے اعداد و شمار نہیں ہےr
حاصل کیا جب تقریبauto r = exchange.GetRecords()
بلایا گیا تھا.
آپ کو فون کرنے کی ضرورتr
طریقہ اور مخصوص وصف کے اعداد و شمار میں منتقل. مثال کے طور پر،r.Close()
اختتامی قیمت کے اعداد و شمارClose
, High
, Low
, Open
, Volume
کے طور پرr.Close()
کال کا طریقہ
ٹیسٹ کا مثالC++
زبان کی حکمت عملی:
void main() {
Records r;
r.Valid = true;
for (auto i = 0; i < 10; i++) {
Record ele;
ele.Time = i * 100000;
ele.High = i * 10000;
ele.Low = i * 1000;
ele.Close = i * 100;
ele.Open = i * 10;
ele.Volume = i * 1;
r.push_back(ele);
}
for(int j = 0; j < r.size(); j++){
Log(r[j]);
}
// Note: the first parameter passed is not r, you need to call r.Close()
auto highest = TA.Highest(r.Close(), 8);
Log(highest);
}
{@fun/TA/TA.MACD TA.MACD}، {@fun/TA/TA.KDJ TA.KDJ}، {@fun/TA/TA.RSI TA.RSI}، {@fun/TA/TA.ATR TA.ATR}، {@fun/TA/TA.OBV TA.OBV}، {@fun/TA/TA.MA}،TA.MA}، {@fun/TA/TA.EMA TA.EMA}، {@fun/TA/TA.BOLL TA.BOLL}، {@fun/TA/TA.Alligator TA.Alligator}، {@fun/TA/TA.CMF TA.CMF}، {@fun/TA/TA.Highest TA.Highest}
کےTA.SMA()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاسادہ حرکت پذیر اوسط اشارے.
کی واپسی کی قیمتTA.SMA()
فنکشن ہے: ایک جہتی صف.
صف
TA.SMA ((inReal) TA.SMA ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main(){
var records = exchange.GetRecords(PERIOD_M30)
var sma = TA.SMA(records, 14)
Log(sma)
}
def main():
r = exchange.GetRecords(PERIOD_M30)
sma = TA.SMA(r, 14)
Log(sma)
void main() {
auto r = exchange.GetRecords(PERIOD_M30);
auto sma = TA.SMA(r, 14);
Log(sma);
}
کے ڈیفالٹ قدرoptInTimePeriod
پیرامیٹرTA.SMA()
فنکشن ہے:9
.
{@fun/TA/TA.MACD TA.MACD}، {@fun/TA/TA.KDJ TA.KDJ}، {@fun/TA/TA.RSI TA.RSI}، {@fun/TA/TA.ATR TA.ATR}، {@fun/TA/TA.OBV TA.OBV}، {@fun/TA/TA.MA}،TA.MA}، {@fun/TA/TA.EMA TA.EMA}، {@fun/TA/TA.BOLL TA.BOLL}، {@fun/TA/TA.Alligator TA.Alligator}، {@fun/TA/TA.CMF TA.CMF}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Highest TA.Highest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest TA.Lowest}، {@fun/TA.Lowest TA.Lowest}، {@fun/TA.Lowest TA.Lowest}، {@fun/TA/TA.Lowest
کےtalib.CDL2CROWS()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےدو کرو (کے لائن چارٹ - دو کرو).
کی واپسی کی قیمتtalib.CDL2CROWS()
فنکشن ایک جہتی صف ہے.
صف
talib.CDL2CROWS ((inPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDL2CROWS(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDL2CROWS(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDL2CROWS(records);
Log(ret);
}
کےCDL2CROWS()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDL2CROWS(Records[Open,High,Low,Close]) = Array(outInteger)
میں کالوں کے لئےPython
زبان، گزرنے کے پیرامیٹرز مختلف ہے اور مندرجہ بالا وضاحت پر مبنی ہونا ضروری ہے:Records[Open,High,Low,Close]
.
متغیر کو تقسیم کرنے کا مثالrecords
(یعنی پیرامیٹرinPriceOHLC
، ٹائپ {@struct/Record Record} ڈھانچے کی صف) میں:Open
فہرست: پائیتھون میں لکھا گیا ہےrecords.Open
.
High
فہرست: لکھا ہےrecords.High
پیتھون میں.Low
فہرست: پائیتھون میں لکھا گیا ہےrecords.Low
.
Close
فہرست: پائیتھون میں لکھا گیا ہےrecords.Close
.
پائیتھون حکمت عملی کوڈ میں بلایا:
talib.CDL2CROWS(records.Open, records.High, records.Low, records.Close)
دوسرےtalib
اشارے اسی طرح سے بیان کیے گئے ہیں اور وہ دہرائے نہیں جائیں گے۔
کےtalib.CDL3BLACKCROWS()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےتین سیاہ کرو (کے لائن چارٹ - تین سیاہ کرو).
کی واپسی کی قیمتtalib.CDL3BLACKCROWS()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDL3BLACKCROWS ((inPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDL3BLACKCROWS(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDL3BLACKCROWS(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDL3BLACKCROWS(records);
Log(ret);
}
کےCDL3BLACKCROWS()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDL3BLACKCROWS(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDL3INSIDE()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےتین اندر اوپر/نیچے (کے لائن چارٹ: تین اندر اوپر/نیچے).
کی واپسی کی قیمتtalib.CDL3INSIDE()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDL3INSIDE ((inPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDL3INSIDE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDL3INSIDE(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDL3INSIDE(records);
Log(ret);
}
کےCDL3INSIDE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDL3INSIDE(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDL3LINESTRIKE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاتھری لائن اسٹرائیک (کے لائن چارٹ: تھری لائن اسٹرائیک).
کی واپسی کی قیمتtalib.CDL3LINESTRIKE()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDL3LINESTRIKE ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDL3LINESTRIKE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDL3LINESTRIKE(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDL3LINESTRIKE(records);
Log(ret);
}
کےCDL3LINESTRIKE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDL3LINESTRIKE(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDL3OUTSIDE()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےتین بیرونی اوپر/نیچے (K لائن چارٹ: تین بیرونی اوپر/نیچے).
کی واپسی کی قیمتtalib.CDL3OUTSIDE()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDL3OUTSIDE ((inPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDL3OUTSIDE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDL3OUTSIDE(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDL3OUTSIDE(records);
Log(ret);
}
کےCDL3OUTSIDE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDL3OUTSIDE(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDL3STARSINSOUTH()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےتھری اسٹارز ان دی ساؤتھ (کے لائن چارٹ: تھری اسٹارز ان دی ساؤتھ).
کی واپسی کی قیمتtalib.CDL3STARSINSOUTH()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDL3STARSINSOUTH ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDL3STARSINSOUTH(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDL3STARSINSOUTH(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDL3STARSINSOUTH(records);
Log(ret);
}
کےCDL3STARSINSOUTH()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDL3STARSINSOUTH(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDL3WHITESOLDIERS()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےتین آگے بڑھنے والے سفید فوجی (کے لائن چارٹ: تین آگے بڑھنے والے سفید فوجی).
کی واپسی کی قیمتtalib.CDL3WHITESOLDIERS()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDL3WHITESOLDIERS ((inPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDL3WHITESOLDIERS(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDL3WHITESOLDIERS(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDL3WHITESOLDIERS(records);
Log(ret);
}
کےCDL3WHITESOLDIERS()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDL3WHITESOLDIERS(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLABANDONEDBABY()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےترک شدہ بچہ (کی لائن چارٹ: ترک شدہ بچہ).
کی واپسی کی قیمتtalib.CDLABANDONEDBABY()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLABANDONEDBABY ((PriceOHLC میں) talib.CDLABANDONEDBABY ((PriceOHLC میں، optInPenetration میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInPenetration
پیرامیٹر دخول مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.3 ہے.
optInPenetration
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLABANDONEDBABY(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLABANDONEDBABY(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLABANDONEDBABY(records);
Log(ret);
}
کےCDLABANDONEDBABY()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLABANDONEDBABY(Records[Open,High,Low,Close],Penetration = 0.3) = Array(outInteger)
کےtalib.CDLADVANCEBLOCK()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاایڈوانس بلاک (کے لائن چارٹ: ایڈوانس).
کی واپسی کی قیمتtalib.CDLADVANCEBLOCK()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLADVANCEBLOCK ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLADVANCEBLOCK(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLADVANCEBLOCK(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLADVANCEBLOCK(records);
Log(ret);
}
کےCDLADVANCEBLOCK()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLADVANCEBLOCK(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLBELTHOLD()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتابیلٹ تھام (K لائن چارٹ: بیلٹ تھام).
کی واپسی کی قیمتtalib.CDLBELTHOLD()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLBELTHOLD ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLBELTHOLD(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLBELTHOLD(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLBELTHOLD(records);
Log(ret);
}
کےCDLBELTHOLD()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLBELTHOLD(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLBREAKAWAY()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتابریک وے (K لائن چارٹ: بریک وے).
کی واپسی کی قیمتtalib.CDLBREAKAWAY()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLBREAKAWAY ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLBREAKAWAY(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLBREAKAWAY(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLBREAKAWAY(records);
Log(ret);
}
CDLBREAKAWAY()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLBREAKAWAY(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLCLOSINGMARUBOZU()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےماروبوزو بند کرنا (کے لائن چارٹ: ننگے سر اور ننگے پاؤں بند کرنا).
کی واپسی کی قیمتtalib.CDLCLOSINGMARUBOZU()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLCLOSINGMARUBOZU ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLCLOSINGMARUBOZU(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLCLOSINGMARUBOZU(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLCLOSINGMARUBOZU(records);
Log(ret);
}
کےCDLCLOSINGMARUBOZU()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLCLOSINGMARUBOZU(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLCONCEALBABYSWALL()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاچھپانا بیبی سلو (K لائن چارٹ: چھپانا بیبی سلو پیٹرن).
کی واپسی کی قیمتtalib.CDLCONCEALBABYSWALL()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLCONCEALBABYSWALL ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLCONCEALBABYSWALL(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLCONCEALBABYSWALL(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLCONCEALBABYSWALL(records);
Log(ret);
}
کےCDLCONCEALBABYSWALL()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLCONCEALBABYSWALL(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLCOUNTERATTACK()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےجوابی حملہ (کے لائن چارٹ: جوابی حملہ).
کی واپسی کی قیمتtalib.CDLCOUNTERATTACK()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLCOUNTERATTACK ((ان پرائس او ایچ ایل سی)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLCOUNTERATTACK(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLCOUNTERATTACK(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLCOUNTERATTACK(records);
Log(ret);
}
کےCDLCOUNTERATTACK()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLCOUNTERATTACK(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLDARKCLOUDCOVER()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےسیاہ بادل کا احاطہ (K لائن چارٹ: سیاہ بادل کا احاطہ).
کی واپسی کی قیمتtalib.CDLDARKCLOUDCOVER()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLDARKCLOUDCOVER ((PriceOHLC میں) talib.CDLDARKCLOUDCOVER ((PriceOHLC میں، optInPenetration میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInPenetration
پیرامیٹر دخول مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.5 ہے.
optInPenetration
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLDARKCLOUDCOVER(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLDARKCLOUDCOVER(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLDARKCLOUDCOVER(records);
Log(ret);
}
کےCDLDARKCLOUDCOVER()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLDARKCLOUDCOVER(Records[Open,High,Low,Close],Penetration = 0.5) = Array(outInteger)
کےtalib.CDLDOJI()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےڈوجی (کی لائن چارٹ: ڈوجی).
کی واپسی کی قیمتtalib.CDLDOJI()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLDOJI ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLDOJI(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLDOJI(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLDOJI(records);
Log(ret);
}
کےCDLDOJI()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLDOJI(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLDOJISTAR()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاڈوجی اسٹار (کے لائن چارٹ: ڈوجی اسٹار).
کی واپسی کی قیمتtalib.CDLDOJISTAR()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLDOJISTAR ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLDOJISTAR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLDOJISTAR(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLDOJISTAR(records);
Log(ret);
}
کےCDLDOJISTAR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLDOJISTAR(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLDRAGONFLYDOJI()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےڈریگن فلائی ڈوجی (کے لائن چارٹ: ڈریگن فلائی ڈوجی).
کی واپسی کی قیمتtalib.CDLDRAGONFLYDOJI()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLDRAGONFLYDOJI ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLDRAGONFLYDOJI(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLDRAGONFLYDOJI(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLDRAGONFLYDOJI(records);
Log(ret);
}
کےCDLDRAGONFLYDOJI()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLDRAGONFLYDOJI(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLENGULFING()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتانگلنے کا نمونہ (K لائن چارٹ: نگلنے).
کی واپسی کی قیمتtalib.CDLENGULFING()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLENGULFING ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLENGULFING(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLENGULFING(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLENGULFING(records);
Log(ret);
}
کےCDLENGULFING()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLENGULFING(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLEVENINGDOJISTAR()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاایونٹ ڈوجی اسٹار (کے لائن چارٹ: ایونٹ ڈوجی اسٹار).
کی واپسی کی قیمتtalib.CDLEVENINGDOJISTAR()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLEVENINGDOJISTAR ((PriceOHLC میں) talib.CDLEVENINGDOJISTAR ((PriceOHLC میں، optInPenetration میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInPenetration
پیرامیٹر دخول مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.3 ہے.
optInPenetration
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLEVENINGDOJISTAR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLEVENINGDOJISTAR(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLEVENINGDOJISTAR(records);
Log(ret);
}
کےCDLEVENINGDOJISTAR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLEVENINGDOJISTAR(Records[Open,High,Low,Close],Penetration = 0.3) = Array(outInteger)
کےtalib.CDLEVENINGSTAR()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاشام کا ستارہ (K لائن چارٹ: شام کا ستارہ).
کی واپسی کی قیمتtalib.CDLEVENINGSTAR()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLEVENINGSTAR ((PriceOHLC میں) talib.CDLEVENINGSTAR ((PriceOHLC میں، optInPenetration میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInPenetration
پیرامیٹر دخول مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.3 ہے.
optInPenetration
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLEVENINGSTAR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLEVENINGSTAR(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLEVENINGSTAR(records);
Log(ret);
}
کےCDLEVENINGSTAR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLEVENINGSTAR(Records[Open,High,Low,Close],Penetration = 0.3) = Array(outInteger)
کےtalib.CDLGAPSIDESIDEWHITE()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےاوپر/نیچے کے فرق کے ساتھ ساتھ سفید لائنیں (K لائن چارٹ: اوپر/نیچے کے فرق کے ساتھ ساتھ سفید لائنیں).
کی واپسی کی قیمتtalib.CDLGAPSIDESIDEWHITE()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLGAPSIDESIDESWHITE ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLGAPSIDESIDEWHITE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLGAPSIDESIDEWHITE(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLGAPSIDESIDEWHITE(records);
Log(ret);
}
کےCDLGAPSIDESIDEWHITE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLGAPSIDESIDEWHITE(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLGRAVESTONEDOJI()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاقبرستان ڈوجی (کے لائن چارٹ: قبرستان ڈوجی).
کی واپسی کی قیمتtalib.CDLGRAVESTONEDOJI()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLGRAVESTONEDOJI ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLGRAVESTONEDOJI(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLGRAVESTONEDOJI(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLGRAVESTONEDOJI(records);
Log(ret);
}
کےCDLGRAVESTONEDOJI()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLGRAVESTONEDOJI(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLHAMMER()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےہتھوڑا (K لائن چارٹ: ہتھوڑا).
کی واپسی کی قیمتtalib.CDLHAMMER()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLHAMMER ((inPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLHAMMER(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLHAMMER(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLHAMMER(records);
Log(ret);
}
کےCDLHAMMER()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLHAMMER(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLHANGINGMAN()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےہینگنگ مین (کے لائن چارٹ: ہینگنگ مین).
کی واپسی کی قیمتtalib.CDLHANGINGMAN()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLHANGINGMAN ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLHANGINGMAN(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLHANGINGMAN(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLHANGINGMAN(records);
Log(ret);
}
کےCDLHANGINGMAN()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLHANGINGMAN(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLHARAMI()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاحرامی پیٹرن (کے لائن چارٹ: منفی اور مثبت لائنیں).
کی واپسی کی قیمتtalib.CDLHARAMI()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLHARAMI ((inPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLHARAMI(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLHARAMI(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLHARAMI(records);
Log(ret);
}
کےCDLHARAMI()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLHARAMI(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLHARAMICROSS()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاحرامی کراس پیٹرن (کے لائن چارٹ: منفی اور مثبت لائنوں کو عبور کریں).
کی واپسی کی قیمتtalib.CDLHARAMICROSS()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLHARAMICROSS ((inPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLHARAMICROSS(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLHARAMICROSS(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLHARAMICROSS(records);
Log(ret);
}
کےCDLHARAMICROSS()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLHARAMICROSS(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLHIGHWAVE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاہائی ویو موم بتی (کے لائن چارٹ: لانگ لیگ کراس).
کی واپسی کی قیمتtalib.CDLHIGHWAVE()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLHIGHWAVE ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLHIGHWAVE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLHIGHWAVE(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLHIGHWAVE(records);
Log(ret);
}
کےCDLHIGHWAVE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLHIGHWAVE(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLHIKKAKE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاہکاکے پیٹرن (کے لائن چارٹ: پھندا).
کی واپسی کی قیمتtalib.CDLHIKKAKE()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLHIKKAKE ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLHIKKAKE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLHIKKAKE(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLHIKKAKE(records);
Log(ret);
}
کےCDLHIKKAKE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLHIKKAKE(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLHIKKAKEMOD()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاترمیم شدہ ہکاکے پیٹرن (کے لائن چارٹ: ترمیم شدہ ٹریپ).
کی واپسی کی قیمتtalib.CDLHIKKAKEMOD()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLHIKKAKEMOD ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLHIKKAKEMOD(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLHIKKAKEMOD(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLHIKKAKEMOD(records);
Log(ret);
}
کےCDLHIKKAKEMOD()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLHIKKAKEMOD(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLHOMINGPIGEON()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاہومنگ کبوتر (K لائن چارٹ: کبوتر).
کی واپسی کی قیمتtalib.CDLHOMINGPIGEON()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLHOMINGPIGEON ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLHOMINGPIGEON(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLHOMINGPIGEON(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLHOMINGPIGEON(records);
Log(ret);
}
کےCDLHOMINGPIGEON()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLHOMINGPIGEON(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLIDENTICAL3CROWS()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےیکساں تین کرو (K لائن چارٹ: ایک ہی تین کرو).
کی واپسی کی قیمتtalib.CDLIDENTICAL3CROWS()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLIDENTICAL3CROWS ((InPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLIDENTICAL3CROWS(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLIDENTICAL3CROWS(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLIDENTICAL3CROWS(records);
Log(ret);
}
کےCDLIDENTICAL3CROWS()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLIDENTICAL3CROWS(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLINNECK()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاگردن میں پیٹرن (K لائن چارٹ: گردن).
کی واپسی کی قیمتtalib.CDLINNECK()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLINNECK ((inPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLINNECK(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLINNECK(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLINNECK(records);
Log(ret);
}
کےCDLINNECK()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLINNECK(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLINVERTEDHAMMER()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاالٹا ہتھوڑا (K لائن چارٹ: الٹا ہتھوڑا).
کی واپسی کی قیمتtalib.CDLINVERTEDHAMMER()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLINVERTEDHAMMER ((inPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLINVERTEDHAMMER(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLINVERTEDHAMMER(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLINVERTEDHAMMER(records);
Log(ret);
}
کےCDLINVERTEDHAMMER()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLINVERTEDHAMMER(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLKICKING()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےلات مارنا (کے لائن چارٹ: لات مارنا).
کی واپسی کی قیمتtalib.CDLKICKING()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLKICKING ((InPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLKICKING(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLKICKING(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLKICKING(records);
Log(ret);
}
کےCDLKICKING()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLKICKING(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLKICKINGBYLENGTH()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاکک - طویل ماروبوزو کی طرف سے طے شدہ بیل / ریچھ (K لائن چارٹ: کک بیل / ریچھ ریچھ).
کی واپسی کی قیمتtalib.CDLKICKINGBYLENGTH()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLKICKINGBYLENGTH ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLKICKINGBYLENGTH(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLKICKINGBYLENGTH(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLKICKINGBYLENGTH(records);
Log(ret);
}
کےCDLKICKINGBYLENGTH()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLKICKINGBYLENGTH(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLLADDERBOTTOM()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاسیڑھی کا نیچے (K لائن چارٹ: سیڑھی کا نیچے).
کی واپسی کی قیمتtalib.CDLLADDERBOTTOM()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLLADDERBOTTOM ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLLADDERBOTTOM(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLLADDERBOTTOM(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLLADDERBOTTOM(records);
Log(ret);
}
کےCDLLADDERBOTTOM()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLLADDERBOTTOM(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLLONGLEGGEDDOJI()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتالمبی ٹانگوں والا ڈوجی (کے لائن چارٹ: لمبی ٹانگوں والا ڈوجی).
کی واپسی کی قیمتtalib.CDLLONGLEGGEDDOJI()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLLONGLEGGEDDOJI ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLLONGLEGGEDDOJI(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLLONGLEGGEDDOJI(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLLONGLEGGEDDOJI(records);
Log(ret);
}
کےCDLLONGLEGGEDDOJI()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLLONGLEGGEDDOJI(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLLONGLINE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتالانگ لائن موم بتی (K لائن چارٹ: لانگ لائن).
کی واپسی کی قیمتtalib.CDLLONGLINE()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLLONGLINE ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLLONGLINE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLLONGLINE(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLLONGLINE(records);
Log(ret);
}
کےCDLLONGLINE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLLONGLINE(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLMARUBOZU()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاماروبوزو (کی لائن چارٹ: ننگے سر اور ننگے پاؤں).
کی واپسی کی قیمتtalib.CDLMARUBOZU()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLMARUBOZU ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLMARUBOZU(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLMARUBOZU(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLMARUBOZU(records);
Log(ret);
}
کےCDLMARUBOZU()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLMARUBOZU(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLMATCHINGLOW()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےمماثل کم (K لائن چارٹ: مماثل کم).
کی واپسی کی قیمتtalib.CDLMATCHINGLOW()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLMMATCHINGLOW ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLMATCHINGLOW(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLMATCHINGLOW(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLMATCHINGLOW(records);
Log(ret);
}
کےCDLMATCHINGLOW()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLMATCHINGLOW(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLMATHOLD()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےمیٹ ہولڈ (کی لائن چارٹ: میٹ ہولڈ).
کی واپسی کی قیمتtalib.CDLMATHOLD()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLMATHOLD ((PriceOHLC میں) talib.CDLMATHOLD ((inPriceOHLC، optInPenetration)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInPenetration
پیرامیٹر اختیاری ہے اور بڑھتی ہوئی / گرتی ہوئی رجحان لائن کی چوڑائی کا فیصد بتانے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.5 ہے۔
optInPenetration
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLMATHOLD(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLMATHOLD(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLMATHOLD(records);
Log(ret);
}
کےCDLMATHOLD()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLMATHOLD(Records[Open,High,Low,Close],Penetration = 0.5) = Array(outInteger)
کےtalib.CDLMORNINGDOJISTAR()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامارننگ ڈوجی اسٹار (کے لائن چارٹ: مارننگ ڈوجی اسٹار).
کی واپسی کی قیمتtalib.CDLMORNINGDOJISTAR()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLMORNINGDOJISTAR ((PriceOHLC میں) talib.CDLMORNINGDOJISTAR ((PriceOHLC میں، optInPenetration میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInPenetration
پیرامیٹر کو توثیق کی افتتاحی قیمت اور ٹھوس حصے کے درمیان اوورلیپ کی ڈگری کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے ، ڈیفالٹ ویلیو 0.3 ہے۔
optInPenetration
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLMORNINGDOJISTAR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLMORNINGDOJISTAR(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLMORNINGDOJISTAR(records);
Log(ret);
}
کےCDLMORNINGDOJISTAR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLMORNINGDOJISTAR(Records[Open,High,Low,Close],Penetration = 0.3) = Array(outInteger)
کےtalib.CDLMORNINGSTAR()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےمارننگ اسٹار (کے لائن چارٹ: مارننگ اسٹار).
کی واپسی کی قیمتtalib.CDLMORNINGSTAR()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLMORNINGSTAR ((PriceOHLC میں) talib.CDLMORNINGSTAR ((PriceOHLC میں، optInPenetration میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInPenetration
پیرامیٹر قیمت فلوٹ فی صد کی حد ہے جو رجحان کی تصدیق کے لئے ضروری ہے اور [0,1] کی حد میں ایک قدر لیتا ہے، جس میں ڈیفالٹ قدر 0.3 ہے.
optInPenetration
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLMORNINGSTAR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLMORNINGSTAR(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLMORNINGSTAR(records);
Log(ret);
}
کےCDLMORNINGSTAR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLMORNINGSTAR(Records[Open,High,Low,Close],Penetration=0.3) = Array(outInteger)
کےtalib.CDLONNECK()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاگردن پر پیٹرن (K لائن چارٹ: گردن پر پیٹرن).
کی واپسی کی قیمتtalib.CDLONNECK()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLONNECK ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLONNECK(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLONNECK(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLONNECK(records);
Log(ret);
}
کےCDLONNECK()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLONNECK(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLPIERCING()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاچھیدنے کا نمونہ (K لائن چارٹ: چھیدنے کا نمونہ).
کی واپسی کی قیمتtalib.CDLPIERCING()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLPIERCING ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLPIERCING(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLPIERCING(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLPIERCING(records);
Log(ret);
}
کےCDLPIERCING()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLPIERCING(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLRICKSHAWMAN()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےرکشہ مین (کے لائن چارٹ: رکشہ مین).
کی واپسی کی قیمتtalib.CDLRICKSHAWMAN()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLRICKSHAWMAN ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLRICKSHAWMAN(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLRICKSHAWMAN(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLRICKSHAWMAN(records);
Log(ret);
}
کےCDLRICKSHAWMAN()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLRICKSHAWMAN(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLRISEFALL3METHODS()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےبڑھتے/گھٹتے تین طریقے (K لائن چارٹ: بڑھتے/گھٹتے تین طریقے).
کی واپسی کی قیمتtalib.CDLRISEFALL3METHODS()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLRISEFALL3METHODS ((inPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLRISEFALL3METHODS(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLRISEFALL3METHODS(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLRISEFALL3METHODS(records);
Log(ret);
}
کےCDLRISEFALL3METHODS()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLRISEFALL3METHODS(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLSEPARATINGLINES()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےالگ کرنے والی لائنیں (K لائن چارٹ: الگ کرنے والی لائنیں).
کی واپسی کی قیمتtalib.CDLSEPARATINGLINES()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLSEPARATINGLINES ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLSEPARATINGLINES(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLSEPARATINGLINES(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLSEPARATINGLINES(records);
Log(ret);
}
کےCDLSEPARATINGLINES()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLSEPARATINGLINES(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLSHOOTINGSTAR()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاشوٹنگ اسٹار (کے لائن چارٹ: شوٹنگ اسٹار).
کی واپسی کی قیمتtalib.CDLSHOOTINGSTAR()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLSHOOTINGSTAR ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLSHOOTINGSTAR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLSHOOTINGSTAR(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLSHOOTINGSTAR(records);
Log(ret);
}
کےCDLSHOOTINGSTAR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLSHOOTINGSTAR(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLSHORTLINE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامختصر لائن موم بتی (K لائن چارٹ: مختصر لائن).
کی واپسی کی قیمتtalib.CDLSHORTLINE()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLSSORTLINE ((inPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLSHORTLINE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLSHORTLINE(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLSHORTLINE(records);
Log(ret);
}
کےCDLSHORTLINE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLSHORTLINE(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLSPINNINGTOP()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےسپننگ ٹاپ (کے لائن چارٹ: سپننگ ٹاپ).
کی واپسی کی قیمتtalib.CDLSPINNINGTOP()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLSPINNINGTOP ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLSPINNINGTOP(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLSPINNINGTOP(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLSPINNINGTOP(records);
Log(ret);
}
کےCDLSPINNINGTOP()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLSPINNINGTOP(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLSTALLEDPATTERN()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےسٹالڈ پیٹرن (K لائن چارٹ: سٹالڈ پیٹرن).
کی واپسی کی قیمتtalib.CDLSTALLEDPATTERN()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLSTALLEDPATTERN ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLSTALLEDPATTERN(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLSTALLEDPATTERN(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLSTALLEDPATTERN(records);
Log(ret);
}
کےCDLSTALLEDPATTERN()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLSTALLEDPATTERN(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLSTICKSANDWICH()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتااسٹک سینڈوچ (کے لائن چارٹ: اسٹک سینڈوچ).
کی واپسی کی قیمتtalib.CDLSTICKSANDWICH()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLSTICKSANDWICH ((ان قیمتOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLSTICKSANDWICH(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLSTICKSANDWICH(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLSTICKSANDWICH(records);
Log(ret);
}
کےCDLSTICKSANDWICH()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLSTICKSANDWICH(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLTAKURI()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےتاکوری (ڈریگن فلائی ڈوجی جس میں نیچے کی بہت لمبی سایہ لائن ہے) (کے لائن چارٹ: تاکوری).
کی واپسی کی قیمتtalib.CDLTAKURI()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLTAKURI ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLTAKURI(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLTAKURI(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLTAKURI(records);
Log(ret);
}
کےCDLTAKURI()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLTAKURI(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLTASUKIGAP()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاتاسوکی گیپ (کے لائن چارٹ: تاسوکی گیپ).
کی واپسی کی قیمتtalib.CDLTASUKIGAP()
فنکشن ایک جہتی صف ہے.
صف
talib.CDLTASUKIGAP ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLTASUKIGAP(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLTASUKIGAP(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLTASUKIGAP(records);
Log(ret);
}
کےCDLTASUKIGAP()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLTASUKIGAP(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLTHRUSTING()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتادھکا پیٹرن (K لائن چارٹ: دھکا پیٹرن).
کی واپسی کی قیمتtalib.CDLTHRUSTING()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLTHRUSTING ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLTHRUSTING(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLTHRUSTING(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLTHRUSTING(records);
Log(ret);
}
کےCDLTHRUSTING()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLTHRUSTING(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLTRISTAR()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاٹریسٹر پیٹرن (کے لائن چارٹ: ٹریسٹر پیٹرن).
کی واپسی کی قیمتtalib.CDLTRISTAR()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLTRISTAR ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLTRISTAR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLTRISTAR(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLTRISTAR(records);
Log(ret);
}
کےCDLTRISTAR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLTRISTAR(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLUNIQUE3RIVER()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامنفرد 3 دریا (K لائن چارٹ: منفرد 3 دریا).
کی واپسی کی قیمتtalib.CDLUNIQUE3RIVER()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLUNIQUE3RIVER ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLUNIQUE3RIVER(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLUNIQUE3RIVER(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLUNIQUE3RIVER(records);
Log(ret);
}
کےCDLUNIQUE3RIVER()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLUNIQUE3RIVER(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLUPSIDEGAP2CROWS()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےاوپسائیڈ گیپ دو کرو (K لائن چارٹ: اوپسائیڈ گیپ دو کرو).
کی واپسی کی قیمتtalib.CDLUPSIDEGAP2CROWS()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLUPSIDEGAP2CROWS ((inPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLUPSIDEGAP2CROWS(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLUPSIDEGAP2CROWS(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLUPSIDEGAP2CROWS(records);
Log(ret);
}
کےCDLUPSIDEGAP2CROWS()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLUPSIDEGAP2CROWS(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.CDLXSIDEGAP3METHODS()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےاوپر/نیچے کی طرف فرق تین طریقوں (K لائن چارٹ: اوپر/نیچے کی طرف فرق تین طریقوں).
کی واپسی کی قیمتtalib.CDLXSIDEGAP3METHODS()
فنکشن ہے: ایک جہتی صف.
صف
talib.CDLXSIDEGAP3METHODS ((PriceOHLC میں)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.CDLXSIDEGAP3METHODS(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CDLXSIDEGAP3METHODS(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CDLXSIDEGAP3METHODS(records);
Log(ret);
}
کےCDLXSIDEGAP3METHODS()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CDLXSIDEGAP3METHODS(Records[Open,High,Low,Close]) = Array(outInteger)
کےtalib.AD()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاچیکن اے/ڈی لائن (لائن اسٹوکاسٹک اشارے).
کی واپسی کی قیمتtalib.AD()
فنکشن ہے: ایک جہتی صف.
صف
talib.AD(PriceHLCV میں)
کےinPriceHLCV
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLCV
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.AD(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.AD(records.High, records.Low, records.Close, records.Volume)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.AD(records);
Log(ret);
}
کےAD()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:AD(Records[High,Low,Close,Volume]) = Array(outReal)
کےtalib.ADOSC()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاچیکن اے/ڈی آسکیلیٹر (چیکن آسکیلیٹر).
کی واپسی کی قیمتtalib.ADOSC()
فنکشن ایک جہتی صف ہے.
صف
talib.ADOSC ((inPriceHLCV) talib.ADOSC ((inPriceHLCV، optInFastPeriod، optInSlowPeriod)
کےinPriceHLCV
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLCV
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInFastPeriod
پیرامیٹر روزہ مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
optInFastPeriod
غلط
نمبر
کےoptInSlowPeriod
پیرامیٹر سست مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے.
optInSlowPeriod
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.ADOSC(records, 3, 10)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.ADOSC(records.High, records.Low, records.Close, records.Volume, 3, 10)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.ADOSC(records, 3, 10);
Log(ret);
}
کےADOSC()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:ADOSC(Records[High,Low,Close,Volume],Fast Period = 3,Slow Period = 10) = Array(outReal)
کےtalib.OBV()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےبیلنس حجم پر (توانائی کی لہر).
کی واپسی کی قیمتtalib.OBV()
فنکشن ایک جہتی صف ہے.
صف
talib.OBV ((inReal) talib.OBV ((inReal، inPriceV)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےinPriceV
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceV
غلط
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.OBV(records, records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.OBV(records.Close, records.Volume)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.OBV(records);
Log(ret);
}
کےOBV()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:OBV(Records[Close],Records[Volume]) = Array(outReal)
کےtalib.ACOS()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےویکٹر مثلث ACos (انورس کوسینوس فنکشن).
کی واپسی کی قیمتtalib.ACOS()
فنکشن ایک جہتی صف ہے.
صف
talib.ACOS ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var data = [-1, 0, 1]
var ret = talib.ACOS(data)
Log(ret)
}
import talib
import numpy as np
def main():
data = [-1.0, 0, 1.0]
ret = talib.ACOS(np.array(data))
Log(ret)
void main() {
std::vector<double> data = {-1, 0, 1};
auto ret = talib.ACOS(data);
Log(ret);
}
کےACOS()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:ACOS(Records[Close]) = Array(outReal)
کےtalib.ASIN()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاویکٹر ٹریگونومیٹرک ASin (انورس سینس فنکشن).
کی واپسی کی قیمتtalib.ASIN()
فنکشن ایک جہتی صف ہے.
صف
talib.ASIN ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var data = [-1, 0, 1]
var ret = talib.ASIN(data)
Log(ret)
}
import talib
import numpy as np
def main():
data = [-1.0, 0, 1.0]
ret = talib.ASIN(np.array(data))
Log(ret)
void main() {
std::vector<double> data = {-1, 0, 1};
auto ret = talib.ASIN(data);
Log(ret);
}
کےASIN()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:ASIN(Records[Close]) = Array(outReal)
کےtalib.ATAN()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاویکٹر مثلثی ATan (انورس ٹینجنٹ فنکشن).
کی واپسی کی قیمتtalib.ATAN()
فنکشن ہے: ایک جہتی صف.
صف
talib.ATAN ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var data = [-3.14/2, 0, 3.14/2]
var ret = talib.ATAN(data)
Log(ret)
}
import talib
import numpy as np
def main():
data = [-3.14/2, 0, 3.14/2]
ret = talib.ATAN(np.array(data))
Log(ret)
void main() {
std::vector<double> data = {-3.14/2, 0, 3.14/2};
auto ret = talib.ATAN(data);
Log(ret);
}
کےATAN()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:ATAN(Records[Close]) = Array(outReal)
کےtalib.CEIL()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےویکٹر چھت (گول کرنے کی تقریب).
کی واپسی کی قیمتtalib.CEIL()
فنکشن ایک جہتی صف ہے.
صف
talib.CEIL ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var records = exchange.GetRecords()
var ret = talib.CEIL(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CEIL(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CEIL(records);
Log(ret);
}
کےCEIL()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CEIL(Records[Close]) = Array(outReal)
کےtalib.COS()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاویکٹر مثلث Cos (cosine فنکشن).
کی واپسی کی قیمتtalib.COS()
فنکشن ہے: ایک جہتی صف.
صف
talib.COS ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var data = [-3.14, 0, 3.14]
var ret = talib.COS(data)
Log(ret)
}
import talib
import numpy as np
def main():
data = [-3.14, 0, 3.14]
ret = talib.COS(np.array(data))
Log(ret)
void main() {
std::vector<double> data = {-3.14, 0, 3.14};
auto ret = talib.COS(data);
Log(ret);
}
کےCOS()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:COS(Records[Close]) = Array(outReal)
کےtalib.COSH()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےویکٹر ٹرائگونومیٹرک کوش (ہائپربولک کوسینوس ویلیو).
کی واپسی کی قیمتtalib.COSH()
فنکشن ایک جہتی صف ہے.
صف
talib.COSH ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var data = [-1, 0, 1]
var ret = talib.COSH(data)
Log(ret)
}
import talib
import numpy as np
def main():
data = [-1.0, 0, 1.0]
ret = talib.COSH(np.array(data))
Log(ret)
void main() {
std::vector<double> data = {-1, 0, 1};
auto ret = talib.COSH(data);
Log(ret);
}
کےCOSH()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:COSH(Records[Close]) = Array(outReal)
کےtalib.EXP()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاویکٹر ریاضی Exp (اعداد و شمار کی تقریب).
کی واپسی کی قیمتtalib.EXP()
فنکشن ہے: ایک جہتی صف.
صف
talib.EXP ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var data = [0, 1, 2]
var ret = talib.EXP(data) // e^0, e^1, e^2
Log(ret)
}
import talib
import numpy as np
def main():
data = [0, 1.0, 2.0]
ret = talib.EXP(np.array(data))
Log(ret)
void main() {
std::vector<double> data = {0, 1.0, 2.0};
auto ret = talib.EXP(data);
Log(ret);
}
کےEXP()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:EXP(Records[Close]) = Array(outReal)
کےtalib.FLOOR()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاویکٹر فلور (نیچے کی طرف گول).
کی واپسی کی قیمتtalib.FLOOR()
فنکشن ایک جہتی صف ہے.
صف
talib.FLOOR ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var records = exchange.GetRecords()
var ret = talib.FLOOR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.FLOOR(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.FLOOR(records);
Log(ret);
}
کےFLOOR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:FLOOR(Records[Close]) = Array(outReal)
کےtalib.LN()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاویکٹر لاگ قدرتی (قدرتی لوگرتھم).
کی واپسی کی قیمتtalib.LN()
فنکشن ایک جہتی صف ہے.
صف
talib.LN ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var data = [1, 2, 3]
var ret = talib.LN(data)
Log(ret)
}
import talib
import numpy as np
def main():
data = [1.0, 2.0, 3.0]
ret = talib.LN(np.array(data))
Log(ret)
void main() {
std::vector<double> data = {1, 2, 3};
auto ret = talib.LN(data);
Log(ret);
}
کےLN()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:LN(Records[Close]) = Array(outReal)
کےtalib.LOG10()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےویکٹر لاگ 10 (لوگرتھمک فنکشن).
کی واپسی کی قیمتtalib.LOG10()
فنکشن ایک جہتی صف ہے.
صف
talib.LOG10 ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var data = [10, 100, 1000]
var ret = talib.LOG10(data)
Log(ret)
}
import talib
import numpy as np
def main():
data = [10.0, 100.0, 1000.0]
ret = talib.LOG10(np.array(data))
Log(ret)
void main() {
std::vector<double> data = {10, 100, 1000};
auto ret = talib.LOG10(data);
Log(ret);
}
کےLOG10()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:LOG10(Records[Close]) = Array(outReal)
کےtalib.SIN()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےویکٹر ٹرائگونومیٹرک سین (سائن ویلیو).
کی واپسی کی قیمتtalib.SIN()
فنکشن ایک جہتی صف ہے.
صف
talib.SIN ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var data = [-3.14/2, 0, 3.14/2]
var ret = talib.SIN(data)
Log(ret)
}
import talib
import numpy as np
def main():
data = [-3.14/2, 0, 3.14/2]
ret = talib.SIN(np.array(data))
Log(ret)
void main() {
std::vector<double> data = {-3.14/2, 0, 3.14/2};
auto ret = talib.SIN(data);
Log(ret);
}
کےSIN()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:SIN(Records[Close]) = Array(outReal)
کےtalib.SINH()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاویکٹر ٹرائگونومیٹرک سینگ (ہائپربولک سینس فنکشن).
کی واپسی کی قیمتtalib.SINH()
فنکشن ہے: ایک جہتی صف.
صف
talib.SINH ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var data = [-1, 0, 1]
var ret = talib.SINH(data)
Log(ret)
}
import talib
import numpy as np
def main():
data = [-1.0, 0, 1.0]
ret = talib.SINH(np.array(data))
Log(ret)
void main() {
std::vector<double> data = {-1, 0, 1};
auto ret = talib.SINH(data);
Log(ret);
}
کےSINH()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:SINH(Records[Close]) = Array(outReal)
کےtalib.SQRT()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاویکٹر مربع جڑ (ربع جڑ).
کی واپسی کی قیمتtalib.SQRT()
فنکشن ہے: ایک جہتی صف.
صف
talib.SQRT ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var data = [4, 64, 100]
var ret = talib.SQRT(data)
Log(ret)
}
import talib
import numpy as np
def main():
data = [4.0, 64.0, 100.0]
ret = talib.SQRT(np.array(data))
Log(ret)
void main() {
std::vector<double> data = {4, 64, 100};
auto ret = talib.SQRT(data);
Log(ret);
}
کےSQRT()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:SQRT(Records[Close]) = Array(outReal)
کےtalib.TAN()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاویکٹر ٹرائگونومیٹرک ٹین (ٹینجنٹ).
کی واپسی کی قیمتtalib.TAN()
فنکشن ایک جہتی صف ہے.
صف
talib.TAN ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var data = [-1, 0, 1]
var ret = talib.TAN(data)
Log(ret)
}
import talib
import numpy as np
def main():
data = [-1.0, 0, 1.0]
ret = talib.TAN(np.array(data))
Log(ret)
void main() {
std::vector<double> data = {-1, 0, 1};
auto ret = talib.TAN(data);
Log(ret);
}
کےTAN()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:TAN(Records[Close]) = Array(outReal)
کےtalib.TANH()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاویکٹر ٹرائگونومیٹرک ٹین (ہائپربولک ٹینجنٹ فنکشن).
کی واپسی کی قیمتtalib.TANH()
فنکشن ہے: ایک جہتی صف.
صف
talib.TANH ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var data = [-1, 0, 1]
var ret = talib.TANH(data)
Log(ret)
}
import talib
import numpy as np
def main():
data = [-1.0, 0, 1.0]
ret = talib.TANH(np.array(data))
Log(ret)
void main() {
std::vector<double> data = {-1, 0, 1};
auto ret = talib.TANH(data);
Log(ret);
}
کےTANH()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:TANH(Records[Close]) = Array(outReal)
کےtalib.MAX()
فنکشن ایک کے لئے سب سے زیادہ (زیادہ سے زیادہ) قدر کا حساب کرنے کے لئے استعمال کیا جاتا ہےمخصوص مدت.
کی واپسی کی قیمتtalib.MAX()
فنکشن ہے: ایک جہتی صف.
صف
talib.MAX ((inReal) talib.MAX ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MAX(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MAX(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MAX(records);
Log(ret);
}
کےMAX()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MAX(Records[Close],Time Period = 30) = Array(outReal)
کےtalib.MAXINDEX()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےمخصوص مدت میں سب سے زیادہ قیمت کا انڈیکس (زیادہ سے زیادہ انڈیکس).
کی واپسی کی قیمتtalib.MAXINDEX()
فنکشن ہے: ایک جہتی صف.
صف
talib.MAXINDEX ((inReal) talib.MAXINDEX ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MAXINDEX(records, 5)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MAXINDEX(records.Close, 5)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MAXINDEX(records, 5);
Log(ret);
}
کےMAXINDEX()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MAXINDEX(Records[Close],Time Period = 30) = Array(outInteger)
کےtalib.MIN()
فنکشن کا استعمال مخصوص مدت کے لئے کم سے کم قیمت (کم سے کم قیمت) ** کا حساب کرنے کے لئے کیا جاتا ہے۔
کی واپسی کی قیمتtalib.MIN()
فنکشن ہے: ایک جہتی صف.
صف
طالب.MIN ((inReal) talib.MIN ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MIN(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MIN(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MIN(records);
Log(ret);
}
کےMIN()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MIN(Records[Close],Time Period = 30) = Array(outReal)
کےtalib.MININDEX()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےکم ترین ویلیو انڈیکس (کم سے کم ویلیو انڈیکس)مخصوص مدت کے لیے۔
کی واپسی کی قیمتtalib.MININDEX()
فنکشن ہے: ایک جہتی صف.
صف
talib.MININDEX ((inReal) talib.MININDEX ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MININDEX(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MININDEX(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MININDEX(records);
Log(ret);
}
کےMININDEX()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MININDEX(Records[Close],Time Period = 30) = Array(outInteger)
کےtalib.MINMAX()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےمقررہ مدت کے لئے کم سے کم اور زیادہ سے زیادہ (کم سے کم اور زیادہ سے زیادہ) اقدار.
کی واپسی کی قیمتtalib.MINMAX()
فنکشن دو جہتی صف ہے۔ اس دو جہتی صف کا پہلا عنصر کم سے کم اقدار کی صف ہے ، اور دوسرا عنصر زیادہ سے زیادہ اقدار کی صف ہے۔
صف
talib.MINMAX ((inReal) talib.MINMAX ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MINMAX(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MINMAX(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MINMAX(records);
Log(ret);
}
کےMINMAX()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MINMAX(Records[Close],Time Period = 30) = [Array(outMin),Array(outMax)]
کےtalib.MINMAXINDEX()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےمخصوص مدت میں کم سے کم اور اعلی ترین (کم سے کم اور زیادہ سے زیادہ انڈیکس) اقدار کا انڈیکس.
کی واپسی کی قیمتtalib.MINMAXINDEX()
فنکشن ہے: ایک دو جہتی صف۔ اس دو جہتی صف کا پہلا عنصر کم سے کم انڈیکسڈ صف ہے ، اور دوسرا عنصر زیادہ سے زیادہ انڈیکسڈ صف ہے۔
صف
talib.MINMAXINDEX ((inReal) talib.MINMAXINDEX ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MINMAXINDEX(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MINMAXINDEX(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MINMAXINDEX(records);
Log(ret);
}
کےMINMAXINDEX()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MINMAXINDEX(Records[Close],Time Period = 30) = [Array(outMinIdx),Array(outMaxIdx)]
کےtalib.SUM()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےخلاصہ.
کی واپسی کی قیمتtalib.SUM()
فنکشن ہے: ایک جہتی صف.
صف
talib.SUM ((inReal) talib.SUM ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.SUM(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.SUM(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.SUM(records);
Log(ret);
}
کےSUM()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:SUM(Records[Close],Time Period = 30) = Array(outReal)
کےtalib.HT_DCPERIOD()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاہلبرٹ ٹرانسفارمیشن - غالب سائیکل مدت (ہلبرٹ ٹرانسفارمیشن ، غالب مدت).
کی واپسی کی قیمتtalib.HT_DCPERIOD()
فنکشن ہے: ایک جہتی صف.
صف
talib.HT_DCPERIOD ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var records = exchange.GetRecords()
var ret = talib.HT_DCPERIOD(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.HT_DCPERIOD(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.HT_DCPERIOD(records);
Log(ret);
}
کےHT_DCPERIOD()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:HT_DCPERIOD(Records[Close]) = Array(outReal)
کےtalib.HT_DCPHASE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاہلبرٹ ٹرانسفارمر - غالب سائیکل مرحلہ (ہلبرٹ ٹرانسفارمر ، غالب سائیکل مرحلہ).
کی واپسی کی قیمتtalib.HT_DCPHASE()
فنکشن ہے: ایک جہتی صف.
صف
talib.HT_DCPHASE ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var records = exchange.GetRecords()
var ret = talib.HT_DCPHASE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.HT_DCPHASE(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.HT_DCPHASE(records);
Log(ret);
}
کےHT_DCPHASE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:HT_DCPHASE(Records[Close]) = Array(outReal)
کےtalib.HT_PHASOR()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاہلبرٹ ٹرانسفارمر - فاسور اجزاء (ہلبرٹ ٹرانسفارمر ، فیز اجزاء).
کی واپسی کی قیمتtalib.HT_PHASOR()
ایک دو جہتی صف ہے.
صف
talib.HT_PHASOR ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var records = exchange.GetRecords()
var ret = talib.HT_PHASOR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.HT_PHASOR(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.HT_PHASOR(records);
Log(ret);
}
کےHT_PHASOR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:HT_PHASOR(Records[Close]) = [Array(outInPhase),Array(outQuadrature)]
کےtalib.HT_SINE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاہلبرٹ ٹرانسفارمیشن - سینوس ویو.
کی واپسی کی قیمتtalib.HT_SINE()
فنکشن ہے: ایک دو جہتی صف.
صف
talib.HT_SINE ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var records = exchange.GetRecords()
var ret = talib.HT_SINE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.HT_SINE(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.HT_SINE(records);
Log(ret);
}
کےHT_SINE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:HT_SINE(Records[Close]) = [Array(outSine),Array(outLeadSine)]
کےtalib.HT_TRENDMODE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاہلبرٹ ٹرانسفارمر - رجحان اور سائیکل موڈ.
کی واپسی کی قیمتtalib.HT_TRENDMODE()
فنکشن ہے: ایک جہتی صف.
صف
talib.HT_TRENDMODE ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var records = exchange.GetRecords()
var ret = talib.HT_TRENDMODE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.HT_TRENDMODE(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.HT_TRENDMODE(records);
Log(ret);
}
کےHT_TRENDMODE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:HT_TRENDMODE(Records[Close]) = Array(outInteger)
کےtalib.ATR()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتااوسط حقیقی رینج.
کی واپسی کی قیمتtalib.ATR()
فنکشن ایک جہتی صف ہے.
صف
talib.ATR ((inPriceHLC) talib.ATR ((inPriceHLC، optInTimePeriod)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.ATR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.ATR(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.ATR(records);
Log(ret);
}
کےATR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:ATR(Records[High,Low,Close],Time Period = 14) = Array(outReal)
کےtalib.NATR()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامعیاری اوسط حقیقی رینج.
کی واپسی کی قیمتtalib.NATR()
فنکشن ایک جہتی صف ہے.
صف
talib.NATR ((inPriceHLC) talib.NATR ((PriceHLC میں، optInTimePeriod میں)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.NATR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.NATR(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.NATR(records);
Log(ret);
}
کےNATR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:NATR(Records[High,Low,Close],Time Period = 14) = Array(outReal)
کےtalib.TRANGE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاحقیقی رینج.
کی واپسی کی قیمتtalib.TRANGE()
فنکشن ہے: ایک جہتی صف.
صف
talib.TRANGE ((PriceHLC میں)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.TRANGE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.TRANGE(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.TRANGE(records);
Log(ret);
}
کےTRANGE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:TRANGE(Records[High,Low,Close]) = Array(outReal)
کےtalib.BBANDS()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےبولنگر بینڈ.
کی واپسی کی قیمتtalib.BBANDS()
فنکشن ہے: ایک دو جہتی صف۔ صف میں تین عناصر شامل ہیں جو ہیں: اوپری لائن صف ، درمیانی لائن صف ، اور نچلی لائن صف۔
صف
talib.BBANDS ((inReal) talib.BBANDS ((inReal، optInTimePeriod) talib.BBANDS ((inReal، optInTimePeriod، optInNbDevUp) talib.BBANDS ((inReal، optInTimePeriod، optInNbDevUp، optInNbDevDn) talib.BBANDS ((inReal، optInTimePeriod، optInNbDevUp، optInNbDevDn، optInMAType)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 5 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
کےoptInNbDevUp
پیرامیٹر اپ لائن ضرب مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 2 ہے.
optInNbDevUp
غلط
نمبر
کےoptInNbDevDn
پیرامیٹر نچلی لائن ضرب مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 2 ہے.
optInNbDevDn
غلط
نمبر
کےoptInMAType
پیرامیٹر اوسط قسم مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0 ہے.
optInMAType
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.BBANDS(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.BBANDS(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.BBANDS(records);
Log(ret);
}
کےBBANDS()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:BBANDS(Records[Close],Time Period = 5,Deviations up = 2,Deviations down = 2,MA Type = 0) = [Array(outRealUpperBand),Array(outRealMiddleBand),Array(outRealLowerBand)]
کےtalib.DEMA()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاڈبل ایکسپونینشل چلتی اوسط.
کی واپسی کی قیمتtalib.DEMA()
فنکشن ایک جہتی صف ہے.
صف
طالب.ڈی ای ایم اے (ان ریئل) talib.DEMA ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.DEMA(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.DEMA(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.DEMA(records);
Log(ret);
}
کےDEMA()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:DEMA(Records[Close],Time Period = 30) = Array(outReal)
کےtalib.EMA()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتااشاریہ دار اوسط حرکت پذیر.
کی واپسی کی قیمتtalib.EMA()
فنکشن ایک جہتی صف ہے.
صف
طالب.ای ایم اے ((ان ریئل) talib.EMA ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.EMA(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.EMA(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.EMA(records);
Log(ret);
}
کےEMA()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:EMA(Records[Close],Time Period = 30) = Array(outReal)
کےtalib.HT_TRENDLINE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاہلبرٹ ٹرانسفارمر - فوری رجحان لائن (ہلبرٹ ٹرانسفارمر، فوری رجحان).
کی واپسی کی قیمتtalib.HT_TRENDLINE()
فنکشن ہے: ایک جہتی صف.
صف
talib.HT_TRENDLINE ((inReal)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
function main() {
var records = exchange.GetRecords()
var ret = talib.HT_TRENDLINE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.HT_TRENDLINE(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.HT_TRENDLINE(records);
Log(ret);
}
کےHT_TRENDLINE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:HT_TRENDLINE(Records[Close]) = Array(outReal)
کےtalib.KAMA()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاکافمین موافقت پذیر چلتی اوسط.
کی واپسی کی قیمتtalib.KAMA()
فنکشن ہے: ایک جہتی صف.
صف
تالیب.کاما ((ان ریئل) talib.KAMA ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.KAMA(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.KAMA(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.KAMA(records);
Log(ret);
}
کےKAMA()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:KAMA(Records[Close],Time Period = 30) = Array(outReal)
کےtalib.MA()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاچلتی اوسط.
کی واپسی کی قیمتtalib.MA()
فنکشن ہے: ایک جہتی صف.
صف
talib.MA(غیر حقیقی)talib.MA(inReal، optInTimePeriod)talib.MA(inReal، optInTimePeriod، optInMAType)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
کےoptInMAType
پیرامیٹر اوسط قسم مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0 ہے.
optInMAType
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MA(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MA(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MA(records);
Log(ret);
}
کےMA()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MA(Records[Close],Time Period = 30,MA Type = 0) = Array(outReal)
کےtalib.MAMA()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاMESA موافقت پذیر چلتی اوسط.
کی واپسی کی قیمتtalib.MAMA()
فنکشن ہے: ایک دو جہتی صف.
صف
تالیب.ماما ((ان ریئل) talib.MAMA ((inReal، optInFastLimit) talib.MAMA ((inReal، optInFastLimit، optInSlowLimit)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInFastLimit
پیرامیٹر فاسٹ حد مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.5 ہے.
optInFastLimit
غلط
نمبر
کےoptInSlowLimit
پیرامیٹر سست حد مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.05 ہے.
optInSlowLimit
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MAMA(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MAMA(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MAMA(records);
Log(ret);
}
کےMAMA()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MAMA(Records[Close],Fast Limit = 0.5,Slow Limit = 0.05) = [Array(outMAMA),Array(outFAMA)]
کےtalib.MIDPOINT()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامدت کے دوران درمیانی نقطہ (درمیانی نقطہ).
کی واپسی کی قیمتtalib.MIDPOINT()
فنکشن ایک جہتی صف ہے.
صف
talib.MIDPOINT ((inReal) talib.MIDPOINT ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MIDPOINT(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MIDPOINT(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MIDPOINT(records);
Log(ret);
}
کےMIDPOINT()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MIDPOINT(Records[Close],Time Period = 14) = Array(outReal)
کےtalib.MIDPRICE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامدت کے دوران درمیانی قیمت (درمیانی قیمت).
کی واپسی کی قیمتtalib.MIDPRICE()
فنکشن ایک جہتی صف ہے.
صف
talib.MIDPRICE ((inPriceHL) talib.MIDPRICE ((PriceHL میں، optInTimePeriod میں)
کےinPriceHL
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHL
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MIDPRICE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MIDPRICE(records.High, records.Low)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MIDPRICE(records);
Log(ret);
}
کےMIDPRICE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MIDPRICE(Records[High,Low],Time Period = 14) = Array(outReal)
کےtalib.SAR()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاپارابولک SAR.
کی واپسی کی قیمتtalib.SAR()
فنکشن ہے: ایک جہتی صف.
صف
talib.SAR ((inPriceHL) talib.SAR ((inPriceHL، optInAcceleration) talib.SAR ((inPriceHL، optInAcceleration، optInMaximum)
کےinPriceHL
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHL
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInAcceleration
پیرامیٹر تیز رفتار عنصر مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.02 ہے.
آپٹ ان تیز رفتار
غلط
نمبر
کےoptInMaximum
پیرامیٹر اے ایف زیادہ سے زیادہ مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.2 ہے.
optInMaximum
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.SAR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.SAR(records.High, records.Low)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.SAR(records);
Log(ret);
}
کےSAR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:SAR(Records[High,Low],Acceleration Factor = 0.02,AF Maximum = 0.2) = Array(outReal)
کےtalib.SAREXT()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاParabolic SAR - توسیع (بہتر Parabolic سٹیئرنگ).
کی واپسی کی قیمتtalib.SAREXT()
فنکشن ایک جہتی صف ہے.
صف
talib.SAREXT ((inPriceHL) talib.SAREXT ((inPriceHL، optInStartValue) talib.SAREXT ((inPriceHL، optInStartValue، optInOffsetOnReverse) talib.SAREXT ((inPriceHL، optInStartValue، optInOffsetOnReverse، optInAccelerationInitLong) talib.SAREXT ((inPriceHL، optInStartValue، optInOffsetOnReverse، optInAccelerationInitLong، optInAccelerationLong) talib.SAREXT ((inPriceHL، optInStartValue، optInOffsetOnReverse، optInAccelerationInitLong، optInAccelerationLong، optInAccelerationMaxLong) talib.SAREXT ((inPriceHL، optInStartValue، optInOffsetOnReverse، optInAccelerationInitLong، optInAccelerationLong، optInAccelerationMaxLong، optInAccelerationInitShort) talib.SAREXT ((inPriceHL، optInStartValue، optInOffsetOnReverse، optInAccelerationInitLong، optInAccelerationLong، optInAccelerationMaxLong، optInAccelerationInitShort، optInAccelerationShort) talib.SAREXT ((inPriceHL، optInStartValue، optInOffsetOnReverse، optInAccelerationInitLong، optInAccelerationLong، optInAccelerationMaxLong، optInAccelerationInitShort، optInAccelerationShort، optInAccelerationMaxShort)
کےinPriceHL
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHL
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInStartValue
پیرامیٹر سٹارٹ ویلیو مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0 ہے.
optInStartValue منتخب کریں
غلط
نمبر
کےoptInOffsetOnReverse
پیرامیٹر آفسیٹ ریورس پر مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0 ہے.
آپٹ ان آفسیٹ آن ریورس
غلط
نمبر
کےoptInAccelerationInitLong
پیرامیٹر AF Init Long مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.02 ہے.
آپٹInAccelerationInitLong
غلط
نمبر
کےoptInAccelerationLong
پیرامیٹر AF طویل مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.02 ہے.
اوپٹ ان ایکسلریشن لانگ
غلط
نمبر
کےoptInAccelerationMaxLong
پیرامیٹر اے ایف میکس لمبائی مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.2 ہے.
optInAccelerationMaxLong
غلط
نمبر
کےoptInAccelerationInitShort
پیرامیٹر AF Init مختصر مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.02 ہے.
اوپٹInAccelerationInitShort
غلط
نمبر
کےoptInAccelerationShort
پیرامیٹر AF مختصر مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.02 ہے.
اوپٹ ان ایکسلریشن شارٹ
غلط
نمبر
کےoptInAccelerationMaxShort
پیرامیٹر اے ایف میکس مختصر مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.2 ہے.
آپٹ انAccelerationMaxShort
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.SAREXT(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.SAREXT(records.High, records.Low)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.SAREXT(records);
Log(ret);
}
کےSAREXT()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:SAREXT(Records[High,Low],Start Value = 0,Offset on Reverse = 0,AF Init Long = 0.02,AF Long = 0.02,AF Max Long = 0.2,AF Init Short = 0.02,AF Short = 0.02,AF Max Short = 0.2) = Array(outReal)
کےtalib.SMA()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےسادہ چلتی اوسط.
کی واپسی کی قیمتtalib.SMA()
فنکشن ہے: ایک جہتی صف.
صف
تالیب.ایس ایم اے ((ان ریئل) talib.SMA ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.SMA(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.SMA(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.SMA(records);
Log(ret);
}
کےSMA()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:SMA(Records[Close],Time Period = 30) = Array(outReal)
کےtalib.T3()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاٹرپل ایکسپونینشل چلتی اوسط (T3) (ٹرپل ایکسپونینشل چلتی اوسط).
کی واپسی کی قیمتtalib.T3()
فنکشن ایک جہتی صف ہے.
صف
تالیب.T3 ((inReal) talib.T3 ((inReal، optInTimePeriod) talib.T3 ((inReal، optInTimePeriod، optInVFactor)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 5 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
کےoptInVFactor
پیرامیٹر حجم فیکٹر مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0.7 ہے.
optInVFactor
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.T3(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.T3(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.T3(records);
Log(ret);
}
کےT3()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:T3(Records[Close],Time Period = 5,Volume Factor = 0.7) = Array(outReal)
کےtalib.TEMA()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےٹرپل ایکسپونینشل چلتی اوسط.
کی واپسی کی قیمتtalib.TEMA()
فنکشن ایک جہتی صف ہے.
صف
تالیب.ٹیما ((ان ریئل) talib.TEMA ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.TEMA(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.TEMA(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.TEMA(records);
Log(ret);
}
کےTEMA()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:TEMA(Records[Close],Time Period = 30) = Array(outReal)
کےtalib.TRIMA()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامثلث حرکت پذیر اوسط (تین نمایاں حرکت پذیر اوسط).
کی واپسی کی قیمتtalib.TRIMA()
فنکشن ایک جہتی صف ہے.
صف
تالیب.TRIMA ((inReal) talib.TRIMA ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.TRIMA(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.TRIMA(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.TRIMA(records);
Log(ret);
}
کےTRIMA()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:TRIMA(Records[Close],Time Period = 30) = Array(outReal)
کےtalib.WMA()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاوزن شدہ چلتی اوسط (WMA).
کی واپسی کی قیمتtalib.WMA()
فنکشن ایک جہتی صف ہے.
صف
talib.WMA ((inReal) talib.WMA ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.WMA(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.WMA(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.WMA(records);
Log(ret);
}
کےWMA()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:WMA(Records[Close],Time Period = 30) = Array(outReal)
کےtalib.LINEARREG()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےلکیری رجعت.
کی واپسی کی قیمتtalib.LINEARREG()
فنکشن ایک جہتی صف ہے.
صف
talib.LINEARREG ((InReal) talib.LINEARREG ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.LINEARREG(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.LINEARREG(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.LINEARREG(records);
Log(ret);
}
کےLINEARREG()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:LINEARREG(Records[Close],Time Period = 14) = Array(outReal)
کےtalib.LINEARREG_ANGLE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتالکیری رجعت زاویہ.
کی واپسی کی قیمتtalib.LINEARREG_ANGLE()
فنکشن ہے: ایک جہتی صف.
صف
talib.LINEARREG_ANGLE ((inReal) talib.LINEARREG_ANGLE ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.LINEARREG_ANGLE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.LINEARREG_ANGLE(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.LINEARREG_ANGLE(records);
Log(ret);
}
کےLINEARREG_ANGLE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:LINEARREG_ANGLE(Records[Close],Time Period = 14) = Array(outReal)
کےtalib.LINEARREG_INTERCEPT()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتالکیری رجسٹریشن انٹرسیپٹ.
کی واپسی کی قیمتtalib.LINEARREG_INTERCEPT()
فنکشن ہے: ایک جہتی صف.
صف
talib.LINEARREG_INTERCEPT ((ان ریئل) talib.LINEARREG_INTERCEPT ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.LINEARREG_INTERCEPT(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.LINEARREG_INTERCEPT(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.LINEARREG_INTERCEPT(records);
Log(ret);
}
کےLINEARREG_INTERCEPT()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:LINEARREG_INTERCEPT(Records[Close],Time Period = 14) = Array(outReal)
کےtalib.LINEARREG_SLOPE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتالکیری رجعت جھکاؤ.
کی واپسی کی قیمتtalib.LINEARREG_SLOPE()
فنکشن ہے: ایک جہتی صف.
صف
talib.LINEARREG_SLOPE ((inReal) talib.LINEARREG_SLOPE ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.LINEARREG_SLOPE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.LINEARREG_SLOPE(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.LINEARREG_SLOPE(records);
Log(ret);
}
کےLINEARREG_SLOPE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:LINEARREG_SLOPE(Records[Close],Time Period = 14) = Array(outReal)
کےtalib.STDDEV()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےمعیاری انحراف.
کی واپسی کی قیمتtalib.STDDEV()
فنکشن ہے: ایک جہتی صف.
صف
talib.STDDEV ((inReal) talib.STDDEV ((inReal، optInTimePeriod) talib.STDDEV ((inReal، optInTimePeriod، optInNbDev)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 5 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
کےoptInNbDev
پیرامیٹر انحرافات مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 1 ہے.
optInNbDev
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.STDDEV(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.STDDEV(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.STDDEV(records);
Log(ret);
}
کےSTDDEV()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:STDDEV(Records[Close],Time Period = 5,Deviations = 1) = Array(outReal)
کےtalib.TSF()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےٹائم سیریز کی پیش گوئی.
کی واپسی کی قیمتtalib.TSF()
فنکشن ایک جہتی صف ہے.
صف
talib.TSF ((inReal) talib.TSF ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.TSF(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.TSF(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.TSF(records);
Log(ret);
}
کےTSF()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:TSF(Records[Close],Time Period = 14) = Array(outReal)
کےtalib.VAR()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےتغیر.
کی واپسی کی قیمتtalib.VAR()
فنکشن ہے: ایک جہتی صف.
صف
talib.VAR ((inReal) talib.VAR ((inReal، optInTimePeriod) talib.VAR ((inReal، optInTimePeriod، optInNbDev)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 5 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
کےoptInNbDev
پیرامیٹر انحرافات مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 1 ہے.
optInNbDev
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.VAR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.VAR(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.VAR(records);
Log(ret);
}
کےVAR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:VAR(Records[Close],Time Period = 5,Deviations = 1) = Array(outReal)
کےtalib.ADX()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتااوسط سمتی تحریک انڈیکس.
کی واپسی کی قیمتtalib.ADX()
فنکشن ایک جہتی صف ہے.
صف
talib.ADX ((inPriceHLC) talib.ADX ((inPriceHLC، optInTimePeriod)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.ADX(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.ADX(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.ADX(records);
Log(ret);
}
کےADX()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:ADX(Records[High,Low,Close],Time Period = 14) = Array(outReal)
کےtalib.ADXR()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتااوسط سمت کی نقل و حرکت انڈیکس کی درجہ بندی (امتحان انڈیکس).
کی واپسی کی قیمتtalib.ADXR()
فنکشن ایک جہتی صف ہے.
صف
talib.ADXR ((inPriceHLC) talib.ADXR ((inPriceHLC، optInTimePeriod)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.ADXR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.ADXR(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.ADXR(records);
Log(ret);
}
کےADXR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:ADXR(Records[High,Low,Close],Time Period = 14) = Array(outReal)
کےtalib.APO()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامطلق قیمت آسکیلیٹر.
کی واپسی کی قیمتtalib.APO()
فنکشن ہے: ایک جہتی صف.
صف
طالب.اے پی او ((ان ریئل) talib.APO ((inReal، optInFastPeriod) talib.APO ((inReal، optInFastPeriod، optInSlowPeriod) talib.APO ((inReal، optInFastPeriod، optInSlowPeriod، optInMAType)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInFastPeriod
پیرامیٹر تیز مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 12 ہے.
optInFastPeriod
غلط
نمبر
کےoptInSlowPeriod
پیرامیٹر سست مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 26 ہے.
optInSlowPeriod
غلط
نمبر
کےoptInMAType
پیرامیٹر اوسط قسم مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0 ہے.
optInMAType
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.APO(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.APO(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.APO(records);
Log(ret);
}
کےAPO()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:APO(Records[Close],Fast Period = 12,Slow Period = 26,MA Type = 0) = Array(outReal)
کےtalib.AROON()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاAroon (Aroon اشارے).
کی واپسی کی قیمتtalib.AROON()
ایک دو جہتی صف ہے.
صف
talib.AROON ((inPriceHL) talib.AROON ((PriceHL میں، optInTimePeriod میں)
کےinPriceHL
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHL
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.AROON(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.AROON(records.High, records.Low)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.AROON(records);
Log(ret);
}
کےAROON()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:AROON(Records[High,Low],Time Period = 14) = [Array(outAroonDown),Array(outAroonUp)]
کےtalib.AROONOSC()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاایرون آسکیلیٹر.
کی واپسی کی قیمتtalib.AROONOSC()
فنکشن ہے: ایک جہتی صف.
صف
talib.AROONOSC ((PriceHL میں) talib.AROONOSC ((PriceHL میں، optInTimePeriod میں)
کےinPriceHL
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHL
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.AROONOSC(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.AROONOSC(records.High, records.Low)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.AROONOSC(records);
Log(ret);
}
کےAROONOSC()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:AROONOSC(Records[High,Low],Time Period = 14) = Array(outReal)
کےtalib.BOP()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتااقتدار کا توازن.
کی واپسی کی قیمتtalib.BOP()
فنکشن ایک جہتی صف ہے.
صف
talib.BOP ((inPriceOHLC)
کےinPriceOHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceOHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.BOP(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.BOP(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.BOP(records);
Log(ret);
}
کےBOP()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:BOP(Records[Open,High,Low,Close]) = Array(outReal)
کےtalib.CCI()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاکموڈٹی چینل انڈیکس (ہومیوپیتھک اشارے).
کی واپسی کی قیمتtalib.CCI()
فنکشن ایک جہتی صف ہے.
صف
talib.CCI ((inPriceHLC) talib.CCI ((inPriceHLC، optInTimePeriod)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.CCI(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CCI(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CCI(records);
Log(ret);
}
کےCCI()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CCI(Records[High,Low,Close],Time Period = 14) = Array(outReal)
کےtalib.CMO()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاچینڈ مومنٹم اوسیلیٹر (سی ایم او).
کی واپسی کی قیمتtalib.CMO()
فنکشن ہے: ایک جہتی صف.
صف
طالب.سی ایم او ((ان ریئل) talib.CMO ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.CMO(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.CMO(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.CMO(records);
Log(ret);
}
کےCMO()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:CMO(Records[Close],Time Period = 14) = Array(outReal)
کےtalib.DX()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاسمت کی نقل و حرکت کا اشاریہ.
کی واپسی کی قیمتtalib.DX()
فنکشن ہے: ایک جہتی صف.
صف
talib.DX ((inPriceHLC) talib.DX ((inPriceHLC، optInTimePeriod)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.DX(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.DX(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.DX(records);
Log(ret);
}
کےDX()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:DX(Records[High,Low,Close],Time Period = 14) = Array(outReal)
کےtalib.MACD()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےچلتی اوسط کنورجنس/ڈائیورجنس (اضافی طور پر ہموار چلتی اوسط).
کی واپسی کی قیمتtalib.MACD()
فنکشن ہے: ایک دو جہتی صف.
صف
talib.MACD ((inReal) talib.MACD ((inReal، optInFastPeriod) talib.MACD ((inReal، optInFastPeriod، optInSlowPeriod) talib.MACD ((inReal، optInFastPeriod، optInSlowPeriod، optInSignalPeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInFastPeriod
پیرامیٹر تیز مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 12 ہے.
optInFastPeriod
غلط
نمبر
کےoptInSlowPeriod
پیرامیٹر سست مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 26 ہے.
optInSlowPeriod
غلط
نمبر
کےoptInSignalPeriod
پیرامیٹر سگنل کی مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 9 ہے.
optSignalPeriod سگنل کی مدت میں
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MACD(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MACD(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MACD(records);
Log(ret);
}
کےMACD()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MACD(Records[Close],Fast Period = 12,Slow Period = 26,Signal Period = 9) = [Array(outMACD),Array(outMACDSignal),Array(outMACDHist)]
کےtalib.MACDEXT()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےکنٹرول قابل MA قسم کے ساتھ MACD.
کی واپسی کی قیمتtalib.MACDEXT()
ایک دو جہتی صف ہے.
صف
talib.MACDEXT ((inReal) talib.MACDEXT ((inReal، optInFastPeriod) talib.MACDEXT ((inReal، optInFastPeriod، optInFastMAType) talib.MACDEXT ((inReal، optInFastPeriod، optInFastMAType، optInSlowPeriod) talib.MACDEXT ((inReal، optInFastPeriod، optInFastMAType، optInSlowPeriod، optInSlowMAType) talib.MACDEXT ((inReal، optInFastPeriod، optInFastMAType، optInSlowPeriod، optInSlowMAType، optInSignalPeriod) talib.MACDEXT ((inReal، optInFastPeriod، optInFastMAType، optInSlowPeriod، optInSlowMAType، optInSignalPeriod، optInSignalMAType)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInFastPeriod
پیرامیٹر تیز مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 12 ہے.
optInFastPeriod
غلط
نمبر
کےoptInFastMAType
پیرامیٹر تیز اوسط قسم مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0 ہے.
optInFastMAType
غلط
نمبر
کےoptInSlowPeriod
پیرامیٹر سست مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 26 ہے.
optInSlowPeriod
غلط
نمبر
کےoptInSlowMAType
پیرامیٹر سست اوسط قسم مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0 ہے.
optInSlowMAType
غلط
نمبر
کےoptInSignalPeriod
پیرامیٹر سگنل کی مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 9 ہے.
optSignalPeriod سگنل کی مدت میں
غلط
نمبر
کےoptInSignalMAType
پیرامیٹر سگنل کی اوسط قسم مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0 ہے.
optInSignalMAType
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MACDEXT(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MACDEXT(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MACDEXT(records);
Log(ret);
}
کےMACDEXT()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MACDEXT(Records[Close],Fast Period = 12,Fast MA = 0,Slow Period = 26,Slow MA = 0,Signal Period = 9,Signal MA = 0) = [Array(outMACD),Array(outMACDSignal),Array(outMACDHist)]
کےtalib.MACDFIX()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےحرکت پذیر اوسط کنورجنس/ڈائیورجنس فکس 12/26.
کی واپسی کی قیمتtalib.MACDFIX()
ایک دو جہتی صف ہے.
صف
talib.MACDFIX ((ان ریئل) talib.MACDFIX ((inReal، optInSignalPeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInSignalPeriod
پیرامیٹر سگنل کی مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 9 ہے.
optSignalPeriod سگنل کی مدت میں
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MACDFIX(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MACDFIX(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MACDFIX(records);
Log(ret);
}
کےMACDFIX()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MACDFIX(Records[Close],Signal Period = 9) = [Array(outMACD),Array(outMACDSignal),Array(outMACDHist)]
کےtalib.MFI()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامنی فلو انڈیکس.
کی واپسی کی قیمتtalib.MFI()
فنکشن ایک جہتی صف ہے.
صف
talib.MFI ((inPriceHLCV) talib.MFI ((inPriceHLCV، optInTimePeriod)
کےinPriceHLCV
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLCV
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MFI(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MFI(records.High, records.Low, records.Close, records.Volume)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MFI(records);
Log(ret);
}
کےMFI()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MFI(Records[High,Low,Close,Volume],Time Period = 14) = Array(outReal)
کےtalib.MINUS_DI()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامنفی سمت کا اشارے (منفی اشارے).
کی واپسی کی قیمتtalib.MINUS_DI()
فنکشن ایک جہتی صف ہے.
صف
talib.MINUS_DI ((inPriceHLC) talib.MINUS_DI ((PriceHLC میں، optInTimePeriod میں)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MINUS_DI(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MINUS_DI(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MINUS_DI(records);
Log(ret);
}
کےMINUS_DI()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MINUS_DI(Records[High,Low,Close],Time Period = 14) = Array(outReal)
کےtalib.MINUS_DM()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامائنس سمت کی تحریک (منفی تحریک).
کی واپسی کی قیمتtalib.MINUS_DM()
فنکشن ایک جہتی صف ہے.
صف
talib.MINUS_DM ((inPriceHL) talib.MINUS_DM ((PriceHL میں، optInTimePeriod میں)
کےinPriceHL
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHL
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MINUS_DM(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MINUS_DM(records.High, records.Low)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MINUS_DM(records);
Log(ret);
}
کےMINUS_DM()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MINUS_DM(Records[High,Low],Time Period = 14) = Array(outReal)
کےtalib.MOM()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےرفتار.
کی واپسی کی قیمتtalib.MOM()
فنکشن ایک جہتی صف ہے.
صف
talib.MOM ((inReal) talib.MOM ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 10 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.MOM(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MOM(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MOM(records);
Log(ret);
}
کےMOM()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MOM(Records[Close],Time Period = 10) = Array(outReal)
کےtalib.PLUS_DI()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاپلس سمت اشارے.
کی واپسی کی قیمتtalib.PLUS_DI()
فنکشن ہے: ایک جہتی صف.
صف
talib.PLUS_DI ((inPriceHLC) talib.PLUS_DI ((inPriceHLC، optInTimePeriod)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.PLUS_DI(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.PLUS_DI(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.PLUS_DI(records);
Log(ret);
}
کےPLUS_DI()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:PLUS_DI(Records[High,Low,Close],Time Period = 14) = Array(outReal)
کےtalib.PLUS_DM()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےپلس سمت کی نقل و حرکت.
کی واپسی کی قیمتtalib.PLUS_DM()
فنکشن ایک جہتی صف ہے.
صف
talib.PLUS_DM ((inPriceHL) talib.PLUS_DM ((inPriceHL، optInTimePeriod)
کےinPriceHL
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHL
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.PLUS_DM(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.PLUS_DM(records.High, records.Low)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.PLUS_DM(records);
Log(ret);
}
کےPLUS_DM()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:PLUS_DM(Records[High,Low],Time Period = 14) = Array(outReal)
کےtalib.PPO()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتافیصد قیمت آسکیلیٹر.
کی واپسی کی قیمتtalib.PPO()
فنکشن ایک جہتی صف ہے.
صف
تالیب.پی پی او ((ان ریئل) talib.PPO ((inReal، optInFastPeriod) talib.PPO ((inReal، optInFastPeriod، optInSlowPeriod) talib.PPO ((inReal، optInFastPeriod، optInSlowPeriod، optInMAType)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInFastPeriod
پیرامیٹر تیز مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 12 ہے.
optInFastPeriod
غلط
نمبر
کےoptInSlowPeriod
پیرامیٹر سست مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 26 ہے.
optInSlowPeriod
غلط
نمبر
کےoptInMAType
پیرامیٹر اوسط قسم مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0 ہے.
optInMAType
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.PPO(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.PPO(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.PPO(records);
Log(ret);
}
کےPPO()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:PPO(Records[Close],Fast Period = 12,Slow Period = 26,MA Type = 0) = Array(outReal)
کےtalib.ROC()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےشرح تبدیلی: ((قیمت/پریویٹ قیمت) -1) * 100 (تغیر کی شرح اشارے).
کی واپسی کی قیمتtalib.ROC()
فنکشن ایک جہتی صف ہے.
صف
talib.ROC ((inReal) talib.ROC ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 10 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.ROC(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.ROC(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.ROC(records);
Log(ret);
}
کےROC()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:ROC(Records[Close],Time Period = 10) = Array(outReal)
کےtalib.ROCP()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےشرح تبدیلی فیصد: (قیمت سے پہلے) /prevPrice (قیمت میں تبدیلی کی شرح).
کی واپسی کی قیمتtalib.ROCP()
فنکشن ہے: ایک جہتی صف.
صف
talib.ROCP ((inReal) talib.ROCP ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 10 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.ROCP(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.ROCP(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.ROCP(records);
Log(ret);
}
کےROCP()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:ROCP(Records[Close],Time Period = 10) = Array(outReal)
کےtalib.ROCR()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاشرح تبدیلی کا تناسب: (قیمت/پہلی قیمت) (قیمتوں میں تبدیلی کا تناسب).
کی واپسی کی قیمتtalib.ROCR()
فنکشن ایک جہتی صف ہے.
صف
talib.ROCR ((inReal) talib.ROCR ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 10 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.ROCR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.ROCR(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.ROCR(records);
Log(ret);
}
کےROCR()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:ROCR(Records[Close],Time Period = 10) = Array(outReal)
کےtalib.ROCR100()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےشرح تبدیلی کا تناسب 100 پیمانہ: (قیمت/پریپریس) *100 (قیمتوں میں تبدیلی کا تناسب).
کی واپسی کی قیمتtalib.ROCR100()
فنکشن ہے: ایک جہتی صف.
صف
talib.ROCR100 ((inReal) talib.ROCR100 ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 10 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.ROCR100(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.ROCR100(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.ROCR100(records);
Log(ret);
}
کےROCR100()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:ROCR100(Records[Close],Time Period = 10) = Array(outReal)
کےtalib.RSI()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتارشتہ دار طاقت کا انڈیکس.
کی واپسی کی قیمتtalib.RSI()
فنکشن ایک جہتی صف ہے.
صف
talib.RSI ((inReal) talib.RSI ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.RSI(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.RSI(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.RSI(records);
Log(ret);
}
کےRSI()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:RSI(Records[Close],Time Period = 14) = Array(outReal)
کےtalib.STOCH()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتااسٹوکاسٹک (STOCH اشارے).
کی واپسی کی قیمتtalib.STOCH()
ایک دو جہتی صف ہے.
صف
talib.STOCH ((inPriceHLC) talib.STOCH ((inPriceHLC، optInFastK_Period) talib.STOCH ((inPriceHLC، optInFastK_Period، optInSlowK_Period) talib.STOCH ((inPriceHLC، optInFastK_Period، optInSlowK_Period، optInSlowK_MAType) talib.STOCH ((inPriceHLC، optInFastK_Period، optInSlowK_Period، optInSlowK_MAType، optInSlowD_Period) talib.STOCH ((inPriceHLC، optInFastK_Period، optInSlowK_Period، optInSlowK_MAType، optInSlowD_Period، optInSlowD_MAType)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInFastK_Period
پیرامیٹر فاسٹ-K مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 5 ہے.
optInFastK_Period
غلط
نمبر
کےoptInSlowK_Period
پیرامیٹر سست-K مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 3 ہے.
optInSlowK_Period
غلط
نمبر
کےoptInSlowK_MAType
پیرامیٹر سست-K اوسط قسم مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0 ہے.
optInSlowK_MAType
غلط
نمبر
کےoptInSlowD_Period
پیرامیٹر سست D مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 3 ہے.
optInSlowD_Period
غلط
نمبر
کےoptInSlowD_MAType
پیرامیٹر سست D اوسط قسم مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0 ہے.
optInSlowD_MAType
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.STOCH(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.STOCH(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.STOCH(records);
Log(ret);
}
کےSTOCH()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:STOCH(Records[High,Low,Close],Fast-K Period = 5,Slow-K Period = 3,Slow-K MA = 0,Slow-D Period = 3,Slow-D MA = 0) = [Array(outSlowK),Array(outSlowD)]
کےtalib.STOCHF()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتااسٹوکاسٹک فاسٹ (فاسٹ اسٹاک اشارے).
کی واپسی کی قیمتtalib.STOCHF()
ایک دو جہتی صف ہے.
صف
talib.STOCHF ((inPriceHLC) talib.STOCHF ((inPriceHLC، optInFastK_Period) talib.STOCHF ((inPriceHLC، optInFastK_Period، optInFastD_Period) talib.STOCHF ((inPriceHLC، optInFastK_Period، optInFastD_Period، optInFastD_MAType)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInFastK_Period
پیرامیٹر فاسٹ-K مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 5 ہے.
optInFastK_Period
غلط
نمبر
کےoptInFastD_Period
پیرامیٹر فاسٹ ڈی مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 3 ہے.
optInFastD_Period
غلط
نمبر
کےoptInFastD_MAType
پیرامیٹر فاسٹ ڈی اوسط قسم مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0 ہے.
optInFastD_MAType
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.STOCHF(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.STOCHF(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.STOCHF(records);
Log(ret);
}
کےSTOCHF()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:STOCHF(Records[High,Low,Close],Fast-K Period = 5,Fast-D Period = 3,Fast-D MA = 0) = [Array(outFastK),Array(outFastD)]
کےtalib.STOCHRSI()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتااسٹوکاسٹک ریلیٹو فورس انڈیکس.
کی واپسی کی قیمتtalib.STOCHRSI()
فنکشن ہے: ایک دو جہتی صف.
صف
talib.STOCHRSI ((ان ریئل) talib.STOCHRSI ((inReal، optInTimePeriod) talib.STOCHRSI ((inReal، optInTimePeriod، optInFastK_Period) talib.STOCHRSI ((inReal، optInTimePeriod، optInFastK_Period، optInFastD_Period) talib.STOCHRSI ((inReal، optInTimePeriod، optInFastK_Period، optInFastD_Period، optInFastD_MAType)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
کےoptInFastK_Period
پیرامیٹر فاسٹ-K مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 5 ہے.
optInFastK_Period
غلط
نمبر
کےoptInFastD_Period
پیرامیٹر فاسٹ ڈی مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 3 ہے.
optInFastD_Period
غلط
نمبر
کےoptInFastD_MAType
پیرامیٹر فاسٹ ڈی اوسط قسم مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 0 ہے.
optInFastD_MAType
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.STOCHRSI(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.STOCHRSI(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.STOCHRSI(records);
Log(ret);
}
کےSTOCHRSI()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:STOCHRSI(Records[Close],Time Period = 14,Fast-K Period = 5,Fast-D Period = 3,Fast-D MA = 0) = [Array(outFastK),Array(outFastD)]
کےtalib.TRIX()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاٹرپل ہموار ای ایم اے کی ایک دن کی شرح تبادلہ (آر او سی).
کی واپسی کی قیمتtalib.TRIX()
فنکشن ہے: ایک جہتی صف.
صف
talib.TRIX ((ان ریئل) talib.TRIX ((inReal، optInTimePeriod)
کےinReal
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inReal
سچ
{@struct/Record Record} ڈھانچہ صفیں، عددی صفیں
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 30 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.TRIX(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.TRIX(records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.TRIX(records);
Log(ret);
}
کےTRIX()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:TRIX(Records[Close],Time Period = 30) = Array(outReal)
کےtalib.ULTOSC()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاحتمی آسکیلیٹر.
کی واپسی کی قیمتtalib.ULTOSC()
فنکشن ایک جہتی صف ہے.
صف
talib.ULTOSC ((inPriceHLC) talib.ULTOSC ((inPriceHLC، optInTimePeriod1) talib.ULTOSC ((inPriceHLC، optInTimePeriod1، optInTimePeriod2) talib.ULTOSC ((inPriceHLC، optInTimePeriod1، optInTimePeriod2، optInTimePeriod3)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod1
پیرامیٹر پہلی مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، پہلے سے طے شدہ قیمت 7 ہے.
optInTimePeriod1
غلط
نمبر
کےoptInTimePeriod2
پیرامیٹر کا استعمال دوسری مدت مقرر کرنے کے لئے کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod2
غلط
نمبر
کےoptInTimePeriod3
پیرامیٹر تیسری مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 28 ہے.
optInTimePeriod3
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.ULTOSC(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.ULTOSC(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.ULTOSC(records);
Log(ret);
}
کےULTOSC()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:ULTOSC(Records[High,Low,Close],First Period = 7,Second Period = 14,Third Period = 28) = Array(outReal)
کےtalib.WILLR()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےولیمز
کی واپسی کی قیمتtalib.WILLR()
فنکشن ہے: ایک جہتی صف.
صف
talib.WILLR ((inPriceHLC) talib.WILLR ((PriceHLC میں، optInTimePeriod میں)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
کےoptInTimePeriod
پیرامیٹر مدت مقرر کرنے کے لئے استعمال کیا جاتا ہے، ڈیفالٹ قدر 14 ہے.
optInTimePeriod وقت کی حد
غلط
نمبر
function main() {
var records = exchange.GetRecords()
var ret = talib.WILLR(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.WILLR(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.WILLR(records);
Log(ret);
}```
The ```WILLR()``` function is described in the talib library documentation as: ```WILLR(Records[High,Low,Close],Time Period = 14) = Array(outReal)```
### talib.AVGPRICE
The ```talib.AVGPRICE()``` function is used to calculate **Average Price**.
The return value of the ```talib.AVGPRICE()``` function is a one-dimensional array.
array
talib.AVGPRICE(inPriceOHLC)
The ```inPriceOHLC``` parameter is used to specify the K-line data.
inPriceOHLC
true
{@struct/Record Record} structure array
```javascript
function main() {
var records = exchange.GetRecords()
var ret = talib.AVGPRICE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.AVGPRICE(records.Open, records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.AVGPRICE(records);
Log(ret);
}
کےAVGPRICE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:AVGPRICE(Records[Open,High,Low,Close]) = Array(outReal)
کےtalib.MEDPRICE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتادرمیانی قیمت.
کی واپسی کی قیمتtalib.MEDPRICE()
فنکشن ایک جہتی صف ہے.
صف
talib.MEDPRICE ((inPriceHL)
کےinPriceHL
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHL
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.MEDPRICE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.MEDPRICE(records.High, records.Low)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.MEDPRICE(records);
Log(ret);
}
کےMEDPRICE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:MEDPRICE(Records[High,Low]) = Array(outReal)
کےtalib.TYPPRICE()
فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےعام قیمت.
کی واپسی کی قیمتtalib.TYPPRICE()
فنکشن ایک جہتی صف ہے.
صف
talib.TYPPRICE ((inPriceHLC)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.TYPPRICE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.TYPPRICE(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.TYPPRICE(records);
Log(ret);
}
کےTYPPRICE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:TYPPRICE(Records[High,Low,Close]) = Array(outReal)
کےtalib.WCLPRICE()
فنکشن کا حساب کرنے کے لئے استعمال کیا جاتاوزن شدہ اختتامی قیمت.
کی واپسی کی قیمتtalib.WCLPRICE()
فنکشن ایک جہتی صف ہے.
صف
talib.WCLPRICE ((inPriceHLC)
کےinPriceHLC
پیرامیٹر K لائن کے اعداد و شمار کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.
inPriceHLC
سچ
{@struct/Record Record} ڈھانچہ صف
function main() {
var records = exchange.GetRecords()
var ret = talib.WCLPRICE(records)
Log(ret)
}
import talib
def main():
records = exchange.GetRecords()
ret = talib.WCLPRICE(records.High, records.Low, records.Close)
Log(ret)
void main() {
auto records = exchange.GetRecords();
auto ret = talib.WCLPRICE(records);
Log(ret);
}
کےWCLPRICE()
فنکشن طالب لائبریری دستاویزات میں بیان کیا گیا ہے:WCLPRICE(Records[High,Low,Close]) = Array(outReal)