以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  后台交易中tenterbars得不到值?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=1822)

--  作者:oldwain
--  发布时间:2010/6/10 14:13:42
--  [求助]求高手! 求高手!编写一个黄金、白银日内短线交易指令
公式里,加入了调试语句:

debugfile(\'D:\\turtle.log\', \'symble: %s\', stkname());

debugfile(\'D:\\turtle.log\', \'enterbars: %.2f\', tenterbars(0));

日志文件中的内容:

。。。。

2010-06-10 14:03:04.687 enterbars: 4294965284.00

2010-06-10 14:03:04.703 enterbars: -1.00

2010-06-10 14:03:04.703 enterbars: -1.00

2010-06-10 14:03:04.718 enterbars: -1.00

2010-06-10 14:03:04.718 enterbars: -1.00

2010-06-10 14:03:04.718 enterbars: -1.00

2010-06-10 14:03:04.734 enterbars: -1.00

2010-06-10 14:03:04.734 enterbars: -1.00

2010-06-10 14:03:04.750 enterbars: -1.00

2010-06-10 14:03:04.750 enterbars: -1.00

2010-06-10 14:03:04.750 enterbars: -1.00

2010-06-10 14:03:04.750 enterbars: -1.00

2010-06-10 14:03:04.765 enterbars: 4294965136.00

2010-06-10 14:03:04.781 enterbars: 4294966834.00

2010-06-10 14:03:04.781 enterbars: 4294965260.00

2010-06-10 14:03:04.781 enterbars: -1.00

2010-06-10 14:03:04.796 enterbars: -1.00

2010-06-10 14:03:04.796 enterbars: -1.00

2010-06-10 14:03:04.812 enterbars: -1.00 <--- 到这里正好19行(我监控了19个品种)

2010-06-10 14:03:08.140 symble: (null)

2010-06-10 14:03:08.140 enterbars: -1.00

当前确实有仓位:

几个问题:

1. 为什么tenterbars取不到有效值?

2. stkname()为什么取不到品种名称?是不是%s的格式串有问题? debugfile里支持什么样的格式串?(这个好像没看到有文档说明)

3. 我监控的是19个品种, 调试中一次循环前面看到19个enterbars, 但symble只输出了一次。也很奇怪。 (两个debugfile语句连续执行的,并且没有放在条件语句中)

[此贴子已经被作者于2010-6-10 14:15:07编辑过]

--  作者:admin
--  发布时间:2010/6/10 17:32:07
--  

tenterbars需要历史的成交记录才能正确返回结果,如果你的成交记录被清空或者是手工再其他位置进行开平仓交易,那么将无法返回正确结果。你可以再交易监控里,看看你所在公式的历史成交记录的开仓记录是否是全的。

 

stkname函数返回的变量只有在DRAWTEXT等绘制文字的函数中才能正确显示,其他方式打印出来的数字都是字符串在金字塔内的地址牌号

 

第3个问题,由于你的公式过于简单,我们这里无法印证问题存在,是否给出一个具体可以复现问题的测试公式。


--  作者:oldwain
--  发布时间:2010/6/10 19:15:11
--  
以下是引用admin在2010-6-10 17:32:07的发言:

tenterbars需要历史的成交记录才能正确返回结果,如果你的成交记录被清空或者是手工再其他位置进行开平仓交易,那么将无法返回正确结果。你可以再交易监控里,看看你所在公式的历史成交记录的开仓记录是否是全的。

我在另一个帖子里提到过,系统之前有几次死机,导致预警记录都未能保留下来。 如果tenterbars需要历史记录才能返回正确结果, 那这个历史记录就太重要了,死机丢失记录就不可谅解了。 建议改成随时打开,随时写入,随时关闭的方式, 以避免由于程序意外退出导致历史记录丢失。

好消息是: 最近几天一直都没出现过死掉的现象, 不知是我不开股票行情的原因, 还是最近的升级给解决掉了。

 

stkname函数返回的变量只有在DRAWTEXT等绘制文字的函数中才能正确显示,其他方式打印出来的数字都是字符串在金字塔内的地址牌号

明白了。

但是有什么办法,能在调试日志中区分各品种的信息呢?

 

第3个问题,由于你的公式过于简单,我们这里无法印证问题存在,是否给出一个具体可以复现问题的测试公式。

这个我回头再多试试再说。

[此贴子已经被作者于2010-6-10 19:15:47编辑过]

--  作者:oldwain
--  发布时间:2010/6/10 19:18:37
--  
以下是引用admin在2010-6-10 17:32:07的发言:

tenterbars需要历史的成交记录才能正确返回结果,如果你的成交记录被清空或者是手工再其他位置进行开平仓交易,那么将无法返回正确结果。你可以再交易监控里,看看你所在公式的历史成交记录的开仓记录是否是全的。

另外, 成交历史记录存放在哪个文件? 能否手工编辑? 这样有些时候手工补的单子,能与程序交易融合到一起.
--  作者:admin
--  发布时间:2010/6/10 21:05:15
--  

成交记录文件在Setting目录,自己打开看看应该能看明白,是<预警名称>+Histroy.Dat。

死机问题,已经在1。98发布新版中修正

手工补单,只能在交易监控中进行的自动交易系统可识别。Ctrl+A的预警框中,双击正在运行的后台交易系统中可以看到

[此贴子已经被作者于2010-6-10 21:06:22编辑过]

--  作者:oldwain
--  发布时间:2010/6/11 12:38:37
--  
以下是引用admin在2010-6-10 21:05:15的发言:

成交记录文件在Setting目录,自己打开看看应该能看明白,是<预警名称>+Histroy.Dat。

死机问题,已经在1。98发布新版中修正

手工补单,只能在交易监控中进行的自动交易系统可识别。Ctrl+A的预警框中,双击正在运行的后台交易系统中可以看到

[此贴子已经被作者于2010-6-10 21:06:22编辑过]

明白了, 非常感谢!
--  作者:自下而上
--  发布时间:2012/5/11 18:06:06
--  
以下是引用admin在2010-6-10 21:05:15的发言:

成交记录文件在Setting目录,自己打开看看应该能看明白,是<预警名称>+Histroy.Dat。

[此贴子已经被作者于2010-6-10 21:06:22编辑过]

成交记录用什么软件可打开编辑?手工交易的手工加入到成交记录中tenterbars能够识别吗?

[此贴子已经被作者于2012-5-11 18:23:24编辑过]

--  作者:自下而上
--  发布时间:2012/5/12 19:36:02
--  

顶上去