以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp)
-- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2)
---- 后台问题请教 (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=183311)
|
-- 作者:Ritter
-- 发布时间:2020/12/3 12:59:51
-- 后台问题请教
后台模拟时,有时候会出现下述问题: 1.后台精细化回测明细中有开仓,但实际模拟盘未开仓;
2.回测debugfile输出的文档中满足开仓条件,但THOLDING的输出为0;
请问这是什么原因导致的??谢谢!!
此主题相关图片如下:1.png
![dvubb 图片点击可在新窗口打开查看](UploadFile/2020-12/20201231302918722.png)
此主题相关图片如下:2.png
![dvubb 图片点击可在新窗口打开查看](UploadFile/2020-12/20201231302911265.png)
[此贴子已经被作者于2020/12/3 13:00:31编辑过]
|
-- 作者:FireScript
-- 发布时间:2020/12/3 13:14:56
--
用
TBUYHOLDINGEX() TSELLHOLDINGEX() 输出持仓情况,这里不要用THOLDING。
另外你这个输出文本的代码和开仓的代码 的条件需要确保下控制的是一致的。你直接把输出语句和开仓语句写在一起。
|
-- 作者:Ritter
-- 发布时间:2020/12/3 13:33:06
--
1.TBUYHOLDINGEX()函数用在DEBUGFILE中不起作用;
2.关键问题是回测中有开仓,实际模拟中无开仓的问题。
代码如下:
BUYCOND:=BULL AND B_COND AND BVOL;
IF ISLASTBAR THEN DEBUGFILE(\'D:\\TEST.TXT\',\' buycond:%.0f\',buycond); IF BUYCOND THEN BEGIN TSELLSHORT(1,0,MKT); TBUY(TBUYHOLDINGEX(\'\',\'\',1)=0,CW%,MKT),PERTRADER; IF ISLASTBAR THEN BEGIN DEBUGFILE(\'D:\\TEST.TXT\',\'TBUYHOLDINGEX(\'\',\'\',1):%.0f\',TBUYHOLDINGEX(\'\',\'\',1)); DEBUGFILE(\'D:\\TEST.TXT\',\'THOLDING:%.0f\',THOLDING); END END
|
-- 作者:banzhuan
-- 发布时间:2020/12/3 13:48:24
--
1、DEBUGFILE(\'D:\\TEST.TXT\',\'\'多持:%.0f\',TBUYHOLDINGEX(\'\',\'\',1));// 改成这样输出
2、实盘运行中,建议也同时输出开仓条件看下
|
-- 作者:FireScript
-- 发布时间:2020/12/3 14:04:12
--
1.这里改下,那个括号去掉,否则程序这里会无法识别。
DEBUGFILE(\'D:\\TEST.TXT\',\'TBUYHOLDINGEX:%.0f\',TBUYHOLDINGEX(\'\',\'\',1));
2.“关键问题是回测中有开仓,实际模拟中无开仓的问题。”模拟盘文本记录中的条件是否满足了呢?今天上午回测里面是有信号,但是模拟交易时候可能存在信号没捕捉到(固定轮询时间间隔内出的信号,然后又消失了)的问题。建议你可以再运行模拟观察下,是否会一直出现记录的条件满足,但是没有开仓的情况。
|
-- 作者:Ritter
-- 发布时间:2020/12/3 14:08:57
--
还是不行,不是输出的问题。
此主题相关图片如下:2.png
![dvubb 图片点击可在新窗口打开查看](UploadFile/2020-12/2020123147582648.png)
|
-- 作者:banzhuan
-- 发布时间:2020/12/3 14:52:27
--
我们本地先跟踪一下,稍后个给您答复
|
-- 作者:FireScript
-- 发布时间:2020/12/3 15:03:48
--
你加2句先 看下回测里面的第一次开仓的位置到底在什么地方:
tstr:=NUMTOSTR(date,0)+\'_\'+NUMTOSTR(time,0); DEBUGFILE(\'D:\\TEST.TXT\',\' 开仓位置:\'+tstr,0);
这2句直接写在下单语句后面即可。
如果这里记录的开仓位置和回测明细里面的位置是一样的,那说明可能是持仓函数在输出时候的问题。我本地测试是记录的位置和回测里的位置是一致的。但是这个持仓在第一次时候记录的不一样。
|
-- 作者:Ritter
-- 发布时间:2020/12/3 16:09:10
--
1.模拟用的是K线走完,理论上不存在信号闪烁;
2.昨天下午开始模拟,24个品种,截止目前,有三个品种各出现了一次满足条件不开仓的问题;
3.分别回测了多个品种,还是会出现类似问题,输出的开仓位置和回测明细里的位置一致,如果是持仓函数输出的问题,那模拟的时候不应该出现这个问题呀。
此主题相关图片如下:1.png
![dvubb 图片点击可在新窗口打开查看](UploadFile/2020-12/20201231615677605.png)
此主题相关图片如下:2.png
![dvubb 图片点击可在新窗口打开查看](UploadFile/2020-12/20201231615670148.png)
|
-- 作者:banzhuan
-- 发布时间:2020/12/3 16:29:16
--
第二个问题,你是如何判断满足条件不开仓呢? 是输出日志中条件满足了,但是账户栏没有委托记录吗? 后台是没法和图表直接做对比的,两者的运行机制有很大区别。 只能用日志输出跟踪是否满足了开仓条件。
另外,回测时的日志第一次满足条件时,持仓数量没显示可能是机制的问题,明天工作人员测试下实盘运行中是否有这个问题。
|