金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 小马哥

怎么提高回测速度

[复制链接]

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2022-9-22 13:39 | 显示全部楼层
本帖最后由 技术010 于 2022-9-22 13:43 编辑

1、你这个只能调试开平仓条件了啊,你可以在图上锁定和回测一样的时段,这样才可以在图上看条件是否符合条件了啊,否则数据量不同,图表和回测的结果也是有差异的啊。
2、你这个全局变量没法控制每一天的吧,你这开完仓之后,后面永远也不会开仓了啊,至少新的一天要初始化一次吧。
3、这个平仓条件合不合理这个不知道的,具体要看你的平仓思路啊。
4、可以参考:(C-LLV(L,N*20))/LLV(L,N*20)>M%
5、另外图表上我们也是不建议使用太小周期的K线,一旦计算效率根不上,很容易会引起信号闪烁无法正常报单的情况的。

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

使用道具 举报

12

主题

58

帖子

58

积分

等级: 免费版

注册:
2022-9-6
曾用名:
 楼主| 发表于 2022-9-22 16:27 | 显示全部楼层
再请教老师怎么一天初始化一次全局变量呢?  能否帮忙写一行初始化的命令呢,不胜感激   !!!           “你这个全局变量没法控制每一天的吧,你这开完仓之后,后面永远也不会开仓了啊,至少新的一天要初始化一次吧。”  
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2022-9-22 16:30 | 显示全部楼层
参考如下范例:
variable:flag=0;
if todaybar=1 then flag:=0; //每天的第一根K线的位置,flag初始化为0,这样条件满足就可以允许再次开仓了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

12

主题

58

帖子

58

积分

等级: 免费版

注册:
2022-9-6
曾用名:
 楼主| 发表于 2022-9-22 19:18 | 显示全部楼层
感谢老师
回复

使用道具 举报

12

主题

58

帖子

58

积分

等级: 免费版

注册:
2022-9-6
曾用名:
 楼主| 发表于 2022-9-23 10:23 | 显示全部楼层
老师:通过图表显示,我发现程序不出信号的问题所在了,有一个疑惑的地方,请教老师,条件1不成功,条件2成功,但是很慢,帮忙分析一下
条件1:
D1:=CALLSTOCK('',vtCLOSE,6,-1);//昨日收盘价
MA250:=MA(D1,250);
cross(D1,MA250);//  这里的上叉,跟随不同的主图周期而变化,但是明明我取了日周期的数据('',vtCLOSE,6,-1),我期待的是一个日线的上叉作为参考,是小周期调用日线上叉MA250的信号作为参考。

条件2:
Dy1:STKINDI('','MA.ma1',0,6,0);     //ma1参数为1,也就是当天收盘价
Dy250:STKINDI('','MA.ma4',0,6,0);  //ma4,参数取250,即250日均线
cross(Dy1,Dy250);  //这样能获得真正 的日线 上叉 信号,无论主图处于什么周期都可以,保持日线上差的状态,但调用MA指标回测速度超慢     
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2022-9-23 10:29 | 显示全部楼层
1、你的MA250和Dy250就不是同一个定义啊,你的D1是往前偏移了一根,算出来的MA250就不包含当天的日线,而你的Dy250是包含当天的日线的,使用的数据都不同,结果都会不一样的。
2、引用的语句数量越多,效率越低。而且stkindi的效率本来就低,可以尝试换成引用操作符来引用,效率会比stkindi要高。
https://www.weistock.com/docs/PE ... 1%A8%E6%9C%9F.html#引用操作符
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

12

主题

58

帖子

58

积分

等级: 免费版

注册:
2022-9-6
曾用名:
 楼主| 发表于 2022-9-23 10:51 | 显示全部楼层
偏移一天,这个可以修正一下,但我疑惑且解决不了的地方是D1:=CALLSTOCK('',vtCLOSE,6,-1);//昨日收盘价,,这一行命令,没有给一个稳定的日收盘价输出给到我,让我计算一个日线交叉信号,在多秒线图表调用;MA(D1,250)它随不同图表周期而变化
回复

使用道具 举报

12

主题

58

帖子

58

积分

等级: 免费版

注册:
2022-9-6
曾用名:
 楼主| 发表于 2022-9-23 10:53 | 显示全部楼层
调用函数MA.ma1,MA.ma4,  是因为在多秒线图表调用;MA(D1,250)它随不同图表周期而变化,不能用
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2022-9-23 11:04 | 显示全部楼层
这个250参数是3秒周期上的参数啊,表示的是250根3秒周期的K线数量,不是250个日线啊,如果你要计算250日日线的均价,那应该先算均价,再引用啊,而不能先引用,再计算均价。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

12

主题

58

帖子

58

积分

等级: 免费版

注册:
2022-9-6
曾用名:
 楼主| 发表于 2022-9-23 11:55 | 显示全部楼层
谢谢,明白了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-5 03:34 , Processed in 0.165787 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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