金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
12
返回列表 发新帖
楼主: 羊洋

思路求助

[复制链接]

55

主题

179

帖子

179

积分

等级: 免费版

注册:
2021-11-18
曾用名:
 楼主| 发表于 2022-8-25 17:19 | 显示全部楼层
这个程序怎么样修改才能跑的通啊?
回复

使用道具 举报

55

主题

179

帖子

179

积分

等级: 免费版

注册:
2021-11-18
曾用名:
 楼主| 发表于 2022-8-25 17:50 | 显示全部楼层
但是编辑器提示:
函数不能在IF THEN FOR循环控制语句中被引用的原理和解决方案

想问老师,这种语句运行会不会正常啊?

补充内容 (2022-8-25 17:51):
提示:
第 26 行,REF 函数在循环语句中可能会带来风险。
回复

使用道具 举报

55

主题

179

帖子

179

积分

等级: 免费版

注册:
2021-11-18
曾用名:
 楼主| 发表于 2022-8-26 10:13 | 显示全部楼层
我目前调整为这样的语句:
VARIABLE:up:=0,down:=0;

movavg_long:ma(close,N);

small_len:=intpart(n/30);
movavg_small:ma(close,small_len);

if movavg_small>movavg_long then
begin
up:=up+1;
down:=0;
end

if movavg_small<movavg_long then
begin
up:=0;
down:=down+1;
end

len:=Intpart(N/2);// 这是允许的最大的连续距离
mark:1;

check_len:=N-len; //这是检查的距离

FOR i = 0 to check_len-1 DO
BEGIN
        IF ((ref(up,i)>=len) or (ref(down,i)>= len)) THEN
                BEGIN
                        mark :=0;
                        break;
                END
END;

目前运行起来看起来是好的,不过每次编译都提示:
1、循环里面使用了REF,可能会影响
2、循环里面使用了break,对于逐K模式会有影响。(我后面还是要加入买卖信号的,所以还是选择了逐K模式)

这两个提示,我目前肉眼观察,好像没造成什么问题。想问会如提示里面的说法,实际是会算错的吗?
回复

使用道具 举报

37

主题

9972

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2022-8-26 10:44 | 显示全部楼层
没事的,风险提示而已。不代表不符合语法条件。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-8-30 09:48 | 显示全部楼层
没必要写循环吧。你直接用hhv 统计最大的up和down就行了。

只是 如果某一条down或者up 是从60周期外延续进来的 这个是要单独排除的。这个也简单,直接ref到第20K位置,判断是否 全满足down或者up  就是用all函数直接判断 即可。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-8 04:50 , Processed in 0.176021 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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