金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 106137

后台多策略以净持仓方式发开平指令

[复制链接]

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-10-18 15:36 | 显示全部楼层
本帖最后由 资深技术05 于 2024-10-18 15:37 编辑

你这个属于当根K有信号的情况了。

模板里的逻辑是当根K有信号 不操作的,当根有信号如果操作 可能会因为图表信号变化造成反复矫正仓位的。需要等结束确认后才会操作。并且你这里是平仓,而实际又没有仓位,那实际下次开盘时候 没有仓位差,它也是不会执行什么的。  



回复

使用道具 举报

33

主题

212

帖子

212

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-10-18 17:06 | 显示全部楼层
资深技术05 发表于 2024-10-18 15:36
你这个属于当根K有信号的情况了。

模板里的逻辑是当根K有信号 不操作的,当根有信号如果操作 可能会因为 ...

17号的K线走完后,18号的9点00分一开盘就需要执行开仓的,关键是解决18号的9点00分没有发单的问题,至于工业硅连续18号的信号怎样,不能影响9点00分的开仓。因为思想就是全部走完K再执行啊!其它品种暂时没有出现这样的问题。
回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-10-18 17:19 | 显示全部楼层
本帖最后由 资深技术05 于 2024-10-18 17:22 编辑

从之前截图的情况看你的原始开仓 是16号出的信号,17号执行的。  而你现在的情况只是因为换月,旧合约没转换为新合约仓位,导致的空仓。正常是会补仓,但是恰好遇到18号出的是一个平空信号,所以才会不执行。  如果今天日线不是出了平空信号,那其实是会补仓的。

现有的模板代码的逻辑 无法处理这种特殊情况。 我这边也只能尝试调整下代码结构,但是无法确保一定可以实现。

回复

使用道具 举报

33

主题

212

帖子

212

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-10-18 17:40 | 显示全部楼层
资深技术05 发表于 2024-10-18 17:19
从之前截图的情况看你的原始开仓 是16号出的信号,17号执行的。  而你现在的情况只是因为换月,旧合约没转 ...

那是不是因为汇总净持仓策略是固定间隔1秒和1分K线上的原因?如果是,改为走完一根K线和日K线上运行,是不是可以避免?(把引用策略里的所有非日线策略都删除了,只留下日线策略)
回复

使用道具 举报

33

主题

212

帖子

212

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-10-18 17:44 | 显示全部楼层
资深技术05 发表于 2024-10-18 17:19
从之前截图的情况看你的原始开仓 是16号出的信号,17号执行的。  而你现在的情况只是因为换月,旧合约没转 ...

今天的日线9点00分的信号是闪烁的,谁也保证不了收盘时是不是依旧是平空信号
回复

使用道具 举报

33

主题

212

帖子

212

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-10-18 21:26 | 显示全部楼层
还是汇总净持仓策略的问题,焦煤的指令得不到执行。16日持仓1,17日持仓0,18日持仓-1,18日晚上夜盘才平多,延迟了一根K,然后再开空。理想中的情况应该是17日晚上夜盘开盘时执行平多的指令。怎样解决这些延迟性的问题?全是实盘在实践呀!
16日.jpg
17.jpg
18.jpg

21日也就是18日夜盘

21日也就是18日夜盘
回复

使用道具 举报

33

主题

212

帖子

212

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-10-18 21:33 | 显示全部楼层
下面是该引用策略2的信号,引用策略是日线,另一个引用策略1也是日线(最近一周无信号,持仓0),汇总净持仓策略目前仅引用这两个日线策略组成,(其它非日线策略暂时全部删除)

策略2的信号

策略2的信号
回复

使用道具 举报

33

主题

212

帖子

212

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-10-21 08:42 | 显示全部楼层
106137 发表于 2024-10-18 21:33
下面是该引用策略2的信号,引用策略是日线,另一个引用策略1也是日线(最近一周无信号,持仓0),汇总净持 ...

而且引用策略都是日线情况下  菜籽粕竟然21点59分发的开多单,应该21点00分发单
菜粕.jpg
回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-10-21 11:19 | 显示全部楼层
本帖最后由 资深技术05 于 2024-10-21 11:25 编辑

下单延迟的那个是连续有信号时候的一个问题,通过调整代码结构已经处理了。另外上次那个换月品种的仓位矫正,调整后的代码同样有效:
你参考这个调整 修改下你的策略就行了。  建议你先在仿真上测试下。
[PEL] 复制代码

ho1:stkindiex(stklabel,'策略1.ho',0,3,-1,500);
ho2:stkindiex(stklabel,'策略1.ho',0,2,-1,500);
ho3:stkindiex(stklabel,'策略1.ho',0,6,-1,500);

//上一根k线的理论持仓
ho:ho1+ho2+ho3;

//账户多头持仓
tbuyho:tbuyholdingex('',stklabel,1);
//账户空头持仓
tsellho:tsellholdingex('',stklabel,1);
//是否有未成交单,返回1表示有未成交
is_order:tglobalsubmitex(0,'',stklabel,0);

//如果当前品种有挂单就不执行
if is_order then exit;
else
begin
        
        
        //直接对比前一个周期的理论持仓和当前实际持仓是否存在差异,有差异执行矫正
        
        //多头部分                       
        if ho>=0 and tsellho>0 then tsellshort(1,tsellho,mkt);
        //理论持仓大于0,补仓
        if ho>0 and ho>tbuyho then
        begin
                tbuy(1,ho-tbuyho,mkt);
        end
        //理论持仓大于0,减仓
        if ho>0 and ho<tbuyho then
        begin
                tsell(1,tbuyho-ho,mkt);
        end

        //空头部分
        if ho<=0 and tbuyho>0 then tsell(1,tbuyho,mkt);
        //理论持仓小于0,补仓
        if ho<0 and abs(ho)>tsellho then
        begin
                tbuyshort(1,abs(ho)-tsellho,mkt);
        end
        //理论持仓小于0,减仓
        if ho<0 and abs(ho)<tsellho then
        begin
                tsellshort(1,tsellho-abs(ho),mkt);
        end                        
end

RM那个21:59的,你点开下触发这个信号的监控页面,截图给我看下。就是下面这个界面:
截图202410211125287191.png

回复

使用道具 举报

33

主题

212

帖子

212

积分

Rank: 4

等级: 专业版

注册:
2024-6-21
曾用名:
 楼主| 发表于 2024-10-21 11:59 | 显示全部楼层
菜粕的10月18日21点59分开仓的截图
菜粕2159开仓截图.jpg
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 17:54 , Processed in 0.230694 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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