金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2595|回复: 7

请教下老师:系统自带hans123,收盘平仓,加载后为什么不是收盘平仓,而是十一点平...

[复制链接]

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
发表于 2023-6-15 14:06 | 显示全部楼层 |阅读模式
请教下老师:系统自带hans123,收盘平仓,加载后为什么不是收盘平仓,而是十一点平仓?
如果要收盘平仓,应该怎么写?

has123.png
h123成交_副本.png
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-6-15 14:35 | 显示全部楼层
因为这个模型编写时候 其实是按照北京时间来进行处理的。

我建议你用下面这个代码来替换你这个模型里的处理:

abb:=timetot0(CLOSETIME(0))-time0,NODRAW;//当前K线时间距离收盘K线结束倒计时,在一个K上对应一个固定值
abb3:=timetot0(CLOSETIME(0))-timetot0(dynainfo(207)),NODRAW;//当前时间(当前的北京时间)距离收盘K时间 ,   在最新K上会一直变动。因为这个返回的是具体秒数
tcd:(abb<NMIN2*60 and abb>=0 and (not(ISLASTBAR))) or (ISLASTBAR and  abb3>=0 and abb3<NMIN2*60);



if tcd  then //兼顾实际交易时候的信号和历史回测信号
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);        
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-6-15 15:20 | 显示全部楼层
技术009 发表于 2023-6-15 14:35
因为这个模型编写时候 其实是按照北京时间来进行处理的。

我建议你用下面这个代码来替换你这个模型里的 ...

好的,谢谢老师。
如果说原自带的这个模型是按照北京时间,那么开仓是不是也是按照北京时间?
如果要修改成现在的金字塔版本,是否也要修改开盘时间的代码?
应该如何修改呢?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-6-15 15:27 | 显示全部楼层
金字塔默认是金字塔时间。金字塔时间和北京时间差四小时。

你上面那个开仓使用的时间判断,应该在只有金字塔时间的市场品种上,是无效的。

建议按照北京时间 对应的金字塔时间进行调整。比如早盘九点,对应的第一个K是130100(1分钟且K线是结束时间,所以是130100)

关于金字塔时区:https://www.weistock.com/docs/HE ... 97%B6%E5%8C%BA.html
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-6-15 17:05 | 显示全部楼层
哦。了解,,那如果用同样的思路,平仓也顺推4个小时的话,,那么平仓也就实现了正常收盘平仓,是不是?
修改后完整代码如下,老师看看对不对:
INPUT:SS(1,1,10000,1),NMIN1(30,1,1000,1),NMIN2(10,1,100,1),N1(0,0,100,1);
N:=BARSLAST(DATE<>REF(DATE,1))+1;
开盘30分钟最高价:=VALUEWHEN(TIME<=130000+NMIN1*100,HHV(H,N));//开盘30分钟最高价:=VALUEWHEN(TIME<=090000+NMIN1*100,HHV(H,N));
开盘30分钟最低价:=VALUEWHEN(TIME<=130000+NMIN1*100,LLV(L,N));//开盘30分钟最低价:=VALUEWHEN(TIME<=090000+NMIN1*100,LLV(L,N));
手数:=SS;
上轨:开盘30分钟最高价+N1*MINDIFF;
下轨:开盘30分钟最低价-N1*MINDIFF;
//条件
开多条件:=C>上轨;
开空条件:=C<下轨;
//交易系统
IF TIME>130000+NMIN1*100 AND TIME<190000-10*100 THEN
BEGIN
  开多:BUY(开多条件 AND HOLDING=0,手数,MARKET);
  开空:BUYSHORT(开空条件 AND HOLDING=0,手数,MARKET);
END
//平仓
IF TIME>=190000-NMIN2*100 THEN  //IF TIME>=150000-NMIN2*100 THEN
BEGIN
  收盘平多:SELL(1,手数,MARKET);
  收盘平空:SELLSHORT(1,手数,MARKET);
END

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值
回复

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-6-15 17:09 | 显示全部楼层
技术009 发表于 2023-6-15 14:35
因为这个模型编写时候 其实是按照北京时间来进行处理的。

我建议你用下面这个代码来替换你这个模型里的 ...

另外老师提供的这个代码,是否和修改金字塔时间后的代码实际运行和回测效果一样?

我的理解是老师提供的那个代码,是不管金字塔时间还是北京时间,都能达到收盘平仓效果。
而修改金字塔时间后的代码只能运行在金字塔时间框架下,,而要运行北京时间老代码,就必须要在软件里面设置北京时间后,才可以。。对不对?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-6-15 17:13 | 显示全部楼层
差不多,但是那段代码在实际运行中控制的更精细。实际运行中可以控制到多少秒,不过回测上和你那样改差不多。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

39

主题

147

帖子

147

积分

Rank: 2

等级: 标准版

注册:
2023-6-14
曾用名:
 楼主| 发表于 2023-6-15 17:22 | 显示全部楼层
好的,谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-16 04:51 , Processed in 0.157406 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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