把以下语句放到程序前面
账号:1000,linethick0;
zhh:=strtonum(taccount(1));
if zhh<>账号 then
begin
drawtextex(1,1,500,500,'授权账号不正确,程序无法使用');
exit;
end
账号如果断了,再自动连接账户,程序还是显示“授权账号不正确,程序无法使用”,资金曲线等都不显示,但缩放一下k线就好了。重复性很好,你们测试一下。
你放到没有实时行情的品种上,程序只是在第一次加载时刷一遍。你退出账户等操作他不会重新刷新的。
你现在放到夜盘品种上去看,有实时行情的k线图下这段代码就会实时刷新
已经确认,1.在选择“只刷新最后一根k线”时,如果在k线中账户中断,程序会立即停止,如果在k线中恢复连接,则程序不会运行,要等到k线结束才恢复。
2.如果去掉“只刷新最后一根k线”时,不会出现上面问题,立即反应。
这个可能和以前“todaybar”相似的问题。
这个问题很重要,希望仔细测试一下。
[此贴子已经被作者于2014/8/28 9:25:54编辑过]
这个就是仅刷最后一根k的原理,在历史 K线上不再重新执行本公式,你之前的k线满足条件的话即使你账户断开连接也不会改变历史信号。
这个就是和逐k模式的一个区别,逐k下是实时在每一根k线上进行刷新。
没有明白你的意思,是不是这种现象就是程序设计的本意?那么如果我是30分钟周期的k线,中间账户断了,又连接上了,而又出现了即时信号。那么我在这根k线就不交易了,非要等到下根k线才行?
既然有“只刷新最后一根k线”的功能,那么相应的其他改变就要跟上,或者在说明中明显的地方标出来哪些不适用。
交易的,这个不刷指的都是历史条件信号。
借用你的代码你用buy信号在图上看下效果,你盘中才登录账号的话最后一根k的开仓信号是及时出现的,但是历史的信号要等新k生成时候才回去刷新。
if zhh=账号 then
begin
drawtextex(1,1,500,500,'授权账号正确,程序使用');
buy(1,1,market);
end
我们两个说的有点岔了。我的意思是说。
1.账户断了,我加载的程序就立即停止了运行,就是账户立即连接上了,我的程序也要等k线结束是才恢复运行。
2.如果程序在停止运行的时候,出现了信号(如果程序正常运行),就会带来问题。周期小问题不大,周期大的话就是灾难了(尤其是k线中止损)。
这样是不对的。你这样写肯定交易,而我是交易账户不对就退出程序了,只有通过了这个检测才能执行后面的交易。
if zhh=账号 then begin drawtextex(1,1,500,500,'授权账号正确,程序使用'); buy(1,1,market); end |
我所谓得“停止运行”是只程序不执行后面的部分了。
[此贴子已经被作者于2014/8/28 10:50:53编辑过]
if zhh<>账号 then
begin
drawtextex(1,1,500,500,'授权账号不正确正确,程序使用');
exit;
end
buy(1,1,market);
这样的,先判定账户是否登录如果没登陆那么exit终止后面的代码。你可以加载了看对于最新的一根k的开多信号实时变化是没有问题的。