欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]求助撤单挂单的代码

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3961人关注过本帖树形打印复制链接

主题:[求助]求助撤单挂单的代码

帅哥哟,离线,有人找我吗?
ebpart
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:85 积分:115 威望:0 精华:0 注册:2011/1/26 23:20:51
[求助]求助撤单挂单的代码  发帖心情 Post By:2020/1/15 14:47:08    Post IP:110.87.70.220[只看该作者]

求大神/版主帮我写一段后台代码:

当没有仓位的时候,市价买入多单,然后在1000限价挂单卖出平仓,假设2分钟后没有成交,撤单,然后在900限价挂单卖出平仓,然后2分钟没成交,撤单,挂800限价卖出平仓。(备注:使用1分钟K线)

我现在实现的时候,撤单可以撤成功,但是新开的限价单,也会立即被撤单。

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/1/15 14:49:44    Post IP:180.169.30.6[只看该作者]

 你是不是撤单的方向指定有问题。通常你撤平仓单,不会把开仓的撤掉,除非你指定的方向是全部方向单子。

[此贴子已经被作者于2020/1/15 14:49:54编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
ebpart
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:85 积分:115 威望:0 精华:0 注册:2011/1/26 23:20:51
  发帖心情 Post By:2020/1/15 15:16:18    Post IP:110.87.70.220[只看该作者]

我描述错了,重新写个条件:

当没有仓位的时候,市价买入多单,然后在1000限价挂单卖出平仓,假设某根K的开盘价小于800的时候,还没有成交,撤单,然后在900限价挂单卖出平仓。

这种情况下,就会出现新的挂单被撤。

我追踪记录,会出现,新的900的限价单挂出来后,因为撤单条件在K线走完前,仍然还是满足的,然后新的挂单被撤销了。但是900限价挂单,只能执行一次,并不会再次执行。

也就说,TCANCAL可以多次执行,挂单卖出平仓只能执行一次。最后的结果是新挂单也被撤销了。(刚刚那个超时撤单,因为新挂单后超时条件不会一直满足了,所以倒是没问题)

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/1/15 15:33:07    Post IP:180.169.30.6[只看该作者]

 能否提供下你这部分的代码。在原先代码上进行校正会比较方便点。也能让我们更容易明确你的思路里面的细节。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
ebpart
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:85 积分:115 威望:0 精华:0 注册:2011/1/26 23:20:51
  发帖心情 Post By:2020/1/15 15:33:18    Post IP:110.87.70.220[只看该作者]

备注:我这个只是特地弄个例子简单化描述

在我这个例子里,我知道可以通用全局变量来控制,比如,在900限价单挂单后设置一个全局变量为1,撤单条件增加全局变量检测,如果为1则不再进入撤单代码。

但是这样,在接下来的运行里,撤单条件不能再重复使用了

 回到顶部
帅哥哟,离线,有人找我吗?
ebpart
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:85 积分:115 威望:0 精华:0 注册:2011/1/26 23:20:51
  发帖心情 Post By:2020/1/15 15:34:42    Post IP:110.87.70.220[只看该作者]

以下是引用FireScript在2020/1/15 14:49:44的发言:
 你是不是撤单的方向指定有问题。通常你撤平仓单,不会把开仓的撤掉,除非你指定的方向是全部方向单子。

[此贴子已经被作者于2020/1/15 14:49:54编辑过]

我撤平仓单,新开的也是平仓单,变一下价格

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/1/15 15:48:07    Post IP:180.169.30.6[只看该作者]

 那行。目前具体代码可能需要盘中我这边一遍测试一遍处理。有需要进一步了解的我会跟帖咨询你的。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
ebpart
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:85 积分:115 威望:0 精华:0 注册:2011/1/26 23:20:51
  发帖心情 Post By:2020/1/15 15:55:15    Post IP:110.87.70.220[只看该作者]

当没有仓位的时候,市价买入多单,然后在1000限价挂单卖出平仓,假设某根K的开盘价小于800的时候,还没有成交,撤单,然后在900限价挂单卖出平仓

然后:假设某根K的开盘价小于800的时候,还没有成交撤单


难点是:这个撤单条件,我需要重复使用,所以不能说只撤单一次,就不再使用。而是撤单完后,在下一根K线,还要使用

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/1/15 16:05:17    Post IP:180.169.30.6[只看该作者]

 撤单的控制条件是未成交时间还是价格,还是说2个综合的。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/1/16 9:48:44    Post IP:180.169.30.6[只看该作者]

 你可以这样做。你要做的其实就是限制撤单条件在一个K上不要重复触发以避免对新开的平仓单也执行撤单。
你可以这样:
if barpos>extgbdata('t') and  撤单条件 then //用超全局变量记住barpos
begin
    //这里写撤单语句
extgbdataset('t',barpos);//重置超全局变量
end

第一种方式有一点不好,就是那个超全局变量下次运行程序化时候 上次的值还保留着,所以需要手动清除下。
[此贴子已经被作者于2020/1/16 9:59:11编辑过]


命数如织,当如磐石。
 回到顶部
总数 11 1 2 下一页