金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4607|回复: 7

漏单

[复制链接]

17

主题

51

帖子

51

积分

等级: 免费版

注册:
2022-4-12
曾用名:
发表于 2023-2-4 13:18 | 显示全部楼层 |阅读模式

逐K 仅刷最后K线,固定间隔1秒轮询 ,漏单

if  BARPOS=datacount and condition then begin
   buy(1,1,market);
   extgbdataset(stklabel&'测试1',1);
   extgbdataset(stklabel&'测试2',1);
   extgbdataset(stklabel&'测试1时间',dynainfo(207));
end

有时正常执行开仓,有时会漏单

漏单时全局变量extgbdata正常赋值,全部可以记录下来,说明条件满足了,代码执行了,但是 开仓的代码为什么跳过了?没有执行呢?
日志里面也没有触发记录,有没有可能因为是金字塔模拟盘服务器的原因?  如果实盘会不会漏单呢?

回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2023-2-6 08:53 | 显示全部楼层
1、那要看你的condition的条件是如何定义的,extgbdataset是只记录最新值,无历史值的,可以用debugfile输出条件来调试,看为什么没有触达下单,另外也要结合交易日志来策略的执行情况。单看这段代码,不好分析原因的。
2、extgbdata全局变量只有最新值无历史值的,一般用于后台,图表的历史信号会影响后续的信号的,虽然单你的代码单这段没有问题,如果是完整的图表交易策略中,一般不用该全局变量的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

51

帖子

51

积分

等级: 免费版

注册:
2022-4-12
曾用名:
 楼主| 发表于 2023-2-6 14:12 | 显示全部楼层

runmode:1;
condition:BARPOS=datacount and time=173100   

if  BARPOS=datacount and condition then begin
   buy(1,1,market);
   DEBUGFILE2('D:\TEST.TXT','时间%.0f',dynainfo(207),1);
   extgbdataset(stklabel&'测试1',1);
   extgbdataset(stklabel&'测试2',1);
   extgbdataset(stklabel&'测试1时间',dynainfo(207));
end

这个condition一定不会信号漂移的,还是有漏单

debugfile输出也是正常数据

有的能正常执行,有的漏单   



回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2023-2-6 14:15 | 显示全部楼层
你监控的是什么周期的啊?监控的几个品种啊?哪几个品种在13:31分的K线上没有触发报单呢,交易日志发来看下。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

51

帖子

51

积分

等级: 免费版

注册:
2022-4-12
曾用名:
 楼主| 发表于 2023-2-6 14:38 | 显示全部楼层
一分钟周期,测试16个品钟,昨天用类似以下公式测试的

runmode:1;


condition:BARPOS=datacount and time=173100;
if  BARPOS=datacount and condition then begin
   buy(1,1,market);
   DEBUGFILE2('D:\TEST.TXT','时间%.0f',dynainfo(207),1);
   extgbdataset(stklabel&'测试1',1);
   extgbdataset(stklabel&'测试2',1);
   extgbdataset(stklabel&'测试1时间',dynainfo(207));
end



if  BARPOS=datacount and extgbdata(stklabel&'测试1')=1 and time=174500  then begin
   sell(1,1,market);
   DEBUGFILE2('D:\TEST.TXT','平仓时间%.0f',dynainfo(207),1);
   extgbdataset(stklabel&'测试1',0);
end


不加extgbdata条件可以,加了就不稳定了,有的可以平仓,有的不能平仓
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2023-2-6 14:55 | 显示全部楼层
1、那只能输出ext全局变量的值和holding分别是多少,你的一些窗口上如果触发了回刷的话,barpos就不会等于datacount了,那历史信号就消失了啊,这个你输出holding就知道,历史上的开仓信号是否消失了啊。你输出时间是没法调试平仓条件的啊。
2、从代码结构上看,和ext没有关系,应该是和holding有关系,你直接输出平仓条件,就可以判断啊。或者你去掉barpos=datacount。图表上有稳定存在的开仓信号,才有可能触发后面的平仓信号啊。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

51

帖子

51

积分

等级: 免费版

注册:
2022-4-12
曾用名:
 楼主| 发表于 2023-2-6 21:26 | 显示全部楼层
if BARPOS=datacount and condition then BEGIN
   sell(1,1,market);
    DEBUGFILE2('D:\TEST.TXT','平仓时间%.0f',dynainfo(207),1);
         DEBUGFILE2('D:\TEST.TXT','平仓holding%.0f',holding,1);
end

2023-02-06 21:19:34.117    平仓时间11932
2023-02-06 21:19:34.118    平仓holding18

平仓Holding=18,有持仓啊,还是出发不了,但是之前几分钟的几个品种测试平仓成功
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2023-2-7 08:52 | 显示全部楼层
1、那就要看下是哪个品种没有平仓成功,看下交易日志呢,看下该品种在日志中是否有运行完毕的记录。另外在21:19分的K线上是否有稳定的平仓信号呢。
2、debugfile2是会输出历史K线上的值的,用debugfile输出最新K线上的条件的值,并在平仓语句前后都输出下呢。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-8-28 11:22 , Processed in 0.117816 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表