وسائل لوڈ ہو رہے ہیں... لوڈنگ...

بلٹ ان افعال

عالمی

ورژن

نظام کا موجودہ ورژن نمبر لوٹاتا ہے۔

موجودہ سسٹم ورژن نمبر، جیسے: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() فنکشن خالی سٹرنگ لوٹاتا ہے ، یعنی: ، اور لکھنا() فنکشن 0 لوٹاتا ہے۔ صورتحال کا پتہ چلتا ہے۔ آپ close() فنکشن کا استعمال کرتے ہوئے کنکشن بند کرسکتے ہیں ، یا اگر آپ نے خودکار دوبارہ رابطہ قائم کیا ہے تو ، آپ کو اسے بند کرنے کی ضرورت نہیں ہے ، بنیادی نظام اسے خود بخود دوبارہ جوڑ دے گا۔

چیز

ڈائل (ایڈریس) ڈائل کریں (ایڈریس، ٹائم آؤٹ)

درخواست کا پتہ۔ ایڈریس سچ سٹرنگ ٹائم آؤٹ سیکنڈ، ٹائم آؤٹ غلط نمبر

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&timestamp=" + 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")
    }
}

تفصیلی دستاویزات کا حوالہ:ایف ایم زیڈ کی تلاش: لائیو ٹریڈنگ کی حکمت عملیوں کے مابین مواصلاتی پروٹوکول کی مشق

HTTPQuery

ایک 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کے جواب کے پیغام کو واپس کر دیا جاتا ہے.
  • ٹائم آؤٹ: ٹائم آؤٹ سیٹنگ، سیٹ 1000 کا مطلب ہے 1 سیکنڈ ٹائم آؤٹ۔
  • charset: یہ مطلوبہ جواب کے اعداد و شمار کی ٹرانسکوڈنگ کی حمایت کرتا ہے ، جیسے GB18030۔ یہ عام کوڈنگ کی حمایت کرتا ہے۔ اس ساخت میں تمام شعبوں اختیاری ہیں، مثال کے طور پر،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}

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کے جواب کے پیغام کو واپس کر دیا جاتا ہے.
  • ٹائم آؤٹ: ٹائم آؤٹ سیٹنگ، سیٹ 1000 کا مطلب ہے 1 سیکنڈ ٹائم آؤٹ۔ اس ساخت میں تمام شعبوں اختیاری ہیں، مثال کے طور پر،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(کوئی الگورتھم استعمال نہیں کیا جاتا ہے) ، "سائن" ، signTx ، md4 ، md5 ، sha256 ، sha512 ، sha1 ، keccak256 ، sha3.224 ، sha3.256 ، sha3.384 ، sha3.512 ، sha3.keccak256 ، sha3.keccak512 ، sha512.384 ، sha512.256 ، sha512.224 ، ripemd160 ، blake2b.256 ، 2b.512 ، blake2s.128 ، blake2s.256 پیرامیٹر۔algoبھی حمایت کرتا ہے: text.encoder.utf8, text.decoder.utf8, text.encoder.gbk, text.decoder.gbk, انکوڈ اور ڈیکوڈ ڈور. پیرامیٹرalgoبھی حمایت کرتا ہے: ed25519 الگورتھم۔ مختلف ہیش الگورتھم کے استعمال کی حمایت کرتا ہے ، مثال کے طور پر پیرامیٹرalgoed25519.md5، ed25519.sha512 وغیرہ کے طور پر لکھا جا سکتا ہے. یہ حمایت کرتا ہےed25519.seedحساب کتاب. کچھ سچ سٹرنگ ڈیٹا فارمیٹ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہےdataپیرامیٹر.inputFormatپیرامیٹر مندرجہ ذیل میں سے ایک کے طور پر مقرر کیا جا سکتا ہے:raw, hex, base64, stringraw کا مطلب ہے کہ اعداد و شمار خام اعداد و شمار ہیں، hex کا مطلب ہے کہ اعداد و شمار ہیںhexکوڈت، base64 کا مطلب ہے کہ ڈیٹا ہےbase64انکوڈ کیا جاتا ہے، اور string کا مطلب ہے کہ ڈیٹا ایک سٹرنگ ہے۔ ان پٹ فارمیٹ سچ سٹرنگ آؤٹ پٹ کے ڈیٹا فارمیٹ کی وضاحت کے لئے استعمال کیا جاتا ہے.outputFormatپیرامیٹر مندرجہ ذیل میں سے ایک کے طور پر مقرر کیا جا سکتا ہے:raw, hex, base64, stringraw کا مطلب ہے کہ اعداد و شمار خام اعداد و شمار ہیں، hex کا مطلب ہے کہ اعداد و شمار ہیںhexکوڈت، base64 کا مطلب ہے کہ ڈیٹا ہےbase64انکوڈ کیا جاتا ہے، اور string کا مطلب ہے کہ ڈیٹا ایک سٹرنگ ہے۔ آؤٹ پٹ فارمیٹ سچ سٹرنگ پیرامیٹرdataیہ وہ اعداد و شمار ہیں جن پر کارروائی کی جائے گی۔ اعداد و شمار سچ سٹرنگ ڈیٹا فارمیٹ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہےkeyپیرامیٹر.keyپیرامیٹر مندرجہ ذیل میں سے ایک کے طور پر مقرر کیا جا سکتا ہے:raw, hex, base64, stringraw کا مطلب ہے کہ اعداد و شمار خام اعداد و شمار ہیں، hex کا مطلب ہے کہ اعداد و شمار ہیںhexکوڈت، base64 کا مطلب ہے کہ ڈیٹا ہےbase64انکوڈ کیا جاتا ہے، اور string کا مطلب ہے کہ ڈیٹا ایک سٹرنگ ہے۔ کلیدی فارمیٹ غلط سٹرنگ پیرامیٹرkeyکے لئے استعمال کیا جاتا خفیہ کلید ہےHMACخفیہ کاری. پیرامیٹرkeyجب پیرامیٹر کی ضرورت ہےalgoپر مقرر کیا گیا ہےsignیاsignTx.keyپیرامیٹر کے لئے استعمال نہیں کیا جاتاHMACخفیہ کاریalgoپیرامیٹر raw پر مقرر کیا جاتا ہے (کیونکہ HMAC خفیہ کاری کے لئے الگورتھم کی وضاحت کی جانی چاہئے). چابی غلط سٹرنگ

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بھی حمایت کرتا ہے: text.encoder.utf8, text.decoder.utf8, text.encoder.gbk, text.decoder.gbk کوڈ اور کوڈ کوڈ کرنے کے لئے.

کے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.

ایم ڈی 5

پیرامیٹر کے 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}

DBExec

ڈیٹا بیس انٹرفیس افعال

ایک اعتراض جس میں ایک عمل کے عمل کا نتیجہ شامل ہےمربعبیان، مثال کے طور پر:


{"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

ایک 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.
  • HTTP پروٹوکول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
  • یہ فنکشن صرف جاوا اسکرپٹ زبان کی حکمت عملیوں کی حمایت کرتا ہے.
  • سروس تھریڈ عالمی دائرہ کار سے الگ تھلگ ہے ، لہذا یہ بندشوں یا بیرونی متغیرات ، کسٹم افعال وغیرہ کے حوالہ جات کی حمایت نہیں کرتا ہے۔ تاہم ، یہ تمام پلیٹ فارم API افعال کو کال کرسکتا ہے۔
  • کےWebsocketسروس HTTP پروٹوکول کی بنیاد پر لاگو کیا جاتا ہے. آپ کے راستے میں ایک روٹنگ شاخ مقرر کر سکتے ہیں اور کے لئے لاگو کرنے کا کوڈ ڈیزائنWebsocketآپ اس سیکشن میں نمونہ کوڈ کا حوالہ دے سکتے ہیں۔

کال بیک فنکشن پیرامیٹر کی طرف سے منتقلhandlerوصول کرتا ہےctxپیرامیٹر.ctxپیرامیٹر ایک سیاق و سباق کا اعتراض ہے جو مندرجہ ذیل طریقوں کے ساتھ ڈیٹا حاصل کرنے اور لکھنے کے لئے استعمال ہوتا ہے۔

  • ctx.proto (() ایچ ٹی پی / ٹی سی پی پروٹوکول پر لاگو ہوتا ہے ، جب بلایا جاتا ہے تو پروٹوکول کا نام لوٹاتا ہے۔ مثال کے طور پر:HTTP/1.1, tcp.
  • ctx.host() ایچ ٹی پی پروٹوکول پر لاگو ہوتا ہے، جب یہ آئی پی ایڈریس اور بندرگاہ کو بلایا جاتا ہے تو میزبان کی معلومات واپس کرتا ہے.
  • ctx.path (() HTTP پروٹوکول پر لاگو ہوتا ہے، جب بلایا جاتا ہے تو درخواست کا راستہ واپس کرتا ہے.
  • ctx.query (کلید) ایچ ٹی پی پروٹوکول پر لاگو ہوتا ہے ، جب کال کی جاتی ہے تو درخواست میں استفسار میں کلید سے متعلق قیمت واپس کردیتا ہے۔ مثال کے طور پر ، جو درخواست بھیجی جاتی ہے وہ ہے:http://127.0.0.1:8088?num=123، اور پیرامیٹر کی طرف سے منتقل کال بیک پروسیسنگ تقریبhandlerواپسی"123"کبctx.query("num")کہا جاتا ہے.
  • ctx.rawQuery() ایچ ٹی پی پروٹوکول پر لاگو ہوتا ہے ، جب بلایا جاتا ہے تو ، درخواست میں اصل استفسار واپس کرتا ہے (ایچ ٹی پی کی درخواست کا استفسار) ۔
  • ctx.headers (() HTTP پروٹوکول پر لاگو کیا جاتا ہے، اور جب بلایا جاتا ہے تو درخواست میں درخواست ہیڈر کی معلومات واپس کرتا ہے.
  • ctx.header (کلید) HTTP پروٹوکول پر لاگو، یہ جب بلایا جاتا ہے تو مخصوص درخواست ہیڈر میں ایک کلید کی قدر واپس کرتا ہے. مثال کے طور پر، حاصل کریںUser-Agentموجودہ درخواست کے عنوانات میں:ctx.header("User-Agent").
  • ctx.method (() HTTP پروٹوکول پر لاگو کیا جاتا ہے، جب بلایا جاتا ہے تو درخواست کا طریقہ واپس کرتا ہے، جیسےGET, POST، وغیرہ
  • ctx.body (() HTTP پروٹوکول کی POST درخواست پر لاگو ہوتا ہے ، اور جب کال کیا جاتا ہے تو درخواست کا جسم واپس کرتا ہے۔
  • ctx.setHeader ((کلید، قدر) HTTP پروٹوکول پر درخواست ہیڈر کی معلومات کے جواب پیغام مقرر کرنے کے لئے لاگو کیا.
  • ctx.setStatus (کوڈ) ایچ ٹی پی پروٹوکول پر لاگو ہوتا ہے ، ایچ ٹی پی پیغام کی حیثیت کا کوڈ مقرر کریں۔ عام طور پر ، ایچ ٹی پی کی حیثیت کا کوڈ روٹنگ برانچ کے اختتام پر مقرر کیا جاتا ہے۔ ڈیفالٹ ویلیو 200 ہے۔
  • ctx.remoteAddr() ایچ ٹی پی / ٹی سی پی پروٹوکول پر لاگو ہوتا ہے ، جب کال کیا جاتا ہے تو درخواست میں ریموٹ کلائنٹ ایڈریس اور پورٹ واپس کرتا ہے۔
  • ctx.localAddr() ایچ ٹی پی / ٹی سی پی پروٹوکول پر لاگو ہوتا ہے ، جب کال کی جاتی ہے تو سروس کا مقامی پتہ اور بندرگاہ واپس کرتا ہے۔
  • ctx.upgrade ((ویب ساکٹ) HTTP پروٹوکول کی بنیاد پر ویب ساکٹ پروٹوکول پر لاگو کیا، سوئچنگctxویب ساکٹ پروٹوکول میں سیاق و سباق کا اعتراض؛ اگر سوئچ کامیاب ہو تو ایک بولین ویلیو (سچ) ، اور اگر یہ ناکام ہو تو ایک بولین ویلیو (جھوٹا) لوٹاتا ہے۔
  • ctx.read ((timeout_ms) HTTP پروٹوکول کی بنیاد پر ویب ساکٹ پروٹوکول نفاذ / TCP پروٹوکول پر لاگو، ویب ساکٹ کنکشن اور TCP کنکشن کے اعداد و شمار پڑھتا ہے.readطریقہ عام HTTP پروٹوکول میں معاون نہیں ہے. آپ ٹائم آؤٹ پیرامیٹر کی وضاحت کر سکتے ہیںtimeout_msملی سیکنڈ میں.
  • ctx.write ((s) HTTP/TCP پروٹوکول پر لاگو کیا جاتا ہے، سٹرنگ ڈیٹا لکھنے کے لئے استعمال کیا. آپ استعمال کر سکتے ہیںJSON.stringify()ایک تار میں JSON اعتراض کوڈ اور پھر اسے لکھنے کے لئے.WebSocketپروٹوکول، آپ کو کلائنٹ کو کوڈت تار منتقل کرنے کے لئے اس طریقہ کار کا استعمال کر سکتے ہیں.

{@fun/Global/HttpQuery HttpQuery}، {@fun/Global/HttpQuery_Go HttpQuery_Go}

_G

ڈیٹا کو مستقل طور پر محفوظ کریں ، فنکشن ایک عالمی لغت فنکشن کو نافذ کرتا ہے جسے محفوظ کیا جاسکتا ہے۔ ڈیٹا کا ڈھانچہ ایک 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}

_D

ملی سیکنڈ ٹائم اسٹیمپ یا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(نمبر) _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}

_C

انٹرفیس غلطی رواداری کے لئے دوبارہ کوشش کریں.

کال بیک فنکشن کی واپسی کی قیمت جب یہ عملدرآمد کیا جاتا ہے. تمام اقسام نظام کی طرف سے حمایت کر رہے ہیں سوائےمنطقی غلط قدراور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.

JSON پارس

فنکشن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);
    }
}

یہ گروپ بٹن کنٹرولز کے لئے حمایت کرتا ہے (پرانے بٹن کی ساخت)اعداد و شمار کے اندراج کی حمایت کرنے والے حالت بار بٹن(input فیلڈ کا استعمال کرتے ہوئے مقرر). انٹرایکٹو احکامات بالآخر کی طرف سے قبضہ کر رہے ہیںGetCommand()فنکشن. فرق یہ ہے کہ کے ساتھ"group"فیلڈ کی ترتیب، جب بٹن پر کلک کیا جاتا ہے تعامل کو متحرک کرنے کے لئے، صفحے پر پاپ اپ کہ ڈائیلاگ ایک سیٹ پر مشتملگروپان پٹ کنٹرولز کے ایک بار میں اعداد و شمار کے ایک گروپ میں داخل کرنے کے لئے مقرر. کے بارے میں نوٹ کرنے کے لئے چند نکات"group"حالت بار بٹن کنٹرول اور گروپ بٹن کنٹرول کی ساخت میں فیلڈ:

  • کےtypeگروپ میں پراپرٹی صرف مندرجہ ذیل چار اقسام کی حمایت کرتا ہے، اورdefValueپراپرٹی ڈیفالٹ ویلیو ہے۔ selected: ایک ڈراپ ڈاؤن باکس کنٹرول|ایک ڈراپ ڈاؤن باکس میں ہر اختیار کو الگ کرنے کے لئے علامت کے طور پر یہ مقرر کیا جاتا ہے. نومبر: عددی ان پٹ باکس کنٹرول. string: سٹرنگ ان پٹ باکس کنٹرول. boolean: چیک باکس کنٹرول، (بولین) سچ کے لئے چیک کیا، (بولین) غلط کے لئے چیک نہیں کیا.
  • انٹرایکٹو ان پٹ سپورٹ انحصار کی ترتیبات پر کنٹرول: مثال کے طور پر، مندرجہ ذیل مثال میں:"name": "tradePrice@orderType==1"ترتیب، جس سےتجارت قیمتان پٹ کنٹرول صرف اس وقت دستیاب ہے جبآرڈرٹائپڈراپ ڈاؤن کنٹرول ایک کے طور پر منتخب کیا جاتا ہےزیر التوا حکم.
  • Bilingual control name support for interactive inputs دو لسانی کنٹرول ناموں کی حمایت مثال کے طور پر، مندرجہ ذیل مثال میں: description: ایک ہی طریقے سے order type setting, use|علامتوں کو چینی اور انگریزی میں تفصیل کے مواد کو الگ کرنے کے لئے.
  • name, descriptionگروپ میں اورname, descriptionبٹن کی ساخت میں ایک ہی تعریف نہیں ہے اگرچہ وہ ایک ہی فیلڈ کے نام ہیں. کی تعریفnameگروپ میں بھی تعریف سے مختلف ہےnameان پٹ میں.
  • جب گروپ بٹن کنٹرول کو ٹرگر کیا جاتا ہے تو ، تعامل کا مواد بٹن کی cmd فیلڈ ویلیو اور گروپ فیلڈ کے متعلقہ ڈیٹا کی شکل میں بھیجا جاتا ہے ، جیسے آؤٹ پٹ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 کو فعال کریں

آرڈر کی معلومات کی لاگنگ کو آن یا آف کریں۔

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صفت اگر صفت قدر single کے ساتھ مقرر کی گئی ہے تو ، چارٹ اسٹیک نہیں کیے جائیں گے (ٹیبز کے طور پر نہیں دکھائے جائیں گے) ، لیکن الگ الگ دکھائے جائیں گے (ٹائلڈ) ۔
  • extension.heightصفت یہ خصوصیت چارٹ کی اونچائی کو ایک عددی قدر کے طور پر یا 300px کے طور پر مقرر کرنے کے لئے استعمال کیا جاتا ہے.
  • 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().

    1. کےupdate()طریقہ: کےupdate()طریقہ کار چارٹ کی تشکیل کی معلومات کو اپ ڈیٹ کرسکتا ہے۔ اس طریقہ کار کا پیرامیٹر چارٹ کی تشکیل آبجیکٹ (JSON) ہے۔
    1. کےdel()طریقہ: کےdel()طریقہ کار منظور شدہ سیریز پیرامیٹر کی بنیاد پر مخصوص انڈیکس کے ڈیٹا سیریز کو حذف کر سکتے ہیں.
    1. کےadd()طریقہ: کےadd()طریقہ کار مندرجہ ذیل پیرامیٹرز کے ساتھ، چارٹ پر ڈیٹا لکھ سکتے ہیں:
    • series: اعداد و شمار سیریز انڈیکس مقرر کرنے کے لئے استعمال کیا جاتا ہے، جو ایک عدد ہے.
    • data: مخصوص اعداد و شمار کو لکھنے کے لئے مقرر کرنے کے لئے استعمال کیا جاتا ہے، یہ ایک صف ہے.
    • index(اختیاری): ڈیٹا انڈیکس کو ترتیب دینے کے لئے استعمال کیا جاتا ہے ، یہ ایک عدد ہے۔ ترمیم شدہ ڈیٹا کی مخصوص انڈیکس پوزیشن کی وضاحت کریں ، اور یہ منفی نمبروں کی حمایت کرتا ہے ، ترتیب یہ ہے-1ڈیٹا سیٹ کے آخری اعداد و شمار سے مراد ہے۔ مثال کے طور پر، ایک لائن ڈرائنگ کرتے وقت، لائن کے آخری نقطہ پر ڈیٹا کو تبدیل کریں:chart.add(0, [1574993606000, 13.5], -1)، یعنی، چارٹ کے آخری آخری نقطہ پر اعداد و شمار کو تبدیلseries[0].data. کےindexپیرامیٹر مقرر نہیں کیا گیا ہے، جس کا مطلب ہے کہ اعداد و شمار کو موجودہ ڈیٹا سیریز کے آخری نقطہ پر شامل کیا جاتا ہے.
    1. کےreset()طریقہ: کےreset()چارٹ کے اعداد و شمار کو خالی کرنے کے لئے استعمال کیا جاتا ہے.reset()طریقہ کار ایک پیرامیٹر لے سکتے ہیںremainرکھنے کے لئے اندراجات کی تعداد کی وضاحت کرنے کے لئے. کوئی پیرامیٹرremainتمام اعداد و شمار کو صاف کرنے کے لئے منظور کیا جاتا ہے.

{@fun/Log/KLineChart KLineChart} {@fun/Log/KLineChart KLineChart} {@fun/Log/KLineChart 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, square, label_down, label_up, arrow_down, arrow_up, circle, flag, triangle_down, triangle_up, cross, xcross مقام پیرامیٹرز اختیاری ہیں: اوپربار، نیچےبار، اوپر، نیچے، مطلق سائز پیرامیٹرز اختیاری ہیں: 10px, 14px, 20px, 40px, 80px, سائز کا موازنہ کریں.تنی, سائز.چھوٹا, سائز.عام, سائز.بڑا, سائز.بڑا پائن زبان میں.size.autoہے سائز.چھوٹا. ڈسپلے پیرامیٹرز اختیاری ہیں: کوئی نہیں، تمام

c.plotchar(bar.Close, {char: 'X'})
c.plotchar(bar.Close, char = 'X')
// Not supported for now

plotchar، کسی بھی دیئے گئے یونیکوڈ کردار کا استعمال کرتے ہوئے چارٹ پر بصری شکلیں ڈرا.

plotchar ((سیریز، عنوان، چار، مقام، رنگ، آفسیٹ، متن، textcolor، قابل تدوین، سائز، show_last، ڈسپلے) مقام پیرامیٹرز اختیاری ہیں: اوپربار، نیچےبار، اوپر، نیچے، مطلق سائز کے پیرامیٹرز اختیاری ہیں: 10px، 14px، 20px، 40px، 80px، سائز.ٹنی، سائز.چھوٹا، سائز.عام، سائز.بڑا، سائز.بڑا کا موازنہ پائن زبان میں۔size.autoہے سائز.چھوٹا. ڈسپلے پیرامیٹرز اختیاری ہیں: کوئی نہیں، تمام

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 لاگ ریسیٹ}

console.log

یہ براہ راست ٹریڈنگ کے صفحے میں debug information کالم میں ڈیبگنگ کی معلومات کو آؤٹ پٹ کرنے کے لئے استعمال کیا جاتا ہے۔ مثال کے طور پر اگر براہ راست ٹریڈنگ ID ہے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زبان اس فنکشن کی حمایت کرتا ہے.
  • یہ فنکشن صرف لائیو ٹریڈنگ کی طرف سے حمایت کی جاتی ہے، لیکن Debugging Tools یا Backtesting System کی طرف سے نہیں.
  • آؤٹ پٹ ایک اعتراض تار میں تبدیل کیا جاتا ہے[object Object]، تو جتنا ممکن ہو سکے کے طور پر پڑھنے کے قابل معلومات کی پیداوار کرنے کی کوشش کریں.

{@fun/Log/console.error کنسول.error}

console.error

براہ راست ٹریڈنگ کے صفحے پر Debug message فیلڈ میں غلطی آؤٹ پٹ کے لئے استعمال کیا جاتا ہے۔ مثال کے طور پر اگر براہ راست ٹریڈنگ ID ہے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زبان اس فنکشن کی حمایت کرتا ہے.
  • یہ فنکشن صرف لائیو ٹریڈنگ کی طرف سے حمایت کی جاتی ہے، لیکن Debugging Tools یا Backtesting System کی طرف سے نہیں.
  • آؤٹ پٹ ایک اعتراض تار میں تبدیل کیا جاتا ہے[object Object]، تو جتنا ممکن ہو سکے کے طور پر پڑھنے کے قابل معلومات کی پیداوار کرنے کی کوشش کریں.

{@fun/Log/console.log کنسول.log}

بازار

exchange.GetTicker

{@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

exchange.GetDepth

{@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}

exchange.GetTrades

{@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}

exchange.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}

exchange.GetPeriod

براہ راست ٹریڈنگ میں حکمت عملی کی بیک ٹیسٹنگ اور چلانے کے دوران ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم ویب سائٹ کے صفحے پر 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}

exchange.SetMaxBarLen

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 حکمت عملی رن ٹائم کے لئے دو پہلوؤں کو متاثر کرتا ہے:

  • پہلی کال پر حاصل کی جانے والی K لائن بار (بار) کی تعداد کو متاثر کرتا ہے۔
  • K لائن سلاخوں کی زیادہ سے زیادہ تعداد (بارز) کو متاثر کرتا ہے۔

{@fun/Market/exchange.GetRecords تبادلہ.GetRecords}

exchange.GetRawJSON

اصل مواد کو آخری تک واپس کریں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 تبادلہ}

exchange.GetRate

تبادلہ اعتراض کے لئے فی الحال مقرر کرنسی کی شرح حاصل کریں.

تبادلے کے اعتراض کی شرح تبادلہ کی موجودہ قیمت۔ نمبر

تبادلہ.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

کےexchange.SetData()تقریب کی حکمت عملی چل رہا ہے جب لوڈ ڈیٹا مقرر کرنے کے لئے استعمال کیا جاتا ہے.

پیرامیٹر کے بعد تار کی لمبائیvalueJSON کوڈنگ. نمبر

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.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"]
}

data فیلڈ مطلوبہ ڈیٹا مواد ہے، اور data فیلڈ میں ڈیٹا schema میں اتفاق کیا جاتا ہے کے طور پر ایک ہی ہونا ضروری ہے.exchange.GetData()فنکشن بلایا جاتا ہے، ایک JSON اعتراض واپس کیا جاتا ہے، مثال کے طور پر:{"Time":1579795200000, "Data":"..."}.

بیک ٹیسٹنگ کے لئے ایک بار میں ڈیٹا حاصل کریں اور براہ راست تجارت کے لئے ایک منٹ کے ڈیٹا کو کیش کریں۔ بیک ٹیسٹنگ سسٹم میں ، جب رسائی انٹرفیس کا استعمال کرتے ہوئے ڈیٹا کی درخواست کی جائے تو ، بیک ٹیسٹنگ سسٹم خود بخود شامل کرتا ہےfrom(سیکنڈ میں وقت کا نشان)to(سیکنڈ میں ٹائم اسٹیمپ) کی درخواست، پیرامیٹرز جیسےperiod(بنیادی K لائن کی مدت، ملی سیکنڈ میں ٹائم اسٹیمپ) کا استعمال اس وقت کے فریم کو طے کرنے کے لئے کیا جاتا ہے جس پر ڈیٹا حاصل کیا جانا ہے۔

{@ تفریح/مارکیٹ/تبادلہ.سیٹ ڈیٹا تبادلہ.سیٹ ڈیٹا}

exchange.GetMarkets

کے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

کے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

کےexchange.Buy()فنکشن خریدنے کے احکامات رکھنے کے لئے استعمال کیا جاتا ہے.Buy()تقریب تبادلہ اعتراض {@var/EXCHANGE تبادلہ} کا ایک رکن تقریب ہے.Buy()فنکشن ایکسچینج آبجیکٹ سے منسلک ایکسچینج اکاؤنٹ پر کام کرتا ہےexchange. رکن کے افعال (طرز) کا مقصدexchangeآبجیکٹ صرف سے متعلق ہےexchange، اور یہ دستاویزات کے بعد دوبارہ نہیں کیا جائے گا.

ایک کامیاب آرڈر آرڈر ID واپس کرتا ہے، ایک ناکام آرڈر null قدر واپس کرتا ہے. صفتIdایف ایم زیڈ پلیٹ فارم کے آرڈر {@struct/Order Order} ڈھانچے میں ایکسچینج پروڈکٹ کوڈ اور ایکسچینج کی اصل آرڈر آئی ڈی شامل ہیں ، جن کو انگریزی کمانڈوں سے الگ کیا گیا ہے۔ مثال کے طور پر ، خاصیتIdاسپاٹ ٹریڈنگ جوڑی کی شکلETH_USDTOKX تبادلہ کا حکم ہے: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

کےexchange.Sell()فروخت کے احکامات دینے کے لئے استعمال کیا جاتا ہے.

ایک کامیاب آرڈر آرڈر آئی ڈی واپس کرتا ہے، ایک ناکام آرڈر null قدر واپس کرتا ہے.Idایف ایم زیڈ پلیٹ فارم کے آرڈر {@struct/Order Order} ڈھانچے میں ایکسچینج پروڈکٹ کوڈ اور ایکسچینج کی اصل آرڈر آئی ڈی شامل ہیں ، جن کو انگریزی کمانڈوں سے الگ کیا گیا ہے۔ مثال کے طور پر ، خاصیتIdاسپاٹ ٹریڈنگ جوڑی کی شکلETH_USDTOKX تبادلہ کا حکم ہے: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

کے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

کے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

کے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()فنکشن کے بقایا احکامات حاصل کرنے کے لئے استعمال کیا جاتا ہے.

کے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 ٹریڈنگ جوڑی سے استفسار کریں اسپاٹ ایکسچینج اشیاء کے لئے علامت پیرامیٹر فارمیٹ ہے: BTC_USDT
مستقبل علامت پیرامیٹر منتقل نہ کریں موجودہ ٹریڈنگ جوڑی اور معاہدے کے کوڈ کے طول و عرض کی حد کے اندر تمام ٹریڈنگ پروڈکٹس کی تلاش کریں اگر موجودہ ٹریڈنگ جوڑی BTC_USDT ہے اور معاہدہ کا کوڈ سویپ ہے تو ، تمام USDT مارجن والے دائمی معاہدوں سے استفسار کیا جائے گا۔ یہ کال کرنے کے برابر ہے۔GetOrders("USDT.swap")
مستقبل تجارت کی قسم بتائیں، علامت پیرامیٹر ہے: BTC_USDT.swap ایک مخصوص بی ٹی سی کے لئے یو ایس ڈی ٹی پر مبنی مستقل معاہدے کی تلاش کریں فیوچر ایکسچینج اشیاء کے لئے پیرامیٹر علامت کی شکل یہ ہے:تجارتی جوڑااورمعاہدہ کا کوڈایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کیا گیا ہے ، جس میں حروف کے ذریعہ الگ کیا گیا ہے"..
مستقبل تجارتی مصنوعات کی حد کی وضاحت کریں، علامت پیرامیٹر ہے: USDT.swap تمام USDT پر مبنی مستقل معاہدوں کی تلاش کریں -
فیوچر ایکسچینجز جو آپشنز کی حمایت کرتے ہیں علامت پیرامیٹر منتقل نہ کریں موجودہ ٹریڈنگ جوڑی کے طول و عرض کی حد کے اندر تمام آپشن معاہدوں کی تلاش کریں اگر موجودہ ٹریڈنگ جوڑی BTC_USDT ہے، تو معاہدہ ایک آپشن معاہدے پر مقرر کیا جاتا ہے، مثال کے طور پر، بائننس آپشن معاہدہ: BTC-240108-40000-C
فیوچر ایکسچینجز جو آپشنز کی حمایت کرتے ہیں مخصوص تجارتی مصنوعات کی وضاحت کریں مخصوص آپشن معاہدے کی تلاش کریں مثال کے طور پر بائننس فیوچر ایکسچینج کے لئے، علامت پیرامیٹر ہے: BTC_USDT.BTC-240108-40000-C
فیوچر ایکسچینجز جو آپشنز کی حمایت کرتے ہیں تجارتی مصنوعات کی حد کی وضاحت کریں، علامت پیرامیٹر ہے: USDT.option تمام 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()موجودہ ٹریڈنگ جوڑی، معاہدوں کے لئے تاریخی احکامات حاصل کرنے کے لئے استعمال کیا جاتا ہے؛ یہ مخصوص ٹریڈنگ کی اقسام کی وضاحت کی حمایت کرتا ہے.

کے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.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

ایکسچینج آبجیکٹ کی موجودہ زر مبادلہ کی شرح مقرر کریں۔

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()تقریب تبادلہ اعتراض سے متعلق دیگر انٹرفیس کالز کے لئے استعمال کیا جاتا ہے.

کے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)
  • httpMethod : پیرامیٹر ایک تار کی قسم ہے، درخواست کی قسم میں بھریں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.

    1. بیک ٹیسٹنگ سسٹم اب ٹریڈنگ کے جوڑوں کو سوئچ کرنے کی حمایت کرتا ہے (صرف ڈیجیٹل کرنسی اسپاٹ ایکسچینج اشیاء کے لئے) ، بیک ٹیسٹنگ کرتے وقت ، آپ کو اس بات پر توجہ دینے کی ضرورت ہے کہ آپ صرف اسی denominated کرنسی کے ساتھ ٹریڈنگ کے جوڑوں پر سوئچ کرسکتے ہیں ، مثال کے طور پر ، موجودہ ٹریڈنگ جوڑی ہےETH_BTCصرف تبدیل کر سکتے ہیںLTC_BTC، نہیں کرناLTC_USDT.
    2. کریپٹوکرنسی فیوچر معاہدوں کے لئے ایکسچینج آبجیکٹ ٹریڈنگ جوڑوں کو سوئچ کرتا ہے اور معاہدے کا کوڈ دوبارہ طے کرنے کی ضرورت ہے کہ کون سا معاہدہ تجارت کیا جائے۔
    3. {@fun/Account/exchange.SetCurrency exchange.SetCurrency} فنکشن کا استعمال کرتے ہوئے ٹریڈنگ کے جوڑوں کو تبدیل کرنے کے لئے بالکل وہی ہے جو استعمال کرتے ہوئے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()فنکشن کا استعمال لاگ کالم کے علاقے میں آرڈر کی جگہ اور انخلا کا لاگ آؤٹ کرنے کے لئے کیا جاتا ہے۔ جب کال کیا جاتا ہے تو ، کوئی آرڈر نہیں دیئے جاتے ہیں ، صرف ٹرانزیکشن لاگ آؤٹ کیا جاتا ہے اور ریکارڈ کیا جاتا ہے۔

تبادلہ.لاگ ((آرڈرٹائپ ، قیمت ، رقم) 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()فنکشن حساب شدہ ہیش ویلیو کوڈنگ لوٹاتا ہے۔ سٹرنگ

exchange.Encode ((algo، inputFormat، outputFormat، data) exchange.Encode ((algo، inputFormat، outputFormat، data، keyFormat، key)

پیرامیٹرalgoکوڈنگ حساب کتاب کے لئے استعمال کیا جاتا الگورتھم ہے۔ معاون ترتیبات ہیں: raw (کوئی الگورتھم استعمال نہیں کیا جاتا ہے) ، sign، signTx، md4، md5، sha256، sha512، sha1، keccak256، sha3.224، sha3.256، sha3.384، sha3.512، sha3.keccak256، sha3.keccak512، sha512.384، sha512.256، sha512.224، emd160، ripke2b.256، blake2b.512، blake2b.512، blake2s.128، blake2s.256۔algoبھی حمایت کرتا ہے: text.encoder.utf8, text.decoder.utf8, text.encoder.gbk, text.decoder.gbk, کوڈنگ اور کوڈنگ سٹرنگ کے لئے. پیرامیٹرalgoبھی معاون ہے: ed25519 الگورتھم۔ یہ مختلف ہیش الگورتھم کے استعمال کی حمایت کرتا ہے ، مثال کے طور پر پیرامیٹرalgoed25519.md5، ed25519.sha512، وغیرہ کے طور پر لکھا جا سکتا ہےed25519.seedحساب کتاب. کچھ سچ سٹرنگ ڈیٹا فارمیٹ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہےdataپیرامیٹر.inputFormatپیرامیٹر میں سے کسی ایک پر مقرر کیا جا سکتا ہے: raw, hex, base64, اور string. raw کا مطلب ہے کہ اعداد و شمار خام اعداد و شمار ہیں, hex کا مطلب ہے کہ اعداد و شمار ہیںhexکوڈت، base64 کا مطلب ہے کہ ڈیٹا ہےbase64انکوڈ کیا جاتا ہے، اور string کا مطلب ہے کہ ڈیٹا ایک سٹرنگ ہے۔ ان پٹ فارمیٹ سچ سٹرنگ آؤٹ پٹ ڈیٹا کی شکل کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے.outputFormatپیرامیٹر مندرجہ ذیل ترتیبات کی حمایت کرتا ہے: raw, hex, base64, string. raw کا مطلب ہے کہ اعداد و شمار خام اعداد و شمار ہیں, hex کا مطلب ہے کہ اعداد و شمار ہیںhexکوڈت، base64 کا مطلب ہے کہ ڈیٹا ہےbase64انکوڈ کیا جاتا ہے، اور string کا مطلب ہے کہ ڈیٹا ایک سٹرنگ ہے۔ آؤٹ پٹ فارمیٹ سچ سٹرنگ پیرامیٹرdataیہ وہ اعداد و شمار ہیں جن پر کارروائی کی جائے گی۔ اعداد و شمار سچ سٹرنگ ڈیٹا فارمیٹ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہےkeyپیرامیٹر.keyپیرامیٹر میں سے کسی ایک پر مقرر کیا جا سکتا ہے: raw, hex, base64, اور string. raw کا مطلب ہے کہ اعداد و شمار خام اعداد و شمار ہیں, hex کا مطلب ہے کہ اعداد و شمار ہیںhexکوڈت، base64 کا مطلب ہے کہ ڈیٹا ہےbase64انکوڈ کیا جاتا ہے، اور string کا مطلب ہے کہ ڈیٹا ایک سٹرنگ ہے۔ کلیدی فارمیٹ غلط سٹرنگ کے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

ملٹی تھریڈڈ غیر متزلزل سپورٹ افعال تمام معاون افعال کے آپریشنز کو غیر متزلزل بیک وقت عمل میں تبدیل کرسکتے ہیں۔

کے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

کے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فنکشن کا استعمال ایکسچینج اکاؤنٹ اثاثہ کی معلومات کی درخواست کرنے کے لئے کیا جاتا ہے۔

کے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()فنکشن کا استعمال تبادلے کا نام حاصل کرنے کے لئے کیا جاتا ہے جس پر موجودہ تبادلے کا اعتراض پابند ہے۔

کے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()تقریب تبادلہ اعتراض تشکیل دیا گیا تھا جب مقرر کیا گیا تھا کہ اپنی مرضی کے مطابق لیبل حاصل کرنے کے لئے استعمال کیا جاتا ہے.

کے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()فی الحال مقرر کردہ ٹریڈنگ جوڑی حاصل کرنے کے لئے فنکشن کا استعمال کیا جاتا ہے.

کے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

کے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());
}
  1. کے ساتھ ہم آہنگexchange.IO("currency", "BTC_USDT")سوئچنگ کا طریقہ، براہ مہربانی {@funexcahnge.IO}.
  2. بیک ٹسٹنگ سسٹم میں تجارتی جوڑے تبدیل کرنے کی حمایت کریں ، بیک ٹسٹنگ سسٹم میں تجارتی جوڑے تبدیل کرتے وقت مذکورہ کرنسی کا نام تبدیل نہیں کیا جاسکتا ہے۔ مثال کے طور پر:BTC_USDTپر تبدیل کیا جا سکتا ہےLTC_USDT، نہیں کرناLTC_BTC.
  3. غیر بیک ٹیسٹ پیج پر ابتدائی طور پر طے شدہ ٹریڈنگ جوڑی پر سوئچ کرنے کے بعد ٹریڈنگ کرنسیوں کی تعداد 0 ہے۔ مثال کے طور پر ، بیک ٹیسٹ پیج پر طے شدہ ابتدائی ٹریڈنگ جوڑی کو بیک ٹیسٹ کرتے وقتBTC_USDT، کی تعدادBTC3 ہے، کی تعداد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

کے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

کے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")
مستقبل تجارتی مصنوع کی وضاحت کریں، علامت پیرامیٹر ہے: BTC_USDT.swap ایک مخصوص بی ٹی سی کے یو ایس ڈی ٹی پر مبنی مستقل معاہدے کی تلاش کریں فیوچر ایکسچینج اشیاء کے لئے پیرامیٹر علامت کی شکل یہ ہے:تجارتی جوڑااورمعاہدہ کا کوڈایف ایم زیڈ پلیٹ فارم کے ذریعہ بیان کیا گیا ہے ، جس میں حروف کے ذریعہ الگ کیا گیا ہے"..
مستقبل تجارتی مصنوعات کی حد کی وضاحت کریں، علامت پیرامیٹر ہے: USDT.swap تمام USDT پر مبنی مستقل معاہدوں کی تلاش کریں -
فیوچر ایکسچینجز جو آپشنز کی حمایت کرتے ہیں علامت پیرامیٹر منتقل نہ کریں موجودہ ٹریڈنگ جوڑی کے طول و عرض کی حد کے اندر تمام آپشن معاہدوں کی تلاش کریں اگر موجودہ ٹریڈنگ جوڑی BTC_USDT ہے، تو معاہدہ ایک آپشن معاہدے پر مقرر کیا جاتا ہے، مثال کے طور پر، بائننس آپشن معاہدہ: BTC-240108-40000-C
فیوچر ایکسچینجز جو آپشنز کی حمایت کرتے ہیں مخصوص تجارتی مصنوعات کی وضاحت کریں مخصوص آپشن معاہدے کی تلاش کریں مثال کے طور پر بائننس فیوچر ایکسچینج کے لئے، علامت پیرامیٹر ہے: BTC_USDT.BTC-240108-40000-C
فیوچر ایکسچینجز جو آپشنز کی حمایت کرتے ہیں تجارتی مصنوعات کی حد کی وضاحت کریں، علامت پیرامیٹر ہے: USDT.option تمام 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

کے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

کے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 closebuy فروخت اور بند طویل پوزیشن

{@fun/Trade/exchange.Buy exchange.Buy}، {@fun/Trade/exchange.Sell exchange.Sell}

exchange.SetContractType

کے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_USDTFMZ پلیٹ فارم پر، اور پھر استعمال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"). یہ Deribits کی حمایت کرتا ہےUSDCمعاہدہ. ترسیل کے معاہدے یہ ہیں:"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. بائننس ہمیشہ کے معاہدوں کی بھی حمایت کرتا ہے جو مثال کے طور پر مارجن کے طور پر سکے استعمال کرتے ہیں ،BTCBinance معیاری دائمی معاہدے، ٹریڈنگ جوڑی کے ساتھ مقرر کرنے کے لئے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

کے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()فنکشن کا استعمال موجودہ مدت کے لئے فنڈنگ کی شرح کے اعداد و شمار حاصل کرنے کے لئے کیا جاتا ہے۔

کے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

کے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

کے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

کے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

کے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وہ تھریڈ ایگزیکشن فنکشن کے پیرامیٹرز کے طور پر تھریڈ ماحول میں منتقل کیے جا سکتے ہیں۔

گھسائی ہوئی

کےthreadingobject ایک گلوبل ملٹی تھریڈنگ مینجمنٹ ٹول ہے جو بیک وقت تھریڈز ، تھریڈ لاکس ، اور حالت اشیاء بنانے جیسے افعال مہیا کرتا ہے۔ یہ سیکشن رکن افعال کا تعارف کراتا ہے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 حاصل کریں

کے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().

peekپیغام

کےpeekMessage()ایک موضوع سے ایک پیغام حاصل کرنے کے لئے استعمال کیا جاتا ہے.

کےpeekMessage()فنکشن موجودہ تھریڈ آبجیکٹ سے منسلک تھریڈ کے ذریعہ موصولہ پیغام کو لوٹاتا ہے۔

سٹرنگ، نمبر، بول، آبجیکٹ، صف، null value اور نظام کی حمایت کی دیگر اقسام

peekMessage() peekMessage ((ٹائم آؤٹ)

پیرامیٹرtimeoutis the timeout setting. یہ پیرامیٹر کے ذریعہ طے شدہ ملی سیکنڈ کی تعداد کو بلاک کرے گا اور انتظار کرے گا اور ڈیٹا واپس کرے گا۔ اگر کوئی ڈیٹا نہیں ہے اور ٹائم آؤٹ حد سے زیادہ ہے تو ، ایک null قدر واپس کردی جائے گی۔ اگرtimeout0 پر مقرر کیا جاتا ہے یا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چیزعملدرآمد کے نتائج کے بارے میں اعداد و شمار پر مشتمل ہے. خصوصیات میں مندرجہ ذیل شامل ہیں:

  • id: Thread ID
  • ختم: کیا دھاگے کو ختم کرنے کے لئے مجبور کیا جاتا ہے.
  • گزرا ہوا: نینو سیکنڈ میں دھاگے کا چلنے کا وقت۔
  • ret: تھریڈ فنکشن کی واپسی کی قیمت۔

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 حاصل کریں

کے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ملی سیکنڈ میں ٹائم آؤٹ کی ترتیب ہے. اگر پیرامیٹرtimeout0 پر مقرر کیا گیا ہے تو ، یہ واپسی سے پہلے کسی ایونٹ کے ہونے کا انتظار کرے گا۔ اگر یہ 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()فنکشن لوٹاتا ہے کہ آیا واقعہ (سگنل) مقرر کیا گیا ہے۔ اگر واقعہ (سگنل) مقرر کیا گیا ہے تو ، یہ ایک حقیقی قدر لوٹاتا ہے۔

بول

isSet()

براہ مہربانی ملاحظہ کریںthreading.Event()مثالوں کے لئے سیکشن.

{@fun/Threads/ThreadEvent/set set}، {@fun/Threads/ThreadEvent/clear clear}، {@fun/Threads/ThreadEvent/wait wait}

تھریڈCondition

حالت کا اعتراض، کثیر تھریڈ ہم وقت سازی کے لئے استعمال کیا جاتا ہے.

مطلع کرنا

کے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}

ThreadDict

لغت کا اعتراض، ڈیٹا شیئرنگ کے لیے استعمال کیا جاتا ہے۔

حاصل کرنا

کے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}

ویب3

exchange.IO("ابھی،"...)

ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم میں ، یہ بنیادی طور پر مختلف افعال کو نافذ کرتا ہے ، بلاکچین سے متعلق کالز کے ذریعے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،...)

کال کرنے کا طریقہ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("کوڈ،"...)

کے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()کوڈنگ کے لئے، آپ کو دو پیرامیٹرز کو منتقل کرنے کے لئے جاری رکھنے کی ضرورت ہے:

    1. ٹیپل کی قسم کے مطابق متغیرات:
    
    {
        a: 30,
        b: 20,
        c: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
    }
    
    

    میں منتقل پیرامیٹرز کی ساخت اور قسم کے ساتھ بھی ہم آہنگ ہونا ضروری ہےtuple، جیسا کہtypesفارم کا پیرامیٹر:tuple(a uint256,b uint8,c address).

    1. قسم کے مطابق متغیرات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طریقہ، جس میں فنکشن کال کوڈ واپس کر سکتے ہیںhexstring فارمیٹ۔ مخصوص استعمال کے لئے ، آپ عوامی طور پر دستیاب پلیٹ فارمز سے رجوع کرسکتے ہیںUniswap V3 Trade سانچہ. جب کوڈنگ کا طریقہ سمارٹ معاہدوں پر کال کرتا ہے تو ، پہلے متعلقہ اے بی آئی کو رجسٹر کرنے کی ضرورت ہے۔

exchange.IO("انکوڈ پیکیجڈ،"...)

کے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("ڈیسکوڈ،"...)

کے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("کلید،"...)

کے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("اے پی آئی،...)

کے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پیرامیٹر اسمارٹ معاہدے کا طریقہ بیان کرنے کے لئے استعمال کیا جاتا ہے جسے بلایا جائے۔ طریقہ کار سچ سٹرنگ کےvalueETH کی رقم بھیجنے کے لئے مقرر کرنے کے لئے استعمال کیا جاتا ہے.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طریقہ کار ایک ہےconstantERC20 کا طریقہ ہے کہ گیس کی کھپت کا سامنا نہیں کرتا اور یہ ایک ٹوکن کی صحت سے متعلق اعداد و شمار کو تلاش کر سکتے ہیں.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طریقہ کار ایک ہےconstantERC20 کا ایک طریقہ ہے جو گیس کی کھپت پیدا نہیں کرتا ہے اور ایک مخصوص معاہدے کے ایڈریس کے لئے ایک ٹوکن کی مجاز رقم سے استفسار کرسکتا ہے۔allowanceطریقہ کار 2 پیرامیٹرز لیتا ہے ، پہلا والٹ ایڈریس ہے اور دوسرا مجاز پتہ ہے۔ واپسی کی قیمت: ٹوکن کی اجازت کی رقم۔
owner: بٹوے کا پتہ، مثال owner سٹرنگ کی طرف سے تبدیل کیا جاتا ہے، اصل استعمال مخصوص ایڈریس میں بھرنے کی ضرورت ہے.spender: منظور شدہ معاہدے کا پتہ، مثال کے طور پر سلسلہ 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طریقہ کار کالز، آپ کو عوامی طور پر دستیاب پلیٹ فارم سے رجوع کر سکتے ہیںUniswap V3 Trade سانچہ

یہاں کچھ تفصیلات کا استعمال کرتے ہوئے بیان کیا گیا ہے:


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("عنوان")

کے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("بنیاد،"...)

کے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

کے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]);
}

کےTAFMZ 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()فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےاسٹوکاسٹک اشارے.

کی واپسی کی قیمت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 ((ان ریئل) 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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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(غیر حقیقی)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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن کا حساب کرنے کے لئے استعمال کیا جاتابولنگر بینڈ اشارے.

کی واپسی کی قیمت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()فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامگرمچھ کا اشارہ.

کی واپسی کی قیمت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()فنکشن ہے: ایک جہتی صف. صف

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()تقریب موجودہ بار کو خارج کرتے ہوئے آخری مخصوص مدت میں ایک وصف کی زیادہ سے زیادہ قیمت واپس کرتا ہے. نمبر

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()فنکشن موجودہ بار کو چھوڑ کر آخری مخصوص مدت میں ایک خصوصیت کی کم سے کم قیمت واپس کرتا ہے۔ نمبر

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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

کے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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ایک جہتی صف ہے. صف

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

کے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

کے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()فنکشن ہے: ایک جہتی صف. صف

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

کے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()فنکشن ایک جہتی صف ہے. صف

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

کے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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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

کے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()فنکشن ہے: ایک جہتی صف. صف

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

کے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

کے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()فنکشن ہے: ایک جہتی صف. صف

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

کے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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ہے: ایک جہتی صف. صف

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

کے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

کے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

کے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

کے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()فنکشن ایک جہتی صف ہے. صف

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

کے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

کے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()فنکشن ہے: ایک جہتی صف. صف

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

کے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()فنکشن ایک جہتی صف ہے. صف

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

کے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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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

کے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

کے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()فنکشن ہے: ایک جہتی صف. صف

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

کے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

کے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()فنکشن ایک جہتی صف ہے. صف

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

کے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()فنکشن ہے: ایک جہتی صف. صف

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

کے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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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

کے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()فنکشن ہے: ایک جہتی صف. صف

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

کے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

کے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

کے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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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

کے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

کے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

کے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()فنکشن ایک جہتی صف ہے. صف

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

کے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()فنکشن ایک جہتی صف ہے. صف

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

کے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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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

کے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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن کا استعمال مخصوص مدت کے لئے کم سے کم قیمت (کم سے کم قیمت) ** کا حساب کرنے کے لئے کیا جاتا ہے۔

کی واپسی کی قیمت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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن دو جہتی صف ہے۔ اس دو جہتی صف کا پہلا عنصر کم سے کم اقدار کی صف ہے ، اور دوسرا عنصر زیادہ سے زیادہ اقدار کی صف ہے۔ صف

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()فنکشن ہے: ایک دو جہتی صف۔ اس دو جہتی صف کا پہلا عنصر کم سے کم انڈیکسڈ صف ہے ، اور دوسرا عنصر زیادہ سے زیادہ انڈیکسڈ صف ہے۔ صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()ایک دو جہتی صف ہے. صف

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()فنکشن ہے: ایک دو جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک دو جہتی صف۔ صف میں تین عناصر شامل ہیں جو ہیں: اوپری لائن صف ، درمیانی لائن صف ، اور نچلی لائن صف۔ صف

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()فنکشن ایک جہتی صف ہے. صف

طالب.ڈی ای ایم اے (ان ریئل) 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()فنکشن ایک جہتی صف ہے. صف

طالب.ای ایم اے ((ان ریئل) 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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

تالیب.کاما ((ان ریئل) 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(غیر حقیقی)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

کے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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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

کے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

کے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()فنکشن ہے: ایک جہتی صف. صف

تالیب.ایس ایم اے ((ان ریئل) 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

کے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()فنکشن ایک جہتی صف ہے. صف

تالیب.ٹیما ((ان ریئل) 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()فنکشن کا حساب کرنے کے لئے استعمال کیا جاتامثلث حرکت پذیر اوسط (تین نمایاں حرکت پذیر اوسط).

کی واپسی کی قیمت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

کے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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ہے: ایک جہتی صف. صف

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 ((ان ریئل) 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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ہے: ایک جہتی صف. صف

طالب.اے پی او ((ان ریئل) 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

کے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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ہے: ایک جہتی صف. صف

طالب.سی ایم او ((ان ریئل) 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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ہے: ایک دو جہتی صف. صف

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

کے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

کے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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ہے: ایک جہتی صف. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

تالیب.پی پی او ((ان ریئل) 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

کے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

کے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()فنکشن ایک جہتی صف ہے. صف

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

کے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()فنکشن ایک جہتی صف ہے. صف

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

کے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()ایک دو جہتی صف ہے. صف

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 ((ان ریئل) 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 ((ان ریئل) 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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن حساب کرنے کے لئے استعمال کیا جاتا ہےولیمز %R.

کی واپسی کی قیمت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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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()فنکشن ایک جہتی صف ہے. صف

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)

ڈھانچے