设为首页收藏本站

 找回密码
 注册
查看: 2016|回复: 13
打印 上一主题 下一主题

求教高手程序化交易 [复制链接]

Rank: 2

精华
0
UID
260065
积分
64
帖子
41
主题
12
阅读权限
30
注册时间
2017-12-4
最后登录
2020-12-17
跳转到指定楼层
1#
发表于 2019-4-10 23:07:14 |只看该作者 |正序浏览
我用旗舰版进行实盘程序化交易,为什么在图表上显示开仓了但实际没开仓,账户里也查不到委托信息。用监控器一键同步也失败,反馈是“委托无法发送”。程序化交易的设定没问题,网络也没问题,求教高手指点。

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
14#
发表于 2019-4-15 09:07:30 |只看该作者
dltpwyy 发表于 2019-4-12 18:15
信号消失的问题我再检查一下开平仓条件。可是连续一个方向开仓我理解不了。比如连续开空仓,这是程序:
    ...

条件不稳定的话,信号消失了,marketposition仍是为0。
系统并不知道你之前消失的信号有开过仓,于是在后面的K线位置再次满足条件时,会再次开仓。

找不到相应合约属性这个提示,除去本地数据库损坏导致的外,还有就是图表里的过期的合约(包含叠加,或是委托映射等)。

未处理请求超过许可数,试一下重登录软件后能登录吗?

使用道具 举报

Rank: 2

精华
0
UID
260065
积分
64
帖子
41
主题
12
阅读权限
30
注册时间
2017-12-4
最后登录
2020-12-17
13#
发表于 2019-4-12 22:26:05 |只看该作者
我是彻底晕了,又提示“账户[****]未处理请求超过许可数”,到底是公式的问题,还是开拓者软件使用问题?

使用道具 举报

Rank: 2

精华
0
UID
260065
积分
64
帖子
41
主题
12
阅读权限
30
注册时间
2017-12-4
最后登录
2020-12-17
12#
发表于 2019-4-12 22:15:51 |只看该作者
请教“账户****:找不到相应的合约属性”是什么意思?发出卖出信号后的提示,没有完成交易。

使用道具 举报

Rank: 2

精华
0
UID
260065
积分
64
帖子
41
主题
12
阅读权限
30
注册时间
2017-12-4
最后登录
2020-12-17
11#
发表于 2019-4-12 18:15:43 |只看该作者
信号消失的问题我再检查一下开平仓条件。可是连续一个方向开仓我理解不了。比如连续开空仓,这是程序:
    if(开空仓条件)
   {if(marketposition==1)
   {sell(0,open-1*minmove*pricescale);
    sellshort(0,open-1*minmove*pricescale);}
    if(marketposition==0)
   {SellShort(0,open-1*minmove*pricescale);}}  
只有当marketposition==1或0 时才开空仓,如果开了一次,marketposition就会等于-1,按说开空仓条件就不再具备了,为什么还会开?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
10#
发表于 2019-4-12 14:00:52 |只看该作者
dltpwyy 发表于 2019-4-12 13:54
是marketposition函数获取账户信息不准确造成的吗?

建议从开平仓条件上进行排查,着重看一下条件是否不稳定 ,有信号消失的问题。

使用道具 举报

Rank: 2

精华
0
UID
260065
积分
64
帖子
41
主题
12
阅读权限
30
注册时间
2017-12-4
最后登录
2020-12-17
9#
发表于 2019-4-12 13:54:43 |只看该作者
是marketposition函数获取账户信息不准确造成的吗?

使用道具 举报

Rank: 2

精华
0
UID
260065
积分
64
帖子
41
主题
12
阅读权限
30
注册时间
2017-12-4
最后登录
2020-12-17
8#
发表于 2019-4-12 13:47:18 |只看该作者
If(开多仓条件)
  {if(marketposition==-1)
  {buytocover(0,open+1*minmove*pricescale);
   buy(0,open+1*minmove*pricescale);}
   if(marketposition==0)
  {buy(0,open+1*minmove*pricescale);}}
   if(开空仓条件)
  {if(marketposition==1)
  {sell(0,open-1*minmove*pricescale);
   sellshort(0,open-1*minmove*pricescale);}
   if(marketposition==0)
  {SellShort(0,open-1*minmove*pricescale);}}
以上是我的程序化交易公式部分内容,为什么在实盘交易时会出现连续一个方向上的开仓呢?比如下面是我的实盘交易记录,按程序设定卖开2手后就不应继续出现卖开这一动作,但实盘连续出现三个卖开成交6手,这是什么原因造成的,该怎么解决?

2019/04/12 09:00:08.536自动交易信息:帐户[***]商品[***]类型[买平]数量[2]价格[****.00000000]

2019/04/12 09:00:08.536自动交易信息:帐户[***]商品[***]类型[买开]数量[2]价格[****.00000000]

2019/04/12 09:17:59.513自动交易信息:帐户[***]商品[***]类型[卖平]数量[2]价格[****.00000000]

2019/04/12 09:17:59.513自动交易信息:帐户[***]商品[***]类型[卖开]数量[2]价格[****.00000000]

2019/04/12 09:37:58.926自动交易信息:帐户[***]商品[***]类型[卖平]数量[2]价格[****.00000000]

2019/04/12 09:37:58.926自动交易信息:帐户[***]商品[***]类型[卖开]数量[2]价格[****.00000000]

2019/04/12 09:44:01.121自动交易信息:帐户[***]商品[***]类型[卖平]数量[2]价格[****.00000000]

2019/04/12 09:44:01.121自动交易信息:帐户[***]商品[***]类型[卖开]数量[2]价格[****.00000000]

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
7#
发表于 2019-4-12 09:54:42 |只看该作者
dltpwyy 发表于 2019-4-12 09:36
谢谢!委托记录不是就是发到ctp柜台的委托吗?昨天程序化交易没成功我手动交易过,账户里开始有当日交易记 ...


如果你当时有与客服沟通过,同事有判断处理过。那应该有告诉您问题在哪里了吧。那论坛上是想要得到什答案呢?
您在前面的所有文字里都没有提到有昨天在盘中有重登录交易帐户的操作,那如果没有重登录过,确定是这台TB发的程序化委托吗??
如果您有重登录过,并交易成功了。。那这些信息在前面为啥没有提到呢?
信息不给全,让我们猜一个答案 ,真是猜不出来的。

1,可以看一下帮助文档里buy的语法说明。。在有空头信号时,直接执行buy,是可先平空再开多的。无需在前面加buytocover.
     没有看到公式,没有看到信号,也没有看到当时的帐户持仓情况。我并没法猜出当时发出买平的原因是为何。。
2,不是这样的。

使用道具 举报

Rank: 2

精华
0
UID
260065
积分
64
帖子
41
主题
12
阅读权限
30
注册时间
2017-12-4
最后登录
2020-12-17
6#
发表于 2019-4-12 09:36:28 |只看该作者
谢谢!委托记录不是就是发到ctp柜台的委托吗?昨天程序化交易没成功我手动交易过,账户里开始有当日交易记录,我在和客服沟通时退出软件重新登录后就看不到任何记录了。
另外昨天程序化交易还成交了一笔。
还想请教两个问题:1.我的公式中买卖时先判断是否持有仓位,比如买多前如果持有空仓,则buytocover,然后执行buy,从程序实盘运行看,我不持有空仓程序会出现一个“买入平仓失败,可平持仓不足,可平空单0手,委托数量2手,挂单0手,发送中0手”的信息,后面的buy函数也没有执行,这是为什么?2.
  params  
  numeric duanma(1);
  numeric changma(20);
  numeric manzhou(5);
vars
  numericseries macdkuai(0);
  numericseries macdman(0);
  numericseries macdcha(0);

begin

  macdkuai=XAverage(close,duanma)-XAverage(close,changma);
  macdman=XAverage(macdkuai,manzhou);
  macdcha=macdkuai-macdman;
用以上语句计算macd快线和慢线,然后用if(macdkuai[1]>macdman[1])判断是否金叉,判断结果好像还受当前这根k线的现价影响了,是这样吗?

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-3 14:49

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部