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

حکمت عملی اندراج افعال

میں حکمت عملیوں کے لئےJavaScript, Python، اورC++زبانوں میں، ایف ایم زیڈ کوانٹ ٹریڈنگ پلیٹ فارم کے لئے درج ذیل اندراج کے افعال کی وضاحت کی گئی ہے۔

فنکشن کا نام تفصیل
main() انٹری فنکشن، یہ حکمت عملی کا بنیادی فنکشن ہے۔
onexit() یہ ایک صفائی کی تقریب ہے جب عام طور پر باہر نکلتا ہے، اس کا زیادہ سے زیادہ عملدرآمد کا وقت 5 منٹ ہے، جو غیر اعلانیہ طور پر چھوڑ دیا جا سکتا ہے؛ اگر ٹائم آؤٹ ہوتا ہے تو،روکناغلطی کی اطلاع دی جائے گی.onerror()براہ راست ٹریڈنگ کے دوران سب سے پہلے فنکشن کو متحرک کیا جاتا ہے،onexit()تقریب دوبارہ متحرک نہیں کیا جائے گا.
onerror() یہ ایک غیر معمولی باہر نکلنے کے فنکشن ہے، اس کی زیادہ سے زیادہ عملدرآمد کا وقت 5 منٹ ہے، جو غیر اعلانیہ چھوڑ دیا جا سکتا ہے.PythonاورC++اس فنکشن کی حمایت نہیں کرتے، اور فنکشن بیک ٹسٹنگ سسٹم کی حمایت نہیں کرتا.
init() یہ ایک ابتدائیہ فنکشن ہے، اس کی حکمت عملی پروگرام خود کار طریقے سے بلایا جائے گا جب یہ چلانے کے لئے شروع ہوتا ہے، جو غیر اعلانیہ چھوڑ دیا جا سکتا ہے.

ایک ایکٹ (((

onexit()، پروسیسنگ صفائی کے کام، 5 منٹ کی ایک زیادہ سے زیادہ کارکردگی کا مظاہرہ وقت کے ساتھ، جو صارف کی طرف سے احساس کیا جاتا ہے.

function main(){
    Log("Start running, stop after 5 seconds, and execute onexit function!")
    Sleep(1000 * 5)
}

// onexit function implementation
function onexit(){
    var beginTime = new Date().getTime()
    while(true){
        var nowTime = new Date().getTime()
        Log("The program stops counting down..The cleaning starts and has passed:", (nowTime - beginTime) / 1000, "Seconds!")
        Sleep(1000)
    }
}
import time 
def main():
    Log("Start running, stop after 5 seconds, and execute onexit function!")
    Sleep(1000 * 5)

def onexit():
    beginTime = time.time() * 1000
    while True:
        ts = time.time() * 1000
        Log("The program stops counting down.The cleaning starts and has passed:", (nowTime - beginTime) / 1000, "Seconds!")
        Sleep(1000)
void main() {
    Log("Start running, stop after 5 seconds, and execute onexit function!");
    Sleep(1000 * 5);
}

void onexit() {
    auto beginTime = Unix() * 1000;
    while(true) {
        auto ts = Unix() * 1000;
        Log("The program stops counting down.The cleaning starts and has passed:", (nowTime - beginTime) / 1000, "Seconds!");
        Sleep(1000);
    }
}

ٹیسٹ کریںonexit()فنکشن:

function main() {
    if (exchange.GetName().startsWith("Futures_")) {
        Log("The exchange is futures")
        exchange.SetContractType("swap")
    } else {
        Log("The exchange is spot")
    }

    if (IsVirtual()) { 
        try { 
            onTick()
        } catch (e) { 
            Log("error:", e)
        }  
    } else {
        onTick()
    }
}

function onTick() {
    while (true) {
        var ticker = exchange.GetTicker() 
        LogStatus(_D(), ticker ? ticker.Last : "--")
        Sleep(500) 
    } 
}

function onexit() { 
    Log("Execute the sweep function") 
}
def main():
    if exchange.GetName().startswith("Futures_"):
        Log("The exchange is futures")
    else:
        Log("The exchange is spot")

    if IsVirtual():
        try:
            onTick()
        except Exception as e:
            Log(e)
    else:
        onTick()

def onTick():
    while True:
        ticker = exchange.GetTicker()
        LogStatus(_D(), ticker["Last"] if ticker else "--")
        Sleep(500)

def onexit():
    Log("Execute the sweep function")
#include <iostream>
#include <exception>
#include <string>

void onTick() {
    while (true) {
        auto ticker = exchange.GetTicker();
        LogStatus(_D(), ticker);
        Sleep(500);
    } 
}

void main() {
    std::string prefix = "Futures_";
    bool startsWith = exchange.GetName().substr(0, prefix.length()) == prefix;
    if (startsWith) {
        Log("The exchange is futures");
        exchange.SetContractType("swap");
    } else {
        Log("The exchange is spot");
    }

    if (IsVirtual()) {
        try {
            onTick();
        } catch (...) {
            std::cerr << "Caught unknown exception" << std::endl;
        }        
    } else {
        onTick();
    }
}

void onexit() { 
    Log("Execute the sweep function");
}

چونکہ بیک ٹسٹنگ سسٹم میں حکمت عملی عام طور پر ایک لامحدود لوپ کے طور پر ڈیزائن کیا جاتا ہے،onexit()عملدرآمد کی حکمت عملی میں لاگو فنکشن backtesting کے نظام میں متحرک نہیں کیا جا سکتا.onexit()فنکشن بیک ٹسٹنگ سسٹم کے اختتامی نشان کا پتہ لگانے سے شروع کیا جاسکتا ہے (EOF استثناء) ۔

شروع کریں

صارف initialization تقریب کو لاگو کرتا ہےinit()، جو خود کار طریقے سے تقریب کو انجام دے گاinit()شروع کرنے کے کام کو مکمل کرنے کے لئے حکمت عملی کے آغاز میں.

function main(){
    Log("The first line of the code executed in the program!", "#FF0000")
    Log("Exit!")
}

// Initialization the function
function init(){     
    Log("Initialization!")
}
def main():
    Log("The first line of the code executed in the program!", "#FF0000")
    Log("Exit!")

def init():
    Log("Initialization!")
void main() {
    Log("The first line of the code executed in the program!", "#FF0000");
    Log("Exit!");
}

void init() {
    Log("Initialization!");
}

onerror()

فنکشن کی انجام دہیonerror()جب کوئی استثناء واقع ہوتا ہے تو ٹرگر کیا جائے گا۔ یہ فنکشنPythonاورC++.onerror()تقریب ایک لے سکتے ہیںmsgپیرامیٹر، جو کہ غلطی کا پیغام ہے جو استثناء کو ٹرگر کرنے پر رپورٹ کیا جاتا ہے۔

function main() {
    var arr = []
    Log(arr[6].Close)  // A program exception is intentionally raised here.
}

function onerror(msg) {
    Log("error:", msg)
}
# not supported by python
// not supported by C++
بیک ٹیسٹ سسٹم حکمت عملی کا فریم ورک اور API افعال