金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 5676|回复: 11

关于撤单和再交易的问题

[复制链接]

92

主题

268

帖子

278

积分

等级: 免费版

注册:
2021-5-20
曾用名:
发表于 2021-10-23 16:27 | 显示全部楼层 |阅读模式
后台策略里,先撤后买,这样写会不会造成同时进行撤单和买入,撤单没有撤掉,然后没有钱买?
IF 撤单条件 THEN BEGIN
TCANCELEX(1,1,'','');
tbuy(1,100%,mkt),PERTRADER;
END

回复

使用道具 举报

37

主题

9872

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2021-10-23 17:47 | 显示全部楼层
可能存在这种情况,因为撤单动作柜台反馈是需要时间的,而计算机执行速度远比这个时间快。

你可以将撤单动作和追单动作分开。示例如下:

GLOBALVARIABLE:flag=0;//使用全局变量用于记录是否执行过撤单动作。
IF 撤单条件 and flag=0 THEN BEGIN
TCANCELEX(1,1,'','');
flag:=1;
END

if flag=1 and TISREMAINEX(1,'','')=0 then BEGIN
tbuy(1,100%,mkt),PERTRADER;       
flag:=0;
END
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

92

主题

268

帖子

278

积分

等级: 免费版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-10-23 19:51 | 显示全部楼层
技术006 发表于 2021-10-23 17:47
可能存在这种情况,因为撤单动作柜台反馈是需要时间的,而计算机执行速度远比这个时间快。

你可以将撤单 ...

补充问一下:
TREMAINQTY是不是返回各方向的未成交单数量,比如100手,1000手
TISREMAINEX只返回是否有各方向未成交单的情况,返回有未成交就是1,没有未成交就是0?
不知道这样理解对否?
回复

使用道具 举报

92

主题

268

帖子

278

积分

等级: 免费版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-10-23 19:58 | 显示全部楼层
100018916 发表于 2021-10-23 19:51
补充问一下:
TREMAINQTY是不是返回各方向的未成交单数量,比如100手,1000手
TISREMAINEX只返回是否有 ...

我这个撤单是出信号后几个周期未成交,然后这本周期撤单再买。
1、前面我用BWCJ:=TREMAINQTY(1,'','')定义买的未成交单。
2、然后以未成交单为主条件,加上另外对行情信号的判断去撤单。
3、接着用以下语句确实能撤掉单
IF 撤单条件 and flag=0 THEN BEGIN
TCANCELEX(1,1,'','');
flag:=1;
END
4、接着用你上面给的语句买入:
if flag=1 and TISREMAINEX(1,'','')=0 then BEGIN
tbuy(1,100%,mkt),PERTRADER;        
flag:=0;
END
但这里用了这个TISREMAINEX(1,'','')=0,判断未成交为0。
我前面出交易买信号在几个周期前,实际这个周期里还有未成交的买单,
是不是这里因为加了未成交单为0的判断,而导致不会实际买入了?
回复

使用道具 举报

37

主题

9872

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2021-10-23 21:10 | 显示全部楼层
100018916 发表于 2021-10-23 19:51
补充问一下:
TREMAINQTY是不是返回各方向的未成交单数量,比如100手,1000手
TISREMAINEX只返回是否有 ...

是的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

37

主题

9872

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2021-10-23 21:20 | 显示全部楼层
100018916 发表于 2021-10-23 19:58
我这个撤单是出信号后几个周期未成交,然后这本周期撤单再买。
1、前面我用BWCJ:=TREMAINQTY(1,'','')定 ...

首先,我们要实现的其实是等撤单完成后,在去追单的操作。

我提供的方法是采用全局变量标记,类似一个开关。当执行到
第三步时,触发撤单动作,此时全局变量flag被置为1,代表执行了撤单动作,但是撤单是否成功无法判断。需要通过未成交相关的函数作为辅助判断。当撤单成功后,未成交状态就没了。

此时:第四步是符合条件的,因为flag标记在执行撤单语句后,就已经是1了,有没有未成交存在。则认为撤单成功了,可以进行追单了。

注:
1.您也可以使用其他未成交函数,比如未成交数量=0时,则代表撤单成功。
2.全局变量,就是个标记状态作用。

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

92

主题

268

帖子

278

积分

等级: 免费版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-10-24 00:43 | 显示全部楼层
技术006 发表于 2021-10-23 21:20
首先,我们要实现的其实是等撤单完成后,在去追单的操作。

我提供的方法是采用全局变量标记,类似一个 ...

收到,感谢回复,我再哆嗦多问一下,也就是说上面的代码是没有问题的?我可以放心使用?
回复

使用道具 举报

37

主题

9872

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2021-10-24 09:00 | 显示全部楼层
上面的代码是示例代码,主要是告诉你方法。你需要根据自己策略的实际情况自行调整的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

92

主题

268

帖子

278

积分

等级: 免费版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-10-29 10:21 | 显示全部楼层
你好,关于全局变量的EXTGBDATASET用法请教一下。
1、EXTGBDATASET(s,x)到底是怎么回事,看注解没有看懂。
2、全局变量如何使用,能不能给个模板范例,学习一下。

补充内容 (2021-10-29 10:22):
我主要想用在多个策略中,比如策略1,用个全局变量A ;策略2,用B;策略3用C;
在策略3中,只有A=1 and b=1 and c=1,同时满足才会去执行交易动作。
有劳给个模板学习一下。
回复

使用道具 举报

0

主题

2237

帖子

2247

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-10-29 10:31 | 显示全部楼层
EXTGBDATASET 就是给变量赋值,和另外一个函数组合使用:EXTGBDATA 。
举例:
if sellcon and extgbdata( 'bar')<barpos  then  
   begin
   sell(1,10,MARKET);
   BUYSHORT(1,1,market);
   extgbdataset('bar',barpos);// 把最新的barpos赋值给bar 这个变量
   ENd
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-11 02:05 , Processed in 0.176144 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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