金字塔决策交易系统

标题: 后台 K结束前3秒执行信号,今天遇到两次 重复发单的 [打印本页]

作者: 代人发帖    时间: 2022-7-5 14:37
标题: 后台 K结束前3秒执行信号,今天遇到两次 重复发单的
请教 :后台K结束前3秒执行信号,今天遇到两次 重复发单的
这个乙二醇 14.04.59 重复发单 开多2手
14.05 又自己平了,不是策略代码持仓同步平的。
PTA 信号最后3秒 闪了,开仓了,但是06秒 代码的持仓同步自动纠错了
是否 多核同步运行程序,会导致小概率 重复发单?
2022-07-05 14:04:58.580    【后台】PB00 运行结束
2022-07-05 14:04:58.580    【后台】T00 运行结束
2022-07-05 14:04:58.596    【后台】PP00 运行结束
2022-07-05 14:04:58.612    【后台】SS00 运行结束
2022-07-05 14:04:58.666    【后台】TA00 运行结束
2022-07-05 14:04:58.705    【后台】EB00 运行结束
2022-07-05 14:04:58.721    【后台】EG00 TSellShort 第 137 行 策略:<FD10-HT1> 出现信号
2022-07-05 14:04:58.721    【后台】EG00 TSellShort 已成功触发下单操作 价格:0.000000 数量:2 类型:1 账户: 品种:EG00
2022-07-05 14:04:58.737    【后台】实际账户持仓 2
2022-07-05 14:04:58.752    【后台】下单已发送
2022-07-05 14:04:58.752    【后台】EG00 TBuy 第 139 行 策略:<FD10-HT1> 出现信号
2022-07-05 14:04:58.768    【后台】EG00 TBuy 已成功触发下单操作 价格:0.000000 数量:2 类型:1 账户: 品种:EG00
2022-07-05 14:04:58.768    【后台】下单已发送
2022-07-05 14:04:58.783    【后台】EG00 运行结束
2022-07-05 14:04:58.783    【后台】AG00 运行结束
2022-07-05 14:04:58.800    【后台】SN00 运行结束
2022-07-05 14:04:58.800    【后台】J00 运行结束
2022-07-05 14:04:58.815    【后台】RB00 运行结束
2022-07-05 14:04:58.832    【后台】ZN00 运行结束
2022-07-05 14:04:58.832    【下单】EG09 价0.000000 量2 买卖0 类型1 开平1 账户 Formula 1
2022-07-05 14:04:58.846    【下单】已提交,订单ID :84346883
2022-07-05 14:04:58.846    【下单】EG09 价0.000000 量2 买卖0 类型1 开平0 账户 Formula 1
2022-07-05 14:04:58.862    【下单】已提交,订单ID :84346884
2022-07-05 14:04:58.893    【指令】收到回报指令 ID = 84346883 品种:eg2209 账户:
2022-07-05 14:04:58.893    【回报】18659746886 : EG09 - 已报单 2 价格:0 平 买
2022-07-05 14:04:58.971    【指令】收到Order回报指令 ID = 84346883 Status = 3 品种:eg2209 账户:
2022-07-05 14:04:59.034    【指令】收到回报指令 ID = 84346884 品种:eg2209 账户:
2022-07-05 14:04:59.035    【回报】18659746886 : EG09 - 已报单 2 价格:0 开 买
2022-07-05 14:04:59.112    【指令】收到成交回报指令 ORDERID = 84346883
2022-07-05 14:04:59.143    【回报】18659746886 : eg2209 - 已成交 2 价格:4486 平 买
2022-07-05 14:04:59.175    【指令】平仓计量 EBuy:0 ESell:0
2022-07-05 14:04:59.190    【回报】18659746886 : eg2209 - 全部成交 2
2022-07-05 14:04:59.268    【指令】收到Order回报指令 ID = 84346884 Status = 3 品种:eg2209 账户:
2022-07-05 14:04:59.393    【后台】I00 运行结束
2022-07-05 14:04:59.393    【后台】JM00 运行结束
2022-07-05 14:04:59.408    【后台】CF00 运行结束
2022-07-05 14:04:59.408    【后台】SA00 运行结束
2022-07-05 14:04:59.424    【后台】MA00 运行结束
2022-07-05 14:04:59.438    【指令】收到成交回报指令 ORDERID = 84346884
2022-07-05 14:04:59.440    【后台】HC00 运行结束
2022-07-05 14:04:59.440    【后台】P00 运行结束
2022-07-05 14:04:59.455    【后台】BUX00 运行结束
2022-07-05 14:04:59.455    【后台】M00 运行结束
2022-07-05 14:04:59.471    【后台】SP00 运行结束
2022-07-05 14:04:59.487    【后台】AL00 运行结束
2022-07-05 14:04:59.487    【后台】RU00 运行结束
2022-07-05 14:04:59.502    【后台】FU00 运行结束
2022-07-05 14:04:59.518    【后台】SRX00 运行结束
2022-07-05 14:04:59.518    【后台】C00 运行结束
2022-07-05 14:04:59.534    【后台】CU00 运行结束
2022-07-05 14:04:59.534    【后台】NI00 运行结束
2022-07-05 14:04:59.549    【回报】18659746886 : eg2209 - 已成交 2 价格:4486 开 买
2022-07-05 14:04:59.549    【后台】JD00 运行结束
2022-07-05 14:04:59.565    【回报】18659746886 : eg2209 - 全部成交 2
2022-07-05 14:04:59.565    【后台】AP00 运行结束
2022-07-05 14:04:59.580    【后台】SM00 运行结束
2022-07-05 14:04:59.580    【后台】PB00 运行结束
2022-07-05 14:04:59.596    【后台】T00 运行结束
2022-07-05 14:04:59.596    【后台】PP00 运行结束
2022-07-05 14:04:59.612    【后台】SS00 运行结束
2022-07-05 14:04:59.612    【后台】TA00 运行结束
2022-07-05 14:04:59.643    【后台】EB00 运行结束
2022-07-05 14:04:59.675    【后台】EG00 TBuy 第 139 行 策略:<FD10-HT1> 出现信号
2022-07-05 14:04:59.690    【后台】EG00 TBuy 已成功触发下单操作 价格:0.000000 数量:2 类型:1 账户: 品种:EG00
2022-07-05 14:04:59.705    【后台】下单已发送
2022-07-05 14:04:59.705    【后台】EG00 运行结束
2022-07-05 14:04:59.721    【后台】AG00 运行结束
2022-07-05 14:04:59.737    【后台】SN00 运行结束
2022-07-05 14:04:59.737    【后台】J00 运行结束
2022-07-05 14:04:59.752    【后台】RB00 运行结束
2022-07-05 14:04:59.752    【后台】ZN00 运行结束
2022-07-05 14:04:59.768    【下单】EG09 价0.000000 量2 买卖0 类型1 开平0 账户18659746886 Formula 1
2022-07-05 14:04:59.784    【下单】已提交,订单ID :84346885
2022-07-05 14:04:59.832    【指令】收到回报指令 ID = 84346885 品种:eg2209 账户:18659746886
2022-07-05 14:04:59.836    【回报】18659746886 : EG09 - 已报单 2 价格:0 开 买
2022-07-05 14:04:59.908    【指令】收到Order回报指令 ID = 84346885 Status = 3 品种:eg2209 账户:18659746886
2022-07-05 14:05:00.034    【指令】收到成交回报指令 ORDERID = 84346885
2022-07-05 14:05:00.036    【回报】18659746886 : eg2209 - 已成交 2 价格:4486 开 买
2022-07-05 14:05:00.049    【回报】18659746886 : eg2209 - 全部成交 2
2022-07-05 14:05:00.393    【后台】I00 运行结束
2022-07-05 14:05:00.393    【后台】JM00 运行结束
2022-07-05 14:05:00.409    【后台】CF00 运行结束



作者: 技术010    时间: 2022-7-5 15:00
正常情况下,一条语句在一根K线上只会触发一次,到没有遇到过你反馈的该现象,多核运行也不会有此现象的。你是用代码实现的3秒前触发,还是走完K线模式下提前3秒下单?
作者: 风度    时间: 2022-7-5 18:31
技术010 发表于 2022-7-5 15:00
正常情况下,一条语句在一根K线上只会触发一次,到没有遇到过你反馈的该现象,多核运行也不会有此现象的。 ...

用代码实现的3秒前触发

间隔1秒轮询模式!

大多数信号执行OK,今天就是遇到两次重复发单的,按逻辑不应该啊!
后来我思考琢磨一下,是否运行时刻,发单了,但是还没成交回报到系统,下一轮执行又触发了,但是没检测到持仓,所以又发单了。。。所以 我现在给代码那里加了一个 没挂单条件下 才能发单。。。晚上 继续测试。

补充内容 (2022-7-5 18:35):
你的语句执行触发一次,应该是图表上的虚拟交易信号;我这里有后台的可重复交易代码 allowrepeat 语句,所以我考虑是否挂单反馈还没到系统,然后下一轮代码执行又到了,又触发了。。。这里是否有个并行错位问题。...

补充内容 (2022-7-5 18:37):
虽然时间上看,好像有点前后几十微秒间隔,可能系统上,真的还没实现 持仓变化,后一轮代码执行又判断触发。。。
作者: 风度    时间: 2022-7-5 18:43
技术010 发表于 2022-7-5 15:00
正常情况下,一条语句在一根K线上只会触发一次,到没有遇到过你反馈的该现象,多核运行也不会有此现象的。 ...

后台指令如下:
tsellshort(1,cang,mkt);
请问,这样的语句,在一个K线上只触发一次吗?

tsellshort(1,cang,mkt),allowrepeat;
这样的语句,就可以重复触发吧?

图表指令如下:
开空:BUYSHORT(CC1=0,TN,THISCLOSE);
请问,这样的语句,在一个K线上只触发一次吗?

作者: 技术006    时间: 2022-7-5 20:25
本帖最后由 技术006 于 2022-7-5 20:29 编辑
风度 发表于 2022-7-5 18:43
后台指令如下:
tsellshort(1,cang,mkt);
请问,这样的语句,在一个K线上只触发一次吗?

是的。三个表述都是正确的。

你3楼的描述中,代码中是否用到重复下单指令?

作者: 风度    时间: 2022-7-5 20:51
技术006 发表于 2022-7-5 20:25
是的。三个表述都是正确的。

你3楼的描述中,代码中是否用到重复下单指令?

tsellshort(1,cang,mkt),allowrepeat;

用到了这样的一些开平指令,虚拟交易指令那里 没有 allowrepeat
我就怀疑是交易指令到持仓反馈那里没完成,然后下一次代码运行又到了,触发交易。。。
作者: 技术006    时间: 2022-7-6 07:57
allowrepeat就是可以重复下单。只要开平条件成立,下单语句就会被多次执行。正常的交易思路,没有人会用重复下单指令。
其次是,后台策略中要考虑软件与柜台之间交易的时间差,委托回报的传递速度远没有策略执行的速度快,所以在委托后后台有时候是需要根据本地的未成交等函数作为辅助判断的。避免多次执行(比如:部分平仓时)
作者: 风度    时间: 2022-7-6 10:06
技术006 发表于 2022-7-6 07:57
allowrepeat就是可以重复下单。只要开平条件成立,下单语句就会被多次执行。正常的交易思路,没有人会用重 ...

海龟交易系统,图表程序化
它里面的交易指令 加仓重复执行的,是否和一个指令 一个K上 只运行一次 矛盾啊?

这个运行一次,是指一分钟内 或者 一个价格小范围内,还或者是一个变量条件组合规则下 之运行一次。。。?

如果是 最后情况,那我是可以去掉 allowrepeat的


作者: 风度    时间: 2022-7-6 10:16
技术006 发表于 2022-7-6 07:57
allowrepeat就是可以重复下单。只要开平条件成立,下单语句就会被多次执行。正常的交易思路,没有人会用重 ...

指点一下 这个 只允许发一次指令 内涵啊。。。
作者: 技术010    时间: 2022-7-6 10:17
1、严格来讲,同一个开平仓语句在一根K线上是只会触发一次。如果用固定间隔,语句的执行是按固定间隔来运行的,只是再次满足条件,如果交易语句触发过了,就不会触发了,只有加了allowrepeat函数,才会重复触发,且不受控制,只要条件满足,就会触发交易语句。
2、如果要实现一根K线上的加仓逻辑,那肯定是要用多个开仓语句来实现的,而不是allowrepeat。
作者: 风度    时间: 2022-7-6 10:23
技术010 发表于 2022-7-6 10:17
1、严格来讲,同一个开平仓语句在一根K线上是只会触发一次。如果用固定间隔,语句的执行是按固定间隔来运行 ...

海龟系统是循环块内开仓语句 重复执行来加仓的。。。

补充内容 (2022-7-6 10:24):
                while h>enterprice+N*N1 and times<4 do begin //判断是否连续开多
                        buyp:=max(o,enterprice+N*N1)+MINDIFF;
                        buy(1,lots,limitr,buyp);
                        times:=times+1;
                end; //连续开多仓
作者: 风度    时间: 2022-7-6 10:27
技术010 发表于 2022-7-6 10:17
1、严格来讲,同一个开平仓语句在一根K线上是只会触发一次。如果用固定间隔,语句的执行是按固定间隔来运行 ...

我那个交易指令,主要是可能一个K上会用上两次,一次持仓同步,一次正常信号开平。时间不在一块,持仓同步是间隔12秒 6 18 30 42 54,而正常信号执行开平是K结束前3秒内。

我是想去掉 allowrepeat,就是不知道去掉后还能否实现我想要的可能用到两次。。。
作者: 技术010    时间: 2022-7-6 10:33
1、你如果说要实现你所谓的持仓同步和交易语句都触发,那持仓同步肯定是单独的一套开平仓语句啊,和你的交易语句是独立的啊,只要满足条件,那不同的交易语句在一根K线上自然都可以触发的啊。
2、allowrepeat是同一条语句在同一根K线上多次触发,且不受控制的。另外你说的循环,也不能实现一条语句在一根K线内多次触发。
作者: 风度    时间: 2022-7-6 10:46
技术010 发表于 2022-7-6 10:33
1、你如果说要实现你所谓的持仓同步和交易语句都触发,那持仓同步肯定是单独的一套开平仓语句啊,和你的交 ...

我是持仓同步 和 信号 执行 融为一体的,只是时间上有区别。

都是用虚拟持仓和账户持仓差异来判断是否需要执行开平指令。

补充内容 (2022-7-6 10:49):
出现图表交易信号,虚拟交易;判断虚拟持仓是否和昨天持仓不同,确认交易信号出现,然后再判断虚拟持仓和账户持仓差异,进行差异数仓量来开平。。。 持仓同步就是 时间到了就检验虚拟holding和账户持仓差异,有ch...
作者: 风度    时间: 2022-7-6 10:52
技术010 发表于 2022-7-6 10:33
1、你如果说要实现你所谓的持仓同步和交易语句都触发,那持仓同步肯定是单独的一套开平仓语句啊,和你的交 ...

(, 下载次数: 444)