ایجاد کنندہ کیوٹیفکیشن API دستاویزات

مصنف:چھوٹا سا خواب, تخلیق: 2017-11-27 09:05:08، تازہ کاری: 2023-07-12 16:47:31

اس کے بعد ، ایونٹ لوپ کی نگرانی کا طریقہ کار شروع کیا گیا تھا ، جس کے نتیجے میں یہ اعداد و شمار موصول ہوچکے تھے ، لیکن ان واقعات کو نظرانداز کردیا گیا تھا۔ // جب تک کہ ایونٹ لوپ کو کوڈ کی پہلی لائن میں بلایا نہ جائے ((-1) ، ان واقعات کو یاد نہیں کیا جائے گا جب تک کہ پہلے ایونٹ لوپ کی نگرانی کا طریقہ کار شروع نہ ہوجائے۔

// Log("GetDepth:", routine_getDepth.wait()) 如果这里提前调用wait函数取出GetDepth函数并发调用的结果,此次GetDepth函数收到请求结果的事件便不会在EventLoop函数返回
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("第1个并发任务完成的为:", _D(ts1), ret1)
Log("第2个并发任务完成的为:", _D(ts2), ret2)
Log("第3个并发任务完成的为:", _D(ts3), ret3)

Log("GetTicker:", routine_getTicker.wait())
Log("GetDepth:", routine_getDepth.wait())
Log("GetTrades:", routine_getTrades.wait())

}


```python
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("第1个并发任务完成的为:", _D(ts1), ret1)
    Log("第2个并发任务完成的为:", _D(ts2), ret2)
    Log("第3个并发任务完成的为:", _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("第1个并发任务完成的为:", _D(ts1), ret1);
    Log("第2个并发任务完成的为:", _D(ts2), ret2);
    Log("第3个并发任务完成的为:", _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);
}

بلٹ ان فنکشن

_G(K، V)

_G(K, V)اس فنکشن میں ایک محفوظ شدہ عالمی لغت کی خصوصیت کو نافذ کیا گیا ہے ، جو دوبارہ جانچ اور فزیکل ڈسک دونوں کی حمایت کرتا ہے۔ دوبارہ جانچ ختم ہونے کے بعد ، محفوظ کردہ ڈیٹا کو صاف کردیا جاتا ہے۔ اعداد و شمار کی ساختKVٹیبل، مستقل طور پر مقامی فائلوں کو برقرار رکھتا ہے، ہر فکسڈ ڈسک پر علیحدہ ڈیٹا بیس، دوبارہ شروع یا منتظم کے باہر نکلنے کے بعد موجود ہے.Kاس کا مطلب یہ ہے کہ آپ کو اس کے بارے میں مزید جاننے کی ضرورت ہے۔Vکسی بھی چیز کے لئےJSONسیریل شدہ مواد._G()اگر آپ کے پاس ایک فنکشن ہے اور اس میں کوئی پیرامیٹرز نہیں ہیں تو ، آپ کو اس کے بارے میں مزید جاننے کی ضرورت ہے۔_G()فنکشن موجودہ ڈسک کی واپسیID

function main(){
    // 设置一个全局变量num,值为1
    _G("num", 1)     
    // 更改一个全局变量num,值为字符串ok
    _G("num", "ok")    
    // 删除全局变量num
    _G("num", null)
    // 返回全局变量num的值
    Log(_G("num"))
    // 删除所有全局变量
    _G(null)
    // 返回实盘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);
    // 不支持 auto robotId = _G();
}

نوٹ: استعمال_Gجب فنکشنل مستقل اسٹوریج کے اعداد و شمار کو ہارڈویئر ڈیوائس کی میموری ، ہارڈ ڈسک کی جگہ کے لحاظ سے مناسب استعمال کیا جانا چاہئے اور غلط استعمال نہیں کیا جانا چاہئے۔ ورنہ اس سے نقصان ہوسکتا ہے۔میموری کا بہاؤاس کے بارے میں کیا خیال ہے؟

_D ((ٹائم اسٹیمپ، Fmt)

_D(Timestamp, Fmt)، مخصوص وقت کی ہڈی کے مطابق وقت کی سٹرنگ لوٹاتا ہے۔Timestampعددی قسم کے لئے، قیمت ملی سیکنڈ کی تعداد ہے۔Fmtاسکرین شاٹ کے لئے،Fmtاس کا مطلب یہ ہے کہ:yyyy-MM-dd hh:mm:ss، واپسی کی قدر: سٹرنگ کی قسم. مقررہ وقت کی گھنٹی ((ملی سیکنڈ) کے مساوی سٹرنگ کو واپس کرتا ہے ، بغیر کسی پیرامیٹر کو منتقل کیے موجودہ وقت واپس کرتا ہے۔ مثال کے طور پر:_D()یا_D(1478570053241)ڈیفالٹ فارمیٹyyyy-MM-dd hh:mm:ss

function main(){
    var time = _D()
    Log(time)
}
def main():
    strTime = _D()
    Log(strTime)
void main() {
    auto strTime = _D();
    Log(strTime);
}

نوٹ:Pythonحکمت عملی میں استعمال_D()اس کے علاوہ، آپ کو اس بات کا بھی خیال رکھنا چاہئے کہ سیکنڈ کی سطح پر وقت کی حد ہے.JavaScriptC++اس حکمت عملی میں ملی سیکنڈ کی سطح پر وقت کی گھنٹی ہے۔ ایک سیکنڈ 1000 ملی سیکنڈ کے برابر ہے۔) حقیقی وقت میں استعمال کریں_D()جب فنکشن ایک ٹائم ٹیگ کو پڑھنے کے قابل ٹائم سٹرنگ کے طور پر تجزیہ کرتا ہے تو ، آپریٹنگ سسٹم کے ٹائم زون ، وقت کی ترتیبات پر توجہ دینا ضروری ہے۔_D()فنکشن ایک ٹائم ٹیگ کو پڑھنے کے قابل ٹائم سٹرنگ کے طور پر تجزیہ کرتا ہے جو میزبان سسٹم کے وقت کے مطابق مقرر کیا جاتا ہے۔

مثال کے طور پر، ایک ٹائم لائن1574993606000کوڈ کا استعمال کرتے ہوئے تجزیہ:

function main() {
    Log(_D(1574993606000))
}
def main():
    # 北京时间的服务器上运行:2019-11-29 10:13:26 ,另一台其它地区的服务器上的托管者运行此代码结果则为:2019-11-29 02:13:26
    Log(_D(1574993606))
void main() {
    Log(_D(1574993606000));
}

_N(نمبر، درستگی)

_N(Num, Precision)، ایک فلوٹ پوائنٹ کو فارمیٹ کریں۔Numآپ کے پاس کیا ہے؟Precisionمکمل قسم کے لئے۔ واپسی کی قدر: عددی قسم۔

مثال کے طور_N(3.1415, 2)ہٹا دیا جائے گا3.1415دو ہندسوں کے بعد ایک عدد، فنکشن واپس کرتا ہے3.14

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 ہندسوں کو 0 بنانا ہے تو آپ اسے لکھ سکتے ہیں:

function main(){
    var i = 1300
    Log(i)
    var ii = _N(i, -3)
    // 查看日志得知为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);
}

_C(...)

_C(function, args...)اس فنکشن کو دوبارہ آزمائشی فنکشن کے طور پر استعمال کیا جاتا ہے ، جس کا استعمال انٹرفیس کی خرابیوں کو دور کرنے کے لئے کیا جاتا ہے ، جیسے تجارت ، غیر مکمل احکامات کو حاصل کرنا۔

یہ انٹرفیس مخصوص فنکشن کو کال کرتا رہتا ہے جب تک کہ اس کی واپسی کی کامیابی نہ ہو ((parameter)functionجب حوالہ دیا گیا فنکشن بلایا جاتا ہے تو خالی یاfalseاس کے بعد آپ کو دوبارہ کال کرنے کی کوشش کرنی ہوگی) ؛ مثال کے طور پر:_C(exchange.GetTicker)ڈیفالٹ کی طرف سے ، دوبارہ کوشش کے وقفے 3 سیکنڈ ہیں ، آپ کو کال کر سکتے ہیں_CDelay(...)ایک فنکشن جو دوبارہ کوشش کے وقفے کو ترتیب دیتا ہے، جیسے_CDelay(1000)تبدیلی کا مطلب_Cایک سیکنڈ کے وقفے کے ساتھ فنکشن دوبارہ آزمائیں۔

مندرجہ ذیل افعال کے لئے:

  • exchange.GetTicker()
  • exchange.GetDepth()
  • exchange.GetTrades()
  • exchange.GetRecords()
  • exchange.GetAccount()
  • exchange.GetOrders()
  • exchange.GetOrder()
  • exchange.GetPosition()

آپ کو اس کے ذریعے حاصل کر سکتے_C(...)غلطیاں کرنے کے لئے فنکشن کو کال کریں۔_C(function, args...)افعال غلطیاں کرنے کے قابل ہیں، پیرامیٹرز مندرجہ بالا افعال تک محدود نہیں ہیںfunctionیہ ایک فنکشن کا حوالہ ہے اور نہ ہی ایک فنکشن کال._C(exchange.GetTicker)نہیں_C(exchange.GetTicker())

function main(){
    var ticker = _C(exchange.GetTicker)
    // 调整_C()函数重试时间间隔为2秒
    _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);
}

پیرامیٹرز والے افعال کے لئے استعمال کیا جاتا ہے_C(...)غلطیاں کرنے کا وقت:

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("符合条件!", "#FF0000")
        return true
    }
    Log("重试!", "#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("符合条件!", "#FF0000")
        return True
    Log("重试!", "#FF0000")
    return False

def main():
    ret = _C(test, 1, 5)
    Log(ret)
// C++ 不支持这种方式对于自定义函数容错

_Cross ((Arr1، Arr2)

_Cross(Arr1, Arr2)اور پھر واپس آتا ہےارر1اورarr2◄ مثبت تعداد کے لئے اوپر گزرنے کے دورانیے، منفی کے لئے نیچے گزرنے کے دورانیے، 0 کے لئے موجودہ قیمت کے طور پر ایک ہی ہے ◄ پیرامیٹر ویلیو: عددی قسم کے صفیں ◄

ایک ڈیٹا ٹیسٹ کا نمونہ بنانا_Cross(Arr1, Arr2)فنکشن:

// 快线指标
var arr1 = [1,2,3,4,5,6,8,8,9]
// 慢线指标
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));
}

img

اعداد و شمار کو مشاہدہ کرنے کے لئے مشابہت کو دیکھنے کے لئے

img

استعمال کی تفصیلات:بلٹ ان فنکشن _Cross تجزیہ اور استعمال کی ہدایات

JSONParse ((strJson)

JSONParse(strJson)اس فنکشن کا استعمال JSON سٹرنگ کو تجزیہ کرنے کے لئے کیا جاتا ہے۔ اس فنکشن کا استعمال JSON سٹرنگ کو درست طریقے سے تجزیہ کرنے کے لئے کیا جاتا ہے جس میں بڑی عددی مقدار ہوتی ہے ، جس سے بڑی عددی مقدار کو سٹرنگ کی قسم میں تجزیہ کیا جاتا ہے۔

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));   // 不支持该函数
    
    auto s2 = "{\"num\":123}";
    Log("json::parse:", json::parse(s2));
    // Log("JSONParse:", JSONParse(s2));   // 不支持该函数
}

اپنی مرضی کے رنگ

ہر پیغام کی سٹرنگ استعمال کی جا سکتی ہے#ff0000اس طرح کے RGB قدر کے آخر میں، ظاہر کرنے کے لئے کی ضرورت ہے کہ پیش نظارہ کی نمائندگی کرتا ہے؛#ff0000112233اس طرح کے فارمیٹ میں ، آخری چھ لوگ پس منظر کے رنگ کی نمائندگی کرتے ہیں۔

function main() {
    Log("红色", "#FF0000")
}
def main():
    Log("红色", "#FF0000")
void main() {
    Log("红色", "#FF0000");
}

تاریخ کی معلومات

لاگ ان کی معلومات کو ریکارڈ کیا جاتا ہے جب ایک حقیقی ڈسک چل رہا ہے، ایک حقیقی ڈسک کے ڈیٹا بیس میںsqlite3ڈیٹا بیس، فکسڈ ڈسک پر ڈیٹا بیس فائلیں میزبان پروگرام میں ہیں جہاں آلہ، ڈیٹا بیس فائلیں میزبان پروگرام میں ہیںrobotقابل عمل پروگرام) کی ڈائرکٹری میں. مثال کے طور پر:130350کی ڈسک ڈیٹا بیس فائلوں میں../logs/storage/130350اس فہرست میں..یعنیrobotڈائرکٹری جہاں منتظم پروگرام واقع ہے) ، ڈیٹا بیس فائل کا نام ہے130350.db3◄ دوبارہ جانچ پڑتال کے نظام میں لاگ ان کرنے کے بعد ، صفحے کے نیچے دائیں کونے میں دوبارہ جانچ پڑتال کے لئے کلک کریںڈاؤن لوڈ کریں[بٹن ڈاؤن لوڈ کرنے کے لئے]. جب کسی دوسرے سرور پر ڈسک کو منتقل کرنے کی ضرورت ہو تو ، ڈسک پر موجود ڈیٹا بیس فائلوں (بنیادی طور پر DB3 نامی ڈیٹا بیس فائلوں کی توسیع) کو منتقلی کے ہدف کے سرور پر منتقل کیا جاسکتا ہے ، اور فائل کا نام پلیٹ فارم پر اسی ڈسک ID کے طور پر مقرر کیا جاسکتا ہے۔ اس طرح پہلے سے موجود ڈسک کی تمام لاگ ان معلومات نئے آلہ پر منتقلی کے دوران ضائع نہیں ہوتی ہیں۔

نوشتہ جات

Log(message)آپ کے پیغام کو محفوظ کرنے کے لئے ، آپ کی لاگ ان کی فہرست میں ایک پیغام محفوظ کریں۔messageیہ کسی بھی قسم کا ہو سکتا ہے۔ اگر آپ اس کے بعد جمع کرتے ہیں@اس کے بعد، پیغام کو آگے بڑھانے کی قطار میں داخل کیا جاتا ہے اور موجودہ موجد کے اکاؤنٹ، ٹیلیگرام، ویب ہک، وغیرہ کو آگے بڑھانے کی ترتیبات میں ترتیب دیا جاتا ہے.کنٹرول سینٹرصفحہ، اوپر دائیں کونےاکاؤنٹ کی ترتیباتصفحہ اولدھکا کی ترتیباتصفحہ کی ترتیبات پابند ہیں) ‖

نوٹ:

  • "ڈیبگ ٹول" میں پش کی حمایت نہیں ہے۔
  • "ریٹیسٹ سسٹم" میں پش کی حمایت نہیں کی جاتی ہے۔
function main() {
    Log("发明者量化你好 !@")
    Sleep(1000 * 5)
    // 字符串内加入#ff0000,打印日志显示为红色,并且推送消息
    Log("你好, #ff0000@")
}
def main():
    Log("发明者量化你好 !@")
    Sleep(1000 * 5)
    Log("你好, #ff0000@")
void main() {
    Log("发明者量化你好 !@");
    Sleep(1000 * 5);
    Log("你好, #ff0000@");
}

ویب ہکدھکا:

استعمال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)
}

سیٹنگWebHookhttp://XXX.XX.XXX.XX:9090/data?data=Hello_FMZ

سروس پروگرام چلانے کے بعد ، حکمت عملی کو انجام دیں ، حکمت عملی کو پیغام بھیجیں:

function main() {
    Log("msg", "@")
}
def main():
    Log("msg", "@")
void main() {
    Log("msg", "@");
}

اس کے بعد ، آپ کو ایک پیغام موصول ہوتا ہے جس میں آپ کو ایک پیغام بھیجنے کی ضرورت ہوتی ہے۔

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}

پرنٹنگbase64تصویر کوڈ کے بعد Logفنکشن پرنٹنگ کی حمایت کرتا ہےbase64تصویر کوڈ کے بعد،`شروع کریں`آخر میں ، مثال کے طور پر:

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براہ راست پرنٹنگ کی حمایتPythonکےmatplotlib.pyplotجب تک کہ یہ شامل ہوsavefigاس کا طریقہ براہ راست ہےLogاس کے علاوہ، آپ کو اس کے بارے میں مزید جاننے کی ضرورت ہے.

import matplotlib.pyplot as plt 
def main(): 
    plt.plot([3,6,2,4,7,1]) 
    Log(plt)

خود کار طریقے سے زبان سوئچ پرنٹ لاگ ان کریں Logاس کے علاوہ، یہ آپ کے لئے بہت اچھا ہے کہ آپ کو اس کے بارے میں جاننے کی ضرورت ہے۔Logفنکشن آؤٹ پٹ ٹیکسٹ ، جو پلیٹ فارم کے صفحات پر زبان کی ترتیب کے مطابق خود بخود اسی زبان میں تبدیل ہوجاتا ہے ، جیسے:

function main() {
    Log("[trans]中文|abc[/trans]")
}
def main():
    Log("[trans]中文|abc[/trans]")
void main() {
    Log("[trans]中文|abc[/trans]");
}

لاگ منافع ((منافع)

LogProfit(Profit)، منافع اور نقصان کی قیمت ریکارڈ کریں ، منافع اور نقصان کی قیمت پرنٹ کریں اور منافع اور نقصان کی قیمت کے مطابق آمدنی کا منحنی خطوط بنائیں؛ پیرامیٹر کی قیمت:منافععددی قسم کے لئے۔

اگر آپ اس فنکشن کو&آخر میں ، صرف آمدنی کا گراف بنائیں ، اور آمدنی کے نوشتہ کو پرنٹ نہ کریں ، جیسے:LogProfit(10, '&')

لاگپروفٹ ری سیٹ کریں (()

LogProfitReset()، خالی تمام آمدنی کے نوشتہ جات، ایک عدد عددی قدر کے ساتھ ایک متبادل کے ساتھ، مخصوص محفوظ کرنے کے لئے اندراجات کی وضاحت کر سکتے ہیں.

function main() {
    // 在收益图表上打印30个点,然后重置,只保留最后10个点
    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);
}

لاگ اسٹیٹس ((Msg)

LogStatus(Msg)یہ معلومات لاگ لسٹ میں محفوظ نہیں کی جاتی ہیں ، صرف موجودہ ڈسک کی حیثیت کی معلومات کو اپ ڈیٹ کرتی ہیں ، ڈسک کے صفحے کے لاگ ان کے علاقے کے اوپری حصے میں اسٹیٹ بار ظاہر ہوتا ہے ، جس میں متعدد بار اپ ڈیٹ کی حیثیت کو بلایا جاسکتا ہے۔Msgکسی بھی قسم کے لئے استعمال کیا جا سکتا ہے۔

function main() {
    LogStatus('这是一个普通的状态提示')
    LogStatus('这是一个红色字体的状态提示#ff0000')
    LogStatus('这是一个多行的状态信息\n我是第二行')
}
def main():
    LogStatus('这是一个普通的状态提示')
    LogStatus('这是一个红色字体的状态提示#ff0000')
    LogStatus('这是一个多行的状态信息\n我是第二行')
void main() {
    LogStatus("这是一个普通的状态提示");
    LogStatus("这是一个红色字体的状态提示#ff0000");
    LogStatus("这是一个多行的状态信息\n我是第二行");
}

LogStatus(Msg)پرنٹنگ کی حمایتbase64تصویر کوڈ کے بعد،`شروع کریں`آخر میں ، مثال کے طور پر:LogStatus("`data:image/png;base64,AAAA`")LogStatus(Msg)براہ راست رسائی کی حمایتPythonکےmatplotlib.pyplotجب تک کہ یہ شامل ہوsavefigطریقہ کار میں منتقل کر سکتے ہیںLogStatus(Msg)فنکشن، مثال کے طور پر:

import matplotlib.pyplot as plt 
def main():
    plt.plot([3,6,2,4,7,1])
    LogStatus(plt) 

ریاست کی پٹی میں ڈیٹا آؤٹ پٹ کی مثال:

function main() {
    var table = {type: 'table', title: '持仓信息', cols: ['列1', '列2'], rows: [ ['abc', 'def'], ['ABC', 'support color #ff0000']]}
    // JSON序列化后两边加上`字符,视为一个复杂消息格式(当前支持表格)
    LogStatus('`' + JSON.stringify(table) + '`')                    
    // 表格信息也可以在多行中出现
    LogStatus('第一行消息\n`' + JSON.stringify(table) + '`\n第三行消息')
    // 支持多个表格同时显示,将以TAB显示到一组里
    LogStatus('`' + JSON.stringify([table, table]) + '`')
    
    // 也可以构造一个按钮在表格中,策略用GetCommand接收cmd属性的内容                                
    var table = { 
        type: 'table', 
        title: '持仓操作', 
        cols: ['列1', '列2', 'Action'], 
        rows: [ 
            ['abc', 'def', {'type':'button', 'cmd': 'coverAll', 'name': '平仓'}]
        ]
    }
    LogStatus('`' + JSON.stringify(table) + '`') 
    // 或者构造一单独的按钮
    LogStatus('`' + JSON.stringify({'type':'button', 'cmd': 'coverAll', 'name': '平仓'}) + '`') 
    // 可以自定义按钮风格(bootstrap的按钮属性)
    LogStatus('`' + JSON.stringify({'type':'button', 'class': 'btn btn-xs btn-danger', 'cmd': 'coverAll', 'name': '平仓'}) + '`')
}
import json
def main():
    table = {"type": "table", "title": "持仓信息", "cols": ["列1", "列2"], "rows": [["abc", "def"], ["ABC", "support color #ff0000"]]}
    LogStatus('`' + json.dumps(table) + '`')
    LogStatus('第一行消息\n`' + json.dumps(table) + '`\n第三行消息')
    LogStatus('`' + json.dumps([table, table]) + '`')

    table = {
        "type" : "table", 
        "title" : "持仓操作", 
        "cols" : ["列1", "列2", "Action"], 
        "rows" : [
            ["abc", "def", {"type": "button", "cmd": "coverAll", "name": "平仓"}]
        ] 
    }
    LogStatus('`' + json.dumps(table) + '`')
    LogStatus('`' + json.dumps({"type": "button", "cmd": "coverAll", "name": "平仓"}) + '`')
    LogStatus('`' + json.dumps({"type": "button", "class": "btn btn-xs btn-danger", "cmd": "coverAll", "name": "平仓"}) + '`')
void main() {
    json table = R"({"type": "table", "title": "持仓信息", "cols": ["列1", "列2"], "rows": [["abc", "def"], ["ABC", "support color #ff0000"]]})"_json;
    LogStatus("`" + table.dump() + "`");
    LogStatus("第一行消息\n`" + table.dump() + "`\n第三行消息");
    json arr = R"([])"_json;
    arr.push_back(table);
    arr.push_back(table);
    LogStatus("`" + arr.dump() + "`");

    table = R"({
        "type" : "table", 
        "title" : "持仓操作", 
        "cols" : ["列1", "列2", "Action"], 
        "rows" : [
            ["abc", "def", {"type": "button", "cmd": "coverAll", "name": "平仓"}]
        ] 
    })"_json;
    LogStatus("`" + table.dump() + "`");
    LogStatus("`" + R"({"type": "button", "cmd": "coverAll", "name": "平仓"})"_json.dump() + "`");
    LogStatus("`" + R"({"type": "button", "class": "btn btn-xs btn-danger", "cmd": "coverAll", "name": "平仓"})"_json.dump() + "`");
}

اسٹیٹس بٹن کو غیر فعال کرنے کی ترتیبات، خصوصیات کی وضاحت:

img

function main() {
    var table = {
        type: "table",
        title: "状态栏按钮的禁用、描述功能测试",
        cols: ["列1", "列2", "列3"], 
        rows: []
    }
    var button1 = {"type": "button", "name": "按钮1", "cmd": "button1", "description": "这是第一个按钮"}
    var button2 = {"type": "button", "name": "按钮2", "cmd": "button2", "description": "这是第二个按钮,设置为禁用", "disabled": true}
    var button3 = {"type": "button", "name": "按钮3", "cmd": "button3", "description": "这是第三个按钮,设置为启用", "disabled": false}
    table.rows.push([button1, button2, button3])
    LogStatus("`" + JSON.stringify(table) + "`")
}
import json
def main():
    table = {
        "type": "table",
        "title": "状态栏按钮的禁用、描述功能测试",
        "cols": ["列1", "列2", "列3"], 
        "rows": []
    }
    button1 = {"type": "button", "name": "按钮1", "cmd": "button1", "description": "这是第一个按钮"}
    button2 = {"type": "button", "name": "按钮2", "cmd": "button2", "description": "这是第二个按钮,设置为禁用", "disabled": True}
    button3 = {"type": "button", "name": "按钮3", "cmd": "button3", "description": "这是第三个按钮,设置为启用", "disabled": False}
    table["rows"].append([button1, button2, button3])
    LogStatus("`" + json.dumps(table) + "`")
void main() {
    json table = R"({
        "type": "table",
        "title": "状态栏按钮的禁用、描述功能测试",
        "cols": ["列1", "列2", "列3"], 
        "rows": []
    })"_json;
    json button1 = R"({"type": "button", "name": "按钮1", "cmd": "button1", "description": "这是第一个按钮"})"_json;
    json button2 = R"({"type": "button", "name": "按钮2", "cmd": "button2", "description": "这是第二个按钮,设置为禁用", "disabled": true})"_json;
    json button3 = R"({"type": "button", "name": "按钮3", "cmd": "button3", "description": "这是第三个按钮,设置为启用", "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() + "`");
}

اسٹیٹ بٹن سٹائل کی ترتیبات:

img

function main() {
    var table = {
        type: "table",
        title: "状态栏按钮样式",
        cols: ["默认", "原始", "成功", "信息", "警告", "危险"], 
        rows: [
            [
                {"type":"button", "class": "btn btn-xs btn-default", "name": "默认"},
                {"type":"button", "class": "btn btn-xs btn-primary", "name": "原始"},
                {"type":"button", "class": "btn btn-xs btn-success", "name": "成功"},
                {"type":"button", "class": "btn btn-xs btn-info", "name": "信息"},
                {"type":"button", "class": "btn btn-xs btn-warning", "name": "告警"},
                {"type":"button", "class": "btn btn-xs btn-danger", "name": "危险"}
            ]
        ]
    }
    LogStatus("`" + JSON.stringify(table) + "`")
}
import json
def main():
    table = {
        "type": "table",
        "title": "状态栏按钮样式",
        "cols": ["默认", "原始", "成功", "信息", "警告", "危险"], 
        "rows": [
            [
                {"type":"button", "class": "btn btn-xs btn-default", "name": "默认"},
                {"type":"button", "class": "btn btn-xs btn-primary", "name": "原始"},
                {"type":"button", "class": "btn btn-xs btn-success", "name": "成功"},
                {"type":"button", "class": "btn btn-xs btn-info", "name": "信息"},
                {"type":"button", "class": "btn btn-xs btn-warning", "name": "告警"},
                {"type":"button", "class": "btn btn-xs btn-danger", "name": "危险"}
            ]
        ]
    }
    LogStatus("`" + json.dumps(table) + "`")
void main() {
    json table = R"({
        "type": "table",
        "title": "状态栏按钮样式",
        "cols": ["默认", "原始", "成功", "信息", "警告", "危险"], 
        "rows": [
            [
                {"type":"button", "class": "btn btn-xs btn-default", "name": "默认"},
                {"type":"button", "class": "btn btn-xs btn-primary", "name": "原始"},
                {"type":"button", "class": "btn btn-xs btn-success", "name": "成功"},
                {"type":"button", "class": "btn btn-xs btn-info", "name": "信息"},
                {"type":"button", "class": "btn btn-xs btn-warning", "name": "告警"},
                {"type":"button", "class": "btn btn-xs btn-danger", "name": "危险"}
            ]
        ]
    })"_json;
    LogStatus("`" + table.dump() + "`");
}

جوڑGetCommand()فنکشن، ساختہ حالت بٹن کی بات چیت کی خصوصیات:

function test1() {
    Log("调用自定义函数")
}

function main() {
    while (true) {
        var table = {
            type: 'table',
            title: '操作',
            cols: ['列1', '列2', 'Action'],
            rows: [
                ['a', '1', {
                    'type': 'button',                       
                    'cmd': "CoverAll",                      
                    'name': '平仓'                           
                }],
                ['b', '1', {
                    'type': 'button',
                    'cmd': 10,                              
                    'name': '发送数值'
                }],
                ['c', '1', {
                    'type': 'button',
                    'cmd': _D(),                          
                    'name': '调用函数'
                }],
                ['d', '1', {
                    'type': 'button',
                    'cmd': 'test1',       
                    'name': '调用自定义函数'
                }]
            ]
        }
        LogStatus(_D(), "\n", '`' + JSON.stringify(table) + '`')

        var str_cmd = GetCommand()
        if (str_cmd) {
            Log("接收到的交互数据 str_cmd:", "类型:", typeof(str_cmd), "值:", str_cmd)
            if(str_cmd == "test1") {
                test1()
            }
        }

        Sleep(500)
    }
}
import json
def test1():
    Log("调用自定义函数")

def main():
    while True:
        table = {
            "type": "table", 
            "title": "操作", 
            "cols": ["列1", "列2", "Action"],
            "rows": [
                ["a", "1", {
                    "type": "button", 
                    "cmd": "CoverAll",
                    "name": "平仓"
                }],
                ["b", "1", {
                    "type": "button",
                    "cmd": 10,
                    "name": "发送数值" 
                }], 
                ["c", "1", {
                    "type": "button",
                    "cmd": _D(),
                    "name": "调用函数" 
                }],
                ["d", "1", {
                    "type": "button",
                    "cmd": "test1",
                    "name": "调用自定义函数" 
                }]
            ]
        }

        LogStatus(_D(), "\n", "`" + json.dumps(table) + "`")
        str_cmd = GetCommand()
        if str_cmd:
            Log("接收到的交互数据 str_cmd", "类型:", type(str_cmd), "值:", str_cmd)
            if str_cmd == "test1":
                test1()
        Sleep(500)
void test1() {
    Log("调用自定义函数");
}

void main() {
    while(true) {
        json table = R"({
            "type": "table", 
            "title": "操作", 
            "cols": ["列1", "列2", "Action"],
            "rows": [
                ["a", "1", {
                    "type": "button", 
                    "cmd": "CoverAll",
                    "name": "平仓"
                }],
                ["b", "1", {
                    "type": "button",
                    "cmd": 10,
                    "name": "发送数值" 
                }], 
                ["c", "1", {
                    "type": "button",
                    "cmd": "",
                    "name": "调用函数" 
                }],
                ["d", "1", {
                    "type": "button",
                    "cmd": "test1",
                    "name": "调用自定义函数" 
                }]
            ]
        })"_json;
        table["rows"][2][2]["cmd"] = _D();
        LogStatus(_D(), "\n", "`" + table.dump() + "`");
        auto str_cmd = GetCommand();
        if(str_cmd != "") {
            Log("接收到的交互数据 str_cmd", "类型:", typeid(str_cmd).name(), "值:", str_cmd);
            if(str_cmd == "test1") {
                test1();
            }
        }
        Sleep(500);
    }
}

جب تعمیراتی حالت کے بٹنوں کے ساتھ بات چیت کی جاتی ہے تو اعداد و شمار کی ان پٹ کی بھی حمایت کی جاتی ہے، اور بات چیت کے احکامات کو آخر میں اس کی طرف اشارہ کیا جاتا ہے.GetCommand()فنکشن کیپچر۔ اسٹیٹس پین میں بٹن کنٹرولر کے ڈیٹا ڈھانچے میں اضافہinputمثال کے طور پر{"type": "button", "cmd": "open", "name": "开仓"}اضافہ"input": {"name": "开仓数量", "type": "number", "defValue": 1}ایک بار جب بٹن پر کلک کیا جاتا ہے تو ، ایک بٹن کو ان پٹ باکس کنٹرولر کے ساتھ ایک پنکھڑی (ان پٹ باکس میں ڈیفالٹ قیمت 1 ہے ، یعنی ڈیف ویلیو سیٹ کردہ ڈیٹا) پاپ اپ کرنے کی اجازت دی جاسکتی ہے ، جس میں ایک ڈیٹا ان پٹ کیا جاسکتا ہے اور بٹن کمانڈ کے ساتھ بھیجا جاسکتا ہے۔ مثال کے طور پر ، مندرجہ ذیل ٹیسٹ کوڈ چل رہا ہے ، جب آپ بٹن پر کلک کرتے ہیں تو ، ان پٹ باکس والی پنکھڑی پاپ اپ ہوجاتی ہے ، جس میں ان پٹ باکس میں ان پٹ باکس میں داخل کیا جاتا ہے۔111اس کے بعد "تصدیق" پر کلک کریں۔GetCommandاس کے بعد، آپ کو ایک فنکشن مل جائے گا جس میں آپ کو ایک پیغام مل جائے گا:open:111

function main() {
    var tbl = {
        type: "table",
        title: "操作",
        cols: ["列1", "列2"],
        rows: [
            ["开仓操作", {"type": "button", "cmd": "open", "name": "开仓", "input": {"name": "开仓数量", "type": "number", "defValue": 1}}],
            ["平仓操作", {"type": "button", "cmd": "coverAll", "name": "全部平仓"}]
        ] 
    }

    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": "操作", 
        "cols": ["列1", "列2"],
        "rows": [
            ["开仓操作", {"type": "button", "cmd": "open", "name": "开仓", "input": {"name": "开仓数量", "type": "number", "defValue": 1}}],
            ["平仓操作", {"type": "button", "cmd": "coverAll", "name": "全部平仓"}]
        ]
    }

    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": "操作", 
        "cols": ["列1", "列2"],
        "rows": [
            ["开仓操作", {"type": "button", "cmd": "open", "name": "开仓", "input": {"name": "开仓数量", "type": "number", "defValue": 1}}],
            ["平仓操作", {"type": "button", "cmd": "coverAll", "name": "全部平仓"}]
        ]
    })"_json;

    LogStatus(_D(), "\n", "`" + tbl.dump() + "`");
    while(true) {
        auto cmd = GetCommand();
        if(cmd != "") {
            Log("cmd:", cmd);
        }
        Sleep(1000);
    }
}

ضمLogStatus(Msg)ایک ٹیبل کے اندر ایک سیل جس میں فنکشن پینٹ کیا گیا ہے:

  • افقی ضم

    function main() {
        var table = { 
            type: 'table', 
            title: '持仓操作', 
            cols: ['列1', '列2', 'Action'], 
            rows: [ 
                ['abc', 'def', {'type':'button', 'cmd': 'coverAll', 'name': '平仓'}]
            ]
        } 
        var ticker = exchange.GetTicker()
        // 添加一行数据,第一个和第二个单元格合并,并且输出ticker变量在合并后的单元格内
        table.rows.push([{body : JSON.stringify(ticker), colspan : 2}, "abc"])    
        LogStatus('`' + JSON.stringify(table) + '`')
    }
    
    import json
    def main():
        table = {
            "type" : "table",
            "title" : "持仓操作",
            "cols" : ["列1", "列2", "Action"],
            "rows" : [
                ["abc", "def", {"type": "button", "cmd": "coverAll", "name": "平仓"}]
            ]
        }
        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" : "持仓操作",
            "cols" : ["列1", "列2", "Action"],
            "rows" : [
                ["abc", "def", {"type": "button", "cmd": "coverAll", "name": "平仓"}]
            ]
        })"_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() + "`");
    }
    

  • عمودی ضم

    function main() {
        var table = { 
            type: 'table', 
            title: '表格演示', 
            cols: ['列A', '列B', '列C'], 
            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被上一行第一个单元格合并
        table.rows.push(["B4", "C4"])
        // A2被上一行第一个单元格合并
        table.rows.push(["B5", "C5"])                                            
        table.rows.push(["A6", "B6", "C6"])
        LogStatus('`' + JSON.stringify(table) + '`')
    }
    
    import json
    def main():
        table = {
            "type" : "table", 
            "title" : "表格演示", 
            "cols" : ["列A", "列B", "列C"], 
            "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" : "表格演示", 
            "cols" : ["列A", "列B", "列C"], 
            "rows" : [
                ["A1", "B1", {"type": "button", "cmd": "coverAll", "name": "C1"}]
            ]
        })"_json;
        // 为了测试,代码简短易读,这里使用构造的数据
        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() + "`");
    }
    

اسٹیٹس بار شیٹ کا صفحہ بندی دکھاتا ہے:

function main() {
    var table1 = {type: 'table', title: 'table1', cols: ['列1', '列2'], rows: [ ['abc', 'def'], ['ABC', 'support color #ff0000']]}
    var table2 = {type: 'table', title: 'table2', cols: ['列1', '列2'], rows: [ ['abc', 'def'], ['ABC', 'support color #ff0000']]}
    LogStatus('`' + JSON.stringify([table1, table2]) + '`')
}
import json
def main():
    table1 = {"type": "table", "title": "table1", "cols": ["列1", "列2"], "rows": [ ["abc", "def"], ["ABC", "support color #ff0000"]]}
    table2 = {"type": "table", "title": "table2", "cols": ["列1", "列2"], "rows": [ ["abc", "def"], ["ABC", "support color #ff0000"]]}
    LogStatus("`" + json.dumps([table1, table2]) + "`")
void main() {
    json table1 = R"({"type": "table", "title": "table1", "cols": ["列1", "列2"], "rows": [ ["abc", "def"], ["ABC", "support color #ff0000"]]})"_json;
    json table2 = R"({"type": "table", "title": "table2", "cols": ["列1", "列2"], "rows": [ ["abc", "def"], ["ABC", "support color #ff0000"]]})"_json;
    json arr = R"([])"_json;
    arr.push_back(table1);
    arr.push_back(table2);
    LogStatus("`" + arr.dump() + "`");
}

img

اس کے علاوہ آپ کو صفحہ بندی کے ساتھ ساتھ اوپر سے نیچے کی طرف سے ایک سے زیادہ ٹیبلز کو بھی دکھایا جا سکتا ہے۔

function main(){
    var tab1 = {
        type : "table",
        title : "表格1",
        cols : ["1", "2"],
        rows : []
    }
    var tab2 = {
        type : "table",
        title : "表格2",
        cols : ["1", "2", "3"],
        rows : []
    }
    var tab3 = {
        type : "table",
        title : "表格3",
        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": "表格1", 
        "cols": ["1", "2"], 
        "rows": []
    }
    tab2 = {
        "type": "table", 
        "title": "表格2", 
        "cols": ["1", "2", "3"], 
        "rows": []
    }
    tab3 = {
        "type": "table", 
        "title": "表格3", 
        "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": "表格1", 
        "cols": ["1", "2"], 
        "rows": []
    })"_json;
    json tab2 = R"({
        "type": "table", 
        "title": "表格2", 
        "cols": ["1", "2", "3"], 
        "rows": []
    })"_json;
    json tab3 = R"({
        "type": "table", 
        "title": "表格3", 
        "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() + "`");
}

اس کا اثر:

نوٹ: جب یہ حکمت عملی ریئل ڈسک پر چلتی ہے تو ، اگر ریئل ڈسک کے صفحے پر تاریخ کا جائزہ لیا جاتا ہے تو ، اسٹیٹ بار کو نیند میں ڈال دیا جاتا ہے اور اپ ڈیٹ کرنا بند ہوجاتا ہے۔ صرف لاگ ان کے پہلے صفحے پر اسٹیٹ بار کے اعداد و شمار کو تازہ دم کیا جاتا ہے۔ حالت میں آؤٹ پٹ کی حمایت کرتا ہےbase64انکوڈنگ شدہ تصاویر، جو اسٹیٹ بار میں دکھائے جانے والے فارم میں بھی آؤٹ پٹ کی حمایت کرتی ہیںbase64انکوڈنگ کے بعد کی تصویر۔ چونکہ انکوڈنگ کے بعد کی تصویر کی سٹرنگ ڈیٹا عام طور پر لمبا ہوتا ہے ، لہذا نمونہ کوڈ ظاہر نہیں کیا جاتا ہے۔

EnableLog()

EnableLog(IsEnable)آپ کے اکاؤنٹ میں آپ کے آرڈر کی معلومات کو کھولنے یا بند کرنے کے لئے لاگ ان ریکارڈ.isEnableبُل ٹائپ کے لیے۔IsEnableسیٹ کریںfalseاس کے علاوہ ، آپ کو اپنے آرڈر کی تاریخوں کو پرنٹ کرنے کی ضرورت نہیں ہے ، اور آپ کو اپنے ڈیٹا بیس میں نہیں لکھنا چاہئے۔

چارٹ ((...)

Chart(...)اپنی مرضی کے مطابق گراف ڈرائنگ فنکشن۔

Chart({...})آپ کے پاس کیا ہے؟JSONترتیب شدہہائی اسٹاککےHighcharts.StockChartپیرامیٹرز. اصل پیرامیٹرز سے ایک اضافہ__isStockصفات، اگر مخصوص ہو__isStock:falseاس کے علاوہ ، یہ ایک عام چارٹ کے طور پر دکھایا جاتا ہے۔

نوٹ: اگر مقرر کیا گیا ہے__isStockصفاتfalseاس کے علاوہ ، اس کے بارے میں مزید معلومات حاصل کریں:ہائی چارٹساس تصویر میں دکھایا گیا ہے:

Highcharts图表

اگر مقرر کیا گیا ہے__isStockصفاتtrueاس کے علاوہ ، اس کے بارے میں مزید معلومات حاصل کریں:ہائی اسٹاک(بغیر ترتیب کے)__isStockکے لئےtrueاس تصویر میں دکھایا گیا ہے:

Highstocks图表

واپس کال کریںadd(n, data)nکے لئےseriesانڈیکس (مثلاً 0)dataاعداد و شمار کو لکھنے کے لئے چارٹ) کو مخصوص انڈیکس میںseriesڈیٹا شامل کریں، کال کریںreset()اس کے علاوہ، آپ کو اس کے بارے میں مزید جاننے کی ضرورت ہے.resetایک عددی پیرامیٹر کے ساتھ، محفوظ شدہ خطوط کی تعداد کی وضاحت کی جا سکتی ہے۔

کال کر سکتے ہیںadd(n, data, i)iاس کے لئے اعداد و شمارseriesمیں انڈیکس) کو تبدیل کرنے کے لئےseriesاس کا مطلب یہ ہے کہ آپ کو اس کے بارے میں کیا پتہ ہے؟

یہ منفی ہو سکتا ہے، -1 آخری ہے، -2 دوسرے نمبر پر ہے، مثال کے طور پر، جب آپ لائن ڈرائنگ کرتے ہیں تو، لائن کے آخری نقطہ پر اعداد و شمار کو تبدیل کریں:

chart.add(0, [1574993606000, 13.5], -1)تبدیلیseries[0].dataآپ کے اعداد و شمار کے پہلے نقطۂٔٔٔٔٔٔٔٔٔٔٔٔٔٔٔٔٔ

ایک سے زیادہ چارٹ دکھانے کے لئے معاونت، ترتیب کے لئے صرف اس طرح کے طور پر صف کے پیرامیٹرز کو منتقل کرنے کی ضرورت ہے:var chart = Chart([{...}, {...}, {...}])مثال کے طور پر، چارٹ میں ایک اور دوseriesاور گراف 2 میں ایک ہےseriesچارٹ تین، ایک ہے.seriesتو،addجب 0 اور 1 سیریز آئی ڈی کی وضاحت کی جاتی ہے تو ، یہ تازہ کاری گراف 1 میں دو سیریز کے اعداد و شمار کی نمائندگی کرتا ہے ،addجب سیریل ID کو 2 پر مخصوص کیا جاتا ہے تو یہ گراف 2 کا پہلا نمبر ہوتا ہے۔seriesاعداد و شمار کی وضاحت کریں کہ سیریز 3 کا مطلب ہے گراف 3 کا پہلا حصہ.seriesاس کے بارے میں مزید جانیں:

HighStockshttp://api.highcharts.com/highstock

کثیر چارٹ میں کچھ متعلقہ خصوصیات کی ترتیبات دکھائی گئی ہیں:مثالیں

مثال کے طور پر گراف کی ترتیب کے لئے:

var cfgA = {
    extension: {
        // 不参于分组,单独显示,默认为分组 'group'
        layout: 'single', 
        // 指定高度,可以设置为字符串,"300px",设置数值300会自动替换为"300px"
        height: 300,      
        // 指定宽度占的单元值,总值为12
        col: 8            
    },
    title: {
        text: '盘口图表'
    },
    xAxis: {
        type: 'datetime'
    },
    series: [{
        name: '买一',
        data: []
    }, {
        name: '卖一',
        data: []
    }]
}

var cfgB = {
    title: {
        text: '差价图'
    },
    xAxis: {
        type: 'datetime'
    },
    series: [{
        name: '差价',
        type: 'column',
        data: []
    }]
}

var cfgC = {
    __isStock: false,
    title: {
        text: '饼图'
    },
    series: [{
        type: 'pie',
        name: 'one',
        // 指定初始数据后不需要用add函数更新,直接更改图表配置就可以更新序列
        data: [                    
            ["A", 25],
            ["B", 25],
            ["C", 25],
            ["D", 25]
        ]                
    }]
}

var cfgD = {
    extension: {
        layout: 'single',
        // 指定宽度占的单元值,总值为12
        col: 8,                    
        height: '300px'
    },
    title: {
        text: '盘口图表'
    },
    xAxis: {
        type: 'datetime'
    },
    series: [{
        name: '买一',
        data: []
    }, {
        name: '卖一',
        data: []
    }]
}

var cfgE = {
    __isStock: false,
    extension: {
        layout: 'single',
        col: 4,
        height: '300px'
    },
    title: {
        text: '饼图2'
    },
    series: [{
        type: 'pie',
        name: 'one',
        data: [
            ["A", 25],
            ["B", 25],
            ["C", 25],
            ["D", 25]
        ]
    }]
}
cfgA = {
    "extension" : {
        "layout" : "single", 
        "height" : 300,
        "col" : 8
    }, 
    "title" : {
        "text" : "盘口图表"
    },
    "xAxis" : {
        "type" : "datetime" 
    }, 
    "series" : [{
        "name" : "买一",
        "data" : []
    }, {
        "name" : "卖一", 
        "data" : []
    }]
}    

cfgB = {
    "title" : {
        "text" : "差价图"
    }, 
    "xAxis" : {
        "type" : "datetime"
    }, 
    "series" : [{
        "name" : "差价", 
        "type" : "column", 
        "data" : []
    }]
}    

cfgC = {
    "__isStock" : False,
    "title" : {
        "text" : "饼图"
    }, 
    "series" : [{
        "type" : "pie", 
        "name" : "one", 
        "data" : [
            ["A", 25],
            ["B", 25],
            ["C", 25],
            ["D", 25]
        ]
    }]
}    

cfgD = {
    "extension" : {
        "layout" : "single",
        "col" : 8,
        "height" : "300px"
    }, 
    "title" : {
        "text" : "盘口图表"
    }, 
    "series" : [{
        "name" : "买一", 
        "data" : []
    }, {
        "name" : "卖一",
        "data" : []
    }]
}    

cfgE = {
    "__isStock" : False, 
    "extension" : {
        "layout" : "single", 
        "col" : 4,
        "height" : "300px"
    }, 
    "title" : {
        "text" : "饼图2"
    },
    "series" : [{
        "type" : "pie",
        "name" : "one", 
        "data" : [
            ["A", 25], 
            ["B", 25], 
            ["C", 25], 
            ["D", 25]
        ]
    }]
}
json cfgA = R"({
    "extension" : {
        "layout" : "single", 
        "height" : 300,
        "col" : 8
    }, 
    "title" : {
        "text" : "盘口图表"
    },
    "xAxis" : {
        "type" : "datetime" 
    }, 
    "series" : [{
        "name" : "买一",
        "data" : []
    }, {
        "name" : "卖一", 
        "data" : []
    }]
})"_json;    

json cfgB = R"({
    "title" : {
        "text" : "差价图"
    }, 
    "xAxis" : {
        "type" : "datetime"
    }, 
    "series" : [{
        "name" : "差价", 
        "type" : "column", 
        "data" : []
    }]
})"_json;    

json cfgC = R"({
    "__isStock" : false,
    "title" : {
        "text" : "饼图"
    }, 
    "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" : "盘口图表"
    }, 
    "series" : [{
        "name" : "买一", 
        "data" : []
    }, {
        "name" : "卖一",
        "data" : []
    }]
})"_json;    

json cfgE = R"({
    "__isStock" : false, 
    "extension" : {
        "layout" : "single", 
        "col" : 4,
        "height" : "300px"
    }, 
    "title" : {
        "text" : "饼图2"
    },
    "series" : [{
        "type" : "pie",
        "name" : "one", 
        "data" : [
            ["A", 25], 
            ["B", 25], 
            ["C", 25], 
            ["D", 25]
        ]
    }]
})"_json;
  • cfgA.extension.layoutصفات

    اگر اس پراپرٹی کو "single" کے طور پر سیٹ کیا گیا ہے تو چارٹ اوورلیپ نہیں ہوگا (کوئی صفحہ بندی والے ٹیگ کے طور پر نہیں دکھایا جائے گا) اور علیحدہ علیحدہ دکھایا جائے گا (فلیٹ ڈسپلے) ۔

  • cfgA.extension.heightصفات

    یہ خصوصیت چارٹ کی اونچائی قائم کرنے کے لئے استعمال کیا جاتا ہے، جس کی قدر عددی قسم کے طور پر یا "300px" کے طور پر مقرر کیا جا سکتا ہے.

  • cfgA.extension.colصفات

    یہ خصوصیت چارٹ کی چوڑائی مقرر کرنے کے لئے استعمال کی جاتی ہے، جس میں صفحہ کی چوڑائی 12 اکائیوں میں تقسیم کی جاتی ہے، اور 8 کو مقرر کیا جاتا ہے تاکہ چارٹ 8 اکائیوں کی چوڑائی پر قبضہ کرے۔

    اس کے علاوہ، ہم نے اپنے صارفین کے لئے ایک بہت اچھا مثال پیش کی ہے.

    مندرجہ بالا مثال میں گراف کی ترتیب کے اعتراضات کے اثرات دکھائے گئے ہیں:

  • اعداد و شمار کو اپ ڈیٹ کرنے کے لئے چارٹ کی ترتیب کے اعتراض پر ڈیٹا، براہ راست چارٹ کی ترتیب کو تبدیل کریں اور پھر چارٹ کو اپ ڈیٹ کریں:

    مثال کے طور پر:JavaScriptمثال کے طور پر جزوی کوڈ پیراگرافمکمل نمونہ):

    cfgC.series[0].data[0][1] = Math.random() * 100
    cfgE.series[0].data[0][1] = Math.random() * 100
    // update实际上等于重置了图表的配置
    chart.update([cfgA, cfgB, cfgC, cfgD, cfgE])
    

    منظورaddاس کے علاوہ، آپ کو اپنے ڈیٹا کو اپ ڈیٹ کرنے کے طریقوں کا استعمال کرنے کی ضرورت ہے، مثال کے طور پر، پیکیج میں ایک آئٹم شامل کرنے کے لئے.JavaScriptمثال کے طور پر جزوی کوڈ پیراگرافمکمل نمونہ):

    // 为饼图增加一个数据点,add只能更新通过add方式添加的数据点,内置的数据点无法后期更新
    chart.add(3, {
        name: "ZZ",
        y: Math.random() * 100
    })
    
  • ضمنی استعمالChartفنکشن کی مثالیں

    ایک سادہ گرافک مثال:

    // 这个chart在JavaScript语言中是对象,在使用Chart函数之前我们需要声明一个配置图表的对象变量chart
    var chart = {                                           
        // 该字段标记图表是否为一般图表,有兴趣的可以改成false运行看看
        __isStock: true,                                    
        // 缩放工具
        tooltip: {xDateFormat: '%Y-%m-%d %H:%M:%S, %A'},    
        // 标题
        title : { text : '差价分析图'},                       
        // 选择范围
        rangeSelector: {                                    
            buttons:  [{type: 'hour',count: 1, text: '1h'}, {typ

مزید

qq89520ایک مسئلہ یہ ہے کہ C_function ہمیشہ دوبارہ کوشش کرتا ہے یا صرف ایک بار

ہائے ہائے_C ((function, args...) کیا یہ ڈیفالٹ 3s ہے؟ کیا ڈیفالٹ کو تبدیل کرنے کے لئے براہ راست _CDelay ((1000) کو _C ((function, args...) سے پہلے ڈالنا ممکن ہے؟ کیا ایک بار سیٹ کرنا ممکن ہے؟

کھانے والاکلسٹر: اگر آپ ایک ہزار روبوٹ بیک وقت تخلیق کرتے ہیں اور آپ کو کوئی دباؤ نہیں ہے، تو آپ کئی منتظمین بنا سکتے ہیں جو آپ کے کام کو تقسیم کرتے ہیں۔ کیا کلکٹر بنانے کے لئے کوڈ کی مثالیں ہیں؟ کس طرح متعدد منتظمین کو کام کو تقسیم کرنے کے لئے تعمیر کرنے کے لئے؟

واںگی1log ((talib.help (('MACD')); صرف js میں استعمال کیا جا سکتا ہے، python میں کوئی talib.help صفات نہیں ہیں...

cjz140_C ((function, args...) اور Sleep کے درمیان کیا فرق ہے؟ مجھے لگتا ہے کہ اس کا مطلب یہ ہے کہ دوبارہ کوشش کریں

3263243ySetErrorFilter کے بعد ErrorFilter کو کیسے خالی کریں؟ غلطی کی معلومات کو فلٹر کیے بغیر۔

qq47898077اگر آپ تیسری پارٹی کی لائبریری استعمال کرنا چاہتے ہیں تو کیا آپ کے پاس کوئی حل ہے؟

qq47898077اگر آپ ایکسچینج آبجیکٹ کی نئی کلاس کی تعریف کرنا چاہتے ہیں تو ، والدین کو کیا بھرنا چاہئے؟

ایتھنووکیا مقامی ڈیبگنگ ٹولز موجود ہیں؟

پینگلیہینگکیا یہ exange.IO (("status") ہے؟

پینگلیہینگاگر آپ کے پاس کوئی آپشن نہیں ہے تو ، آپ اسے کیسے بیچ سکتے ہیں؟

پینگلیہینگاگر آپ کے پاس کوئی آپشن نہیں ہے تو ، آپ اسے کیسے بیچ سکتے ہیں؟

پینگلیہینگمیں نے اس کے بارے میں کچھ نہیں سیکھا ہے.

پینگلیہینگمیں نے اس کے بارے میں کچھ نہیں سیکھا ہے.

Don.حجم کی اوسط لکیر کو کیسے لکھا جائے؟

زٹورتھاگر آپ نے ایکسپریس پر 1000 خریدے ہیں تو آپ کو کیا ملے گا؟

ننگ ڈکیہ نیا فونٹ اچھا لگ رہا ہے۔

ہپپوBitmex کے ٹیسٹنگ نیٹ ورک ((testnet.bitmex.com) کے لئے بھی API انٹرفیس موجود ہے ، لیکن اس وقت تبادلے صرف Bitmex ہوم سٹیشن کا انتخاب کرسکتے ہیں ، API دستاویزات کا پتہ https://testnet.bitmex.com/app/apiOverview ہے کیا آپ کی مدد کی ضرورت ہے؟

چججنvar ret1 = exchanges[0].IO (("api"، "future_estimated_price"، "symbol=btc_usd"); Log (('ok مستقبل کی پیش گوئی کی ترسیل کی قیمت، ret1) ؛ https://dn-filebox.qbox.me/d1ed268c1e75753c5d289447d279aa9d81e41b5f.png اگر آپ کو یہ معلوم نہیں ہے کہ آپ کو کیا کرنا چاہئے ، تو آپ کو یہ معلوم ہونا چاہئے کہ آپ کو کیا کرنا چاہئے۔

ایلن فراسٹ لائنکیا آپ واقعی ٹکر اور ٹکر کے درمیان فرق جاننا چاہتے ہیں؟ حال ہی میں ، ایک ہی وقت میں ، ٹکر کی حکمت عملی کو دوبارہ لکھنے کے لئے ، دونوں میں سے کچھ بھی ظاہر ہوتا ہے ، لیکن ایسا لگتا ہے کہ پہلے API میں اس کا ذکر نہیں کیا گیا ہے۔

نظارےہیلو، ایک پائیتھون ڈویلپر کے طور پر، آپ کو کیا لگتا ہے کہ آپ کی اے پی آئی دستاویزات کیا لکھ رہے ہیں؟ کچھ فیلڈ فنکشن انٹرفیس عجیب نظر آتے ہیں، کیا آپ ایک دستاویز لکھ سکتے ہیں جیسے کہ githubpage اور readdocs؟

ایلن فراسٹ لائنGetAccount: [EAPI:Rate limit exceeded] کیا آپ پوچھنا چاہتے ہیں کہ اس کا حل کیا ہے؟ اور کیا میرے پاس کوئی ویکیپیڈیا گروپ ہے؟ شکریہ

zhjx2314اسٹوک آر ایس آئی کی حمایت نہیں کرتا ، کیا اسے جلد شامل کیا جاسکتا ہے؟

یھفگکیا آپ کو معلوم ہے کہ آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ پر آپ کی ویب سائٹ

یھفگآپ python کا کون سا ورژن استعمال کرتے ہیں؟

بظاہرGetFee کی تشریح یہ ہونی چاہئے کہ ایک فی ساختہ ٹائپ واپس آئے ، ایک کم ساختہ لفظ۔

زکواپکیا آپ جے ایس کا استعمال کرتے ہوئے طالب کو کال کرنے کا طریقہ جانتے ہیں؟

یھفگpython دستاویزات کی تلاش

wmjbs123حکمت عملی کے ایڈیٹر کے لئے کوڈ کے پس منظر کو سیاہ میں تبدیل کر سکتے ہیں؟ سفید آنکھوں، رات کو کوڈ لکھنے، قریبی نقطہ نظر کے لئے آسان

Don.روبوٹ ویکی میسج میں خلاصہ کیسے ترتیب دیا جائے؟

نمبر: پاگلکیا آرڈر ڈھانچے میں ایک برابر قیمت والے فیلڈ کو شامل کیا جاسکتا ہے؟

چھوٹی چھوٹی باتیںGetOrders: تمام غیر مکمل شدہ آرڈرز حاصل کریں، ایک آرڈر صف کا ڈھانچہ واپس کریں، چین میں بٹ کوائن ٹریڈنگ ETH، صرف حالیہ 10 items واپس کریں، کیا یہاں چین میں بٹ کوائن ETH کے تمام غیر مکمل شدہ آرڈرز کو واپس کرنے کا فنکشن ہے، جس کا مطلب یہ ہے کہ دوسرے پلیٹ فارمز GetOrders کے ساتھ سب کچھ واپس کرسکتے ہیں، صرف یہ گھوٹالہ چینی بٹ کوائن 10 items واپس کرتا ہے،

یھفگاور یہ ریاضی کے افعال ہیں جن کے لئے اعداد و شمار کے امکانات کا استعمال کیا جاتا ہے، اور یہ کہاں سے آتا ہے؟

جے بینگ.Cross ((x, y) کی واپسی کی قدر کیا ہے؟

میری ماں کا نامیہ لاگ ری سیٹ تمام نوشتہ جات کو خالی کرتا ہے اور ایک عددی پیرامیٹر کے ساتھ محفوظ کردہ نوشتہ جات کی وضاحت کرسکتا ہے کیا آپ کو معلوم ہے کہ یہ کیسے ہوتا ہے؟

ایڈورڈ گیوکیا آپ کو لگتا ہے کہ talib میں CORRE فنکشن کو منتقل نہیں کیا گیا تھا یا اسے کھو دیا گیا تھا؟

فقیہ پہاڑکیا آپ کو معلوم ہے کہ آپ کے اکاؤنٹ میں کون سے اشارے ہیں؟

چھوٹاپڑھنے کے لئے k لائن وقت کس طرح میں ترجمہ کیا جاتا ہے موجودہ وقت

چھوٹااعداد کو صفوں سے ہٹانے کا طریقہ، میں records.remove ((records[0]) استعمال کر رہا ہوں

سانپعام طور پر ، آپ کو گھنٹہ کی لائن ملتی ہے۔ آپ دن کی لائن کے ATR کو کیسے کال کرسکتے ہیں؟

سانپعام طور پر ، آپ کو گھنٹہ کی لائن ملتی ہے۔ آپ دن کی لائن کے ATR کو کیسے کال کرسکتے ہیں؟

57278863سیکھیں کہ کس طرح روایتی مستقبل کی قیمتوں کو حاصل کرنے کے لئے اور نیچے کی سفارشات، افسوس، جڑیں پتلی ہیں.

کرینہم نے ایک بار پھر اس پر زور دیا ہے کہ ہم اس کے بارے میں کیا سوچتے ہیں؟

چھوٹاصفر، کیا آپ ایک مثال لکھ سکتے ہیں روایتی فیوچر ٹریڈنگ کے بارے میں؟

چھوٹاجب ایک ہی وقت میں متعدد خالی سیٹیں تھیں۔ کس طرح ہولڈنگ اسٹیٹ پرنٹ کریں ، میرا کس طرح پرنٹ کرنا ہے [object object][object object] ، کس طرح ملٹی سیٹ اور خالی سیٹ ہولڈنگ اسٹیٹ حاصل کریں ، اور گیٹ ٹکر ()) ، اس ہفتے ، اگلے ہفتے ، اور سہ ماہی کو کس طرح حاصل کریں اس ہفتے کی قیمت ، اس ہفتے ، اگلے ہفتے اور سہ ماہی میں میں نے لکھا ہے۔

چججنکیا فیوچر ایکسچینج GetTicker () کے ساتھ تجارت حاصل کرسکتے ہیں؟ کیا اس قسم کے معاہدے کی واپسی ہوتی ہے ((اس ہفتے ، اگلے ہفتے...) ؟

فروختاسٹاک آر ایس آئی میں کیا اضافہ کیا جا سکتا ہے؟

مومیکسCancelOrder ((orderId) آرڈر نمبر کے مطابق آرڈر منسوخ کریں ، true یا false واپس کریں ، true = سیلز کو کامیابی کے ساتھ منسوخ کیا گیا ، ٹھیک ہے؟

مومیکس_G(K, V) محفوظ کردہ گلوبل لغت کی فہرست کیا اس طریقہ کار کے ذریعہ محفوظ کردہ گلوبل متغیرات کو مختلف پالیسیوں کے مابین ڈیٹا شیئر کرنے کے لئے استعمال کیا جاسکتا ہے؟

فلفی 3Dمقبولیت میں اضافہ

صفرآپ لاگپروفیٹ ری سیٹ کے ذریعے انکم لاگ کو دوبارہ ترتیب دے سکتے ہیں۔ انکم چارٹ میں سابقہ تاریخ ختم ہو جائے گی۔

xcyکیا آپ براہ راست ای اے کاپی کر سکتے ہیں؟

شیرون مینیہ پلیٹ فارم بہت اچھا لگتا ہے، بہت اچھا، زیادہ سے زیادہ لوگوں کے ساتھ بات چیت.

چھوٹایہ کونسی زبان ہے؟ کیا اس میں سیکھنے کے لیے کوئی مواد موجود ہے؟

jxhbtcڈیٹا کی خرابی ایک ہفتہ سے روبوٹ سے رابطہ نہیں ہو رہا ہے

ڈھیہکیا ٹی اے صرف اختتامی قیمتوں کا حساب لگانے کے لئے ہے؟

بٹکروبوٹہیلو، دنیا

چھوٹا سا خواب_C فنکشن بغیر سوچے سمجھے دوبارہ کوشش کرے گا جب تک کہ کامیابی حاصل نہ ہو جائے۔

چھوٹا سا خوابpython کے طالب لائبریری کو انسٹال کرنے کی ضرورت ہے۔https://www.botvs.com/bbs-topic/669 اس پوسٹ کو دیکھ سکتے ہیں۔

چھوٹا سا خوابسوتے میں پروگرام کچھ نہیں کرتا ہے اور انتظار کرتا ہے جب تک کہ پیرامیٹر سیٹ نہ ہو جائے۔ ملی سیکنڈ کی تعداد ، _C ایک بار پھر پیرامیٹرز کو کال کرنے کے لئے ایک فنکشن ہے۔

چھوٹا سا خواببغیر وراثت کے ، جے ایس براہ راست آبجیکٹ میں لپیٹ جاتا ہے {name: "نیا آبجیکٹ"، old_exchange: exchange[0،...... }

چھوٹا سا خوابمقامی ایڈیٹر ریموٹ ہم وقت سازی پلگ ان، بنیادی طور پر مقامی ایڈیٹر ریموٹ ڈیبگنگ ہے۔

چھوٹا سا خوابآپ کو QQ گروپ میں آ سکتے ہیں، اور یہ بات چیت کرنے کے لئے آسان ہے.

چھوٹا سا خوابAPI دستاویزات میں گرے رنگ کا مطلب یہ ہے کہ اس فنکشن کی بہت زیادہ وضاحت نہیں کی گئی ہے ، یہ گرے رنگ کی نمائندگی کرتا ہے ، نیلے رنگ کی نمائندگی کرتا ہے ، اس کی مزید وضاحت ہوتی ہے ، اور بس۔

چھوٹا سا خوابES6 فی الحال معاونت نہیں کرتا، ^^

چھوٹا سا خوابکیا آپ گروپ QQ میں جا سکتے ہیں؟ میں نے سوال بیان کیا اور میں نے جواب دیا ^^

چھوٹا سا خواباس کا مطلب یہ ہے کہ آپ کے پاس صرف ایک خرابی ہے اور آپ کو اس کے لئے ادائیگی کرنے کی ضرورت نہیں ہے۔

زٹورتھمثال کے طور پر ، اگر آپ کے پاس ایک ہی کرنسی ہے تو ، آپ کو کیا ملتا ہے؟

چھوٹا سا خواباس کے علاوہ ، میں نے ایک اور آرڈر نمبر واپس کیا ، جس میں میں نے کہا تھا کہ میں کس ایکسچینج پر ہوں ، اور میں نے ایک آرڈر نمبر واپس کیا ہے۔

صفرٹرانزیکشنز کی جوڑی کو تبدیل کرنے کی حمایت کی جاتی ہے، تازہ ترین میزبان کو ڈاؤن لوڈ کرنے کی ضرورت ہوتی ہے۔ Bter/Poloniex کی حمایت کریں API کی تفصیلات دستاویزات ٹرانزیکشن فنکشن ٹب ذیل میں تفصیلات ((بلاؤزر کیشے کو صاف کرنے کے بعد تازہ کاری کریں اگر آپ نہیں دیکھ سکتے ہیں)

چھوٹا سا خوابQQ میں ہوں، میں آپ کی مدد کروں گا. 359706687

پیشہ ورانہ والدینمیں نے اپنے میزبان کا آئی پی سیٹ کیا ہے؟

چھوٹا سا خوابیہ ایک بنیادی لنک ہے جو قائم نہیں کیا گیا ہے۔ سرور نے جواب نہیں دیا ہے۔ کیا API KEY کی درخواست کرتے وقت IP ایڈریس سیٹ کرنا ہے؟

پیشہ ورانہ والدینیہ شرمناک ہے ۔ ۔ ۔ میں اوکے چل سکتا ہے کہ حکمت عملی کو تبدیل کرنے کے لئے بٹ دور میں ناکام رہے ، GetAccount حاصل نہیں کر سکتے ہیں GetAccount: پوسٹ http://api.btc38.com/v1/getMyBalance.php: read tcp 192.168.0.227:58596->211.149.148.144:80: wsarecv: A connection attempt failed because the connected party did not properly respond after a period of time ، or established connection failed because connected host has failed to respond 2017-05-23 21:08:24 بِٹ ایج غلطی گیٹ اکاونٹ: ٹائم آؤٹ 2017-05-23 21:08:02 بِٹ ایج غلطی گیٹ اکاونٹ: ٹائم آؤٹ 2017-05-23 21:07:40 بٹ دورہ غلطی گیٹ اکاؤنٹ: ٹائم آؤٹ 2017-05-23 21:07:20 دوبارہ شروع کریں کیا یہ آئی پی وائٹ لسٹ کا مسئلہ ہے؟

چھوٹا سا خوابایکسپورٹ کے سرورز نے جواب نہیں دیا اور تین بار ہاتھ ملانے کے بعد بھی ٹی سی پی پروٹوکول قائم نہیں ہوا۔

پیشہ ورانہ والدینA connection attempt failed because the connected party did not properly respond after a period of time. ایک کنکشن کی کوشش ناکام ہوگئی کیونکہ منسلک پارٹی نے ایک عرصے کے بعد مناسب طریقے سے جواب نہیں دیا، اور اس کے نتیجے میں ، ایک بار جب آپ نے اس کی کوشش کی تو ، آپ کو ایک غلطی کا سامنا کرنا پڑا۔

چھوٹا سا خوابہیلو! یہ تبادلہ.IO ((api, ApiName, Args) کے بارے میں ہے، اس فنکشن کی حمایت نہیں کی جاتی ہے، ملاحظہ کریں https://www.botvs.com/bbs-topic/812

پیشہ ورانہ والدینایک کنکشن کی کوشش ناکام ہوگئی کیونکہ منسلک پارٹی نے ایک مدت کے بعد مناسب طریقے سے جواب نہیں دیا،

پیشہ ورانہ والدینکیا بٹ ایج کی حمایت نہیں ہے؟

چھوٹا سا خوابhttps://dn-filebox.qbox.me/a709b30c6cc0a3565234b9e0c99b073f7ba8b454.png میں نے اس کے بارے میں سوچا۔

ننگ ڈکمثال کے طور پر، میں پولونیکس کے ساتھ تمام کرنسیوں کا تبادلہ کرنا چاہتا ہوں، لیکن BOTvs صرف چند کرنسیوں کی حمایت کرتا ہے، اور exchange.IO پی نیٹ ورک کی حمایت نہیں کرتا ہے.

چھوٹا سا خوابآپ اس کو exchange.IO پر کال کر سکتے ہیں۔

ننگ ڈککیا آپ کے اکاؤنٹ کی توثیق کے لیے API کی ضرورت ہے؟

چھوٹا سا خواباگر اکاؤنٹ کی توثیق کی ضرورت نہیں ہے تو API httpQuery کا استعمال کرسکتے ہیں (بٹو وی ایس دستاویزات دیکھیں) ، اور اصل لین دین API تک رسائی کی ضرورت ہے۔

چھوٹا سا خوابآپ HttpQuery API کے پیرامیٹرز منتقل کرسکتے ہیں: https://www.okcoin.com/api/v1/future_estimated_price.do؟symbol=btc_usd، یہ کام کرتا ہے۔ اکاؤنٹس کی توثیق کی ضرورت نہیں ہے کہ معاملات کی قسم کے لئے تبادلہ API پلیٹ فارم پر براہ راست HttpQuery فنکشن کا استعمال کرتے ہوئے، اکاؤنٹس کے ساتھ منسلک صرف IO API (IO ان معاملات کی API کی حمایت نہیں کرتا ہے کہ تصدیق کی ضرورت نہیں ہے) کا استعمال کرتے ہوئے. پوسٹ: https://www.botvs.com/bbs-topic/850

نظارےآپ کا شکریہ، اور امید ہے کہ آپ کے پاس بہترین API دستاویزات ہیں۔

چھوٹا سا خوابکیا آپ کو معلوم ہے کہ یہ ای پی آئی کہاں دیکھی گئی؟

چھوٹا سا خوابhttps://dn-filebox.qbox.me/fe1a6f5563ed43a5357f858ecf8a50239619228e.png API دستاویزات جاوا اسکرپٹ زبان میں بیان کی گئی ہیں، python کے ورژن میں بیان کیا گیا ہے، جو کہ پیٹنٹ کمیونٹی پیٹنٹ کے صفحے کے سب سے اوپر پوسٹ کیا گیا ہے۔

صفرہیلو، مشورہ کا شکریہ، API دستاویزات کی تعمیر نو کی جا رہی ہے.

چھوٹا سا خوابہیلو - یہ ظاہر کرتا ہے کہ رسائی کی تعداد حد سے زیادہ ہے۔ https://dn-filebox.qbox.me/a09498920d04cac62624b7438a058d2098d8fb00.png کیا حکمت عملی میں سوتے (1000) فنکشن کا استعمال کیا گیا ہے؟ ، یہ 1000 پروگراموں کو ہر دور میں ایک سیکنڈ کے لئے روکنے کے لئے ہے ، جو خود بخود ترتیب دیا جاسکتا ہے ، مقصد پروگراموں کو کنٹرول کرنا ہے API تک رسائی کی تعدد ، کیونکہ کچھ تبادلے نے زیادہ سے زیادہ رسائی کی حد مقرر کی ہے ، ایک خاص وقت سے زیادہ رسائی سے انکار کیا جائے گا ، جس سے آئی پی ایڈریس کو بلاک کردیا جائے گا۔

چھوٹا سا خوابhttps://dn-filebox.qbox.me/c29ab7fc279e1b758355f137907cf52dc8257df6.png میں نے ذاتی طور پر لکھا ہے کہ اسٹاک آر ایس آئی کے اشارے کے مقابلے میں جو کچھ بھی ٹھیک ہے ، اس میں اتفاق ہے کہ رفتار تھوڑی سست ہے اور اس کے لئے اصلاح کی ضرورت ہے ، یہ عارضی طور پر دستیاب ہے۔

صفرآپ اپنے آپ کو منتخب کر سکتے ہیں کہ کیا botvs کے ذریعہ فراہم کردہ سرور پر دوبارہ جانچ پڑتال کی جائے گی یا اپنے میزبان کے سرور پر دوبارہ جانچ پڑتال کی جائے گی ، ورژن 2.7.5 ہے۔

چھوٹا سا خواباس کے بعد آپ نے اس کا استعمال کیا ہے۔

چھوٹا سا خواباب آپ اپنے پس منظر کے انداز کو اپنی مرضی کے مطابق کرسکتے ہیں۔

چھوٹا سا خوابpython دستاویزات لکھ رہے ہیں۔

چھوٹا سا خوابطالبان کی مدد کے لئے دستیاب ہے۔

hzzgood48 https://www.botvs.com/bbs-topic/276

چھوٹا سا خواباس کی مثال حکمت عملی اسکوائر میں دکھائی دیتی ہے۔ https://www.botvs.com/strategy/15098

صفرآرڈر کی اوسط قیمت کی خصوصیت تک رسائی حاصل کریں، جو کہ تبادلے کی حمایت کرتا ہے، اور جو تبادلے کی حمایت نہیں کرتا وہ ہمیشہ 0 کی خصوصیت رکھتا ہے

یھفگکیا آپ کو معلوم ہے کہ یہ کون سی سائٹ ہے؟

صفراگر mathjs مطمئن نہیں ہے تو ، یہ صرف تیسری پارٹی کے لائبریریوں کو نقل کرنے اور درآمد کرنے کی پالیسیوں کو تلاش کرنے کے لئے کافی نہیں ہے۔ کمپائلنگ کی رفتار کے ل the ، نظام نے صرف چند لائبریریوں کو بنایا ہے۔

چھوٹا سا خوابمیں نے اپنے دوستوں کو بتایا کہ میں ان سے ملنا چاہتا ہوں ، لیکن میں نے ان سے پوچھا کہ کیا وہ مجھے پسند کرتے ہیں؟ میں نے کہا کہ میں ان سے ملنا چاہتا ہوں۔

جے بینگشکریہ

چھوٹا سا خوابکیا آپ گروپ میں ہیں؟ آپ کو تبصرہ ورژن میں دیکھ سکتے ہیں ڈیجیٹل کرنسی کی تجارت کی کلاس کی کوڈ تجزیہ۔ اس میں فنکشن کے تبصرے ہیں۔

صفرآپ تازہ ترین کو حذف نہیں کر سکتے، صرف تازہ ترین کو برقرار رکھ سکتے ہیں۔ پہلے کے تمام پرانے کو حذف کریں۔

کرینپوزیشن [i] کے ساتھ ہر ہولڈنگ حاصل کرنے کے لئے، پوزیشن ایک صف ہے

ننگ ڈکexchange.GetRecords ((PERIOD_D1) ؛

کرینمیرا روایتی فیوچر ہمیشہ یہ ہوتا ہے کہ "GetAccount: not login" "پاس ورڈ غلط نہیں ہے، لاگ ان نہیں ہو سکتا"

صفرپہلے سے طے شدہ ہفتہ ہے، مخصوص SetContractType حاصل کرنے کے لئے پہلے کی ضرورت ہے.

صفرآپ نے ابھی دیکھا ہے کہ یہ درست ہے اور یہ تبادلے کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی کی واپسی ہے.

مومیکس3q

صفرنہیں، یہ الگ ہے

شوان شوانیقینا نہیں، یہ MT4 کے لئے خصوصی ہے.

صفرجاوا اسکرپٹ کے بارے میں معلومات انٹرنیٹ پر ہر جگہ ہیں

فروختکیا آپ کا مسئلہ حل ہو گیا؟

صفرزیادہ تر وقت، ان پٹ اعداد و شمار براہ راست ریکارڈ یا خالص قیمت کے طور پر ہو سکتا ہے.