以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  金字塔软件问题提交  (http://222.73.7.161/bbs/list.asp?boardid=2)
----  仓位有变时,怎么向本地指定路径输出仓位信息  (http://222.73.7.161/bbs/dispbbs.asp?boardid=2&id=156143)

--  作者:qq代人发帖
--  发布时间:2017/7/21 17:26:12
--  仓位有变时,怎么向本地指定路径输出仓位信息
仓位有变时,向本地指定路径输出仓位信息,金字塔如何实现

--  作者:wenarm
--  发布时间:2017/7/21 21:56:03
--  
可以使用debugfile函数进行输出。
--  作者:苏杨
--  发布时间:2017/7/24 14:20:58
--  
上述问题是我问的,追问下:
我的输出部分代码如下(逐K模式下)
...

POS:HOLDING,LINETHICK0;

IF islastbar and POS<>ref(pos,1) THEN BEGIN  
    
    DEBUGFILE(\'C:\\Users\\Administrator\\Desktop\\金字塔调试\\DEBUGFILE22.TXT\',numtostr(11,0)+\' %.2f\',close) ;

END

而本地输出的结果如下:
2017-07-24 14:12:11.270    11 45.75
2017-07-24 14:12:12.783    11 45.76
2017-07-24 14:12:14.296    11 45.76
2017-07-24 14:12:15.808    11 45.76
2017-07-24 14:12:17.322    11 45.76
2017-07-24 14:12:18.835    11 45.76
2017-07-24 14:12:20.348    11 45.76
2017-07-24 14:12:21.862    11 45.77
2017-07-24 14:12:23.376    11 45.77
2017-07-24 14:12:24.891    11 45.77
2017-07-24 14:12:26.400    11 45.77
2017-07-24 14:12:27.914    11 45.75
2017-07-24 14:12:29.429    11 45.75
2017-07-24 14:12:30.941    11 45.76
2017-07-24 14:12:32.454    11 45.76
2017-07-24 14:12:33.969    11 45.75
2017-07-24 14:12:35.480    11 45.75
2017-07-24 14:12:36.995    11 45.76
2017-07-24 14:12:38.508    11 45.75
2017-07-24 14:12:40.022    11 45.75
2017-07-24 14:12:41.533    11 45.75
2017-07-24 14:12:43.046    11 45.75
2017-07-24 14:12:44.559    11 45.75
2017-07-24 14:12:46.074    11 45.75
2017-07-24 14:12:47.586    11 45.76
2017-07-24 14:12:49.100    11 45.75
2017-07-24 14:12:50.614    11 45.75
2017-07-24 14:12:52.127    11 45.76
2017-07-24 14:12:53.639    11 45.76
2017-07-24 14:12:55.152    11 45.76
2017-07-24 14:12:56.665    11 45.75
2017-07-24 14:12:58.182    11 45.76

即,每次仓位发生变化后,是往本地输内容了,但是一次输了好几条,输到这根K线走完(1分钟k线下调试的)
而我实际希望的是,每次仓位变化后,往本地输一条内容,请问如何实现?

--  作者:pyd
--  发布时间:2017/7/24 15:11:47
--  

例子:

GLOBALVARIABLE:n=0;
if 1 and n<barpos then begin
debugfile(\'d:\\ee.txt\',\'合约名称:\'+stklabel+\'价格:\'+numtostr(c,2),1);
n:=barpos;
end

[此贴子已经被作者于2017/7/24 15:21:51编辑过]

--  作者:wenarm
--  发布时间:2017/7/24 15:20:04
--  

 if EXTGBDATA( stklabel)<> HOLDING then begin
 debugfile(\'d:\\ee.txt\',\'合约名称:\'+stklabel+\'价格:\'+numtostr(c,2),1);//只有开仓时才会有输出。 
 EXTGBDATASET(stklabel ,holding);
end

[此贴子已经被作者于2017/7/24 16:34:53编辑过]

--  作者:苏杨
--  发布时间:2017/7/25 10:36:00
--  
追问:
我希望日期和时间的格式由我自己定义输出,DEBUGFILE能实现吗?

DEBUGFILE2可以实现,不过它每根k线都会打印信息,我希望最新的k线才打印
用DEBUGFILE2如果加个条件islastbar,那第一次加载策略时(策略有持仓)又无法马上打印信息
请问如何解决?

--  作者:FireScript
--  发布时间:2017/7/25 11:15:27
--  
以下是引用苏杨在2017/7/25 10:36:00的发言:
追问:
我希望日期和时间的格式由我自己定义输出,DEBUGFILE能实现吗?

DEBUGFILE2可以实现,不过它每根k线都会打印信息,我希望最新的k线才打印
用DEBUGFILE2如果加个条件islastbar,那第一次加载策略时(策略有持仓)又无法马上打印信息
请问如何解决?

1.时间和日期的格式不提供自定义,可能需要你自己单独处理下。

2.不能马上打印信息是因为公式刷新是需要来一次分笔数据才行的。这个的话,没什么特别好的方法保证马上打印信息。