onexit()
, xử lý công việc dọn dẹp, với thời gian thực hiện tối đa 5 phút, được thực hiện bởi người dùng.
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);
}
}
Kiểm traonexit()
chức năng:
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");
}
Vì chiến lược trong hệ thống backtesting thường được thiết kế như một vòng lặp vô tận,onexit()
không thể được kích hoạt trong hệ thống backtesting.onexit()
chức năng có thể được kích hoạt bằng cách phát hiện dấu cuối của hệ thống backtesting (ngoại trừ EOF).