金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1550|回复: 16

金字塔模拟交易

[复制链接]

71

主题

311

帖子

321

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
发表于 2023-12-25 10:08 | 显示全部楼层 |阅读模式
NN1:=091300;//开始平仓时点;
NN2:=10;//时间间隔(秒);
NN3:=5;//每次平仓手数;

P4:=DYNAINFO(207);
GLOBALVARIABLE:TT=P4;

IF P4>NN1 AND P4-TT>NN2 AND DYNAINFO(228)=0 THEN;
        BEGIN
        TSELL(1,NN3,MKT),ALLOWREPEAT;
        TT:=P4;
        SLEEP(100);
        END
       
DEBUGFILE('D:\TEST.TXT','TT=%.0f',TT);

这个程序希望从091300开始每隔10秒平5手非主力合约。问题:
1.如果实际持有3手多单,手工发出平5手多单,这个时候金字塔不执行任何交易,日志显示平仓手数不足。但用后台发出平5手单子则会把3手单子平掉。实盘中是不是当发出的平仓数量大于实际持仓时,程序会平掉实际持仓数?
2.以RM为例,模拟账户中持有RM01 53手,RM03 43手。运行上面的程序时会把RM03(主力合约)也平掉,为什么?
3.上面的写法,为什么达不到间隔10秒的效果?基本是每次5手,连续平仓(除SLEEP(100)外);

回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2023-12-25 10:14 | 显示全部楼层
1、是得
2、不会得啊DYNAINFO(228)=0 这个条件在rm03上返回时0,这个条件是不会满足得你可以debugfile调试输出下结果看
3、不要使用sleep,这个函数会引发很多问题得
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

71

主题

311

帖子

321

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-12-25 10:24 | 显示全部楼层
谢谢!RM03输出是1,但不知道原因,就是把账户中的RM03也平掉了,程序就什么那一段,麻烦你们测试一下。
还有什么TT控制不了10秒平一次?
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2023-12-25 10:25 | 显示全部楼层
本地测试正常,这个条件返回0不会平仓的

你在代码前debugfile输出下判断非主力那个返回结果看下呢
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2023-12-25 10:26 | 显示全部楼层
如图,这里不会开仓03的,只会开01合约
说明条件没有问题的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

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

使用道具 举报

71

主题

311

帖子

321

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-12-25 10:44 | 显示全部楼层
还是不对,麻烦看看有什么地方设置不对吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2023-12-25 10:45 | 显示全部楼层
加我qq远程看
2857926939
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

71

主题

311

帖子

321

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-12-25 10:47 | 显示全部楼层
我大概猜到了,当DY..228=0 时,用的是TSELL(1,5,MKT),可能是指向RM00了。
回复

使用道具 举报

3

主题

2万

帖子

2万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2023-12-25 10:48 | 显示全部楼层
连续合约这个返回值也不会成立啊,你参考我上面直接监控03和01测试下呢
一定是你其他对方哪里弄的不对

另外如非必要建议不要自己去处理平老仓这个动作,不要自己代码实现

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

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

使用道具 举报

71

主题

311

帖子

321

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-12-25 11:06 | 显示全部楼层
先开仓40手RM01和40手RM03,然后麻烦你用我写的那段测试一下。
用TSELL(1,NN3,MKT,0,0,'',STKLABEL);还是全部平掉。
用TSELL(1,NN3,MKT,0,0,'','ZQRM01')就只平老仓。

我也不想自己写代码,主要是移仓换月,现在金字塔的只能对小仓位可用,有7-800手,根本就不能自动换月。必须是一点点平掉老仓再开新仓,稍不注意就会搞的损失很大。上次RM01换RM03损失了10几个专业版的金字塔。

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-20 06:47 , Processed in 0.300276 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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