金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1761|回复: 3

两段代码逻辑相同,只是平多表现形式不同,测试数据相同,结果 不同,为何

[复制链接]

47

主题

96

帖子

96

积分

等级: 免费版

注册:
2024-4-8
曾用名:
发表于 2024-4-8 14:45 | 显示全部楼层 |阅读模式
两段代码逻辑相同,只是平多表现形式不同,测试数据相同,结果 不同,为何?
代码如下


VAR1:=(2*CLOSE+HIGH+LOW+OPEN)/5;
VAR2:=LLV(LOW,34);
VAR3:=HHV(HIGH,34);
SK:=EMA((VAR1-VAR2)/(VAR3-VAR2)*100,13);
SD:=EMA(SK,3);
低吸:=20;
强弱分界:=50;
卖出:CROSS(SK,SD);
买进:CROSS(Sd,Sk);

开仓历时:=OPENBAR>3;   
//开仓历时:=ENTERBARS>3;
pd:=开仓历时;   
buy(买进,0,THISCLOSE);
sell(PD,0,THISCLOSE)
以上,用20230119-202306020 深股数据计算,胜率 为10.87%

-------------------------------------
将平多修改为:sell(OPENBAR>3,0,THISCLOSE),胜率 为39.58%

但两段代码逻辑相同,测试数据相同,结果 不同,为何

回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-4-8 14:58 | 显示全部楼层
1、那是因为语句顺序的问题,openbar返回值在开仓语句的前后是有区别的,你再前面用PD变量传递进去和在开仓语句后面直接用openbar对结果是有影响的。
2、我们建议平仓语句写在开仓语句的前面。
3、SK是我们的函数,不建议作为变量。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

47

主题

96

帖子

96

积分

等级: 免费版

注册:
2024-4-8
曾用名:
 楼主| 发表于 2024-4-8 15:41 | 显示全部楼层
“2、我们建议平仓语句写在开仓语句的前面。”
目前 还在试用版本,请问,平仓、开仓语句 的先后,对执行结果 没影响 吗?
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-4-8 15:45 | 显示全部楼层
你把平仓语句写在前面,那你的SELL语句中用PD或者用OPENBAR>3,那结果都是一样的,因为SELL语句在buy语句前面。但是如果你的sell语句在buy语句后面,那PD和OPENBAR>3就会不同,因为受前面BUY语句影响了OPENBAR的返回值。代码是从前往后按顺序执行的,顺序不同对代码的结果也是有影响的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-16 19:10 , Processed in 0.095538 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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