在使用 _N 函数时的一些发现(API 文档 位置如图:)
_N 就是用来处理浮点数 小数位数的。
可以先看代码例子:
function main(){
var pi = 3.1415926535897; // 声明一个变量 储存 圆周率, 小数位数13位。
Log(_N(pi, 4) * 100); // 当我们使用 _N 函数 保留4位小数后 再 乘以 100 会是什么结果呢?
}
当我们使用 _N 函数 保留4位小数后 再 乘以 100 会是什么结果呢?
我开始是认为 _N(pi, 4) 返回的是 3.1415 , 然后乘以 100 等于 314.15
实际运行结果:
如果想显示为 314.15 ,只能这样写:
function main(){
var pi = 3.1415926535897;
Log(_N(pi * 100, 2));
}
测试代码:
function main(){
var pi = "3.1415"; // 传入 字符串 3.1415 , 很多时候解析出来的数据没有检查类型,可能会误传入字符串。
_N(pi, 2);
}
我真踩过这个坑,解析出的数据是个字符串,然后看以下报错就蒙圈了。
DEBUG 好一会儿才找到原因,所以还是动手可以掌握更多。
经测试,在safari 游览器下, 机器人运行页面中,如果 一次 Log 输出的 内容过多,可能会导致整条 Log 信息 隐藏,显示 空白。测试 chrome 游览器 可以 正常显示。 特此记录。
状态栏刷新,也就是 每次调用 API 函数 LogStatus 函数刷新显示内容时,如果当前日志页 不是在 第一页时,会触发查询机制,此时机器人页面状态栏就不会再显示更新。当日志页选择为第一页时 恢复 状态栏 刷新。所以有时当机器人正在运行,查看机器人日志后,发现状态栏不动了,其实并不是机器人卡了,是这个机制引起的。
例如,这个用户的报错信息:
这2种报错,原因都是使用了未定义的变量
原因是直接复制代码到策略里,有些 策略的参数是在策略的界面参数上设置的。 策略界面参数上设置一个参数变量就相当于在策略代码中声明了一个全局变量 如果仅仅是复制代码 可能代码里面用到的**策略界面的变量(参数)**就会处于未定义状态 所以就报错了,如果想测试别人的策略,最好是复制整个策略。
点击 “点击复制并在线回测” 按钮, 就是完整的复制 整个策略了。
该类型错误 可能是由于没有设置 托管者 IP地址 为 交易所 API KEY IP地址白名单 导致的。 添加IP地址为白名单,可以解决该问题。
期货浮动盈亏,又称为逐笔浮盈,比如你2480买进1手螺纹钢,不管经历了多少个交易日,当前价格为2520,则浮动盈亏为400元,期货浮动盈亏指当前的持仓相对于开仓价的盈亏; 期货盯市盈亏,又叫盯市浮盈,比如你持有1手螺纹钢多单,上一个交易日的结算价为2500,当前的价格为2520,则盯市盈亏为200元,盯市盈亏代表你当前的仓位相对上一个交易日结算价的盈亏情况 。
数值 和 未定义的 变量相加 会输出 Nan, 对象和未定义的对象相加 会输出 undefined.
function main(){
var a = 11// {aa : "aa", bb : 12}
var b = {}
Log(a + b.c)
}
诡异的 报错: TypeError: cannot read property ‘Sleep’ of undefined at main (FILE:103)
var id2 = e.Sell(ticker.Sell + ticker.Sell * 0.05, 0.1)
var order2 = e.GetOrder(id2)
Log("order2:", order).
Sleep(2000) # 103 行, 这里报错。
看了半天 百思不得其解。 最终仔细阅读下发现 Log(“order2:”, order). 这最后碰上去个点 “.” 所以这里记录下 如发些如此诡异的问题, 想想这个场景。
随便怎么重启,就是没有日志,像定格了一样。
原因:是老的DB3文件达到了25个G 把国外云服务器占爆了
>_< 遇到此类问题 注意检查 托管者所在 电脑 或者服务器 硬盘 和系统状态。
阿龙·马斯克 大赞!