金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3067|回复: 5

关于历史阶段选股问题

[复制链接]

1

主题

3

帖子

3

积分

Rank: 1

等级: 新手上路

注册:
2022-1-17
曾用名:
发表于 2022-1-17 10:31 | 显示全部楼层 |阅读模式
Variable:N=0;
IF CLOSE>REF(CLOSE,1) AND REF(CLOSE,1)<REF(CLOSE,2) AND REF(CLOSE,2)<REF(CLOSE,3) THEN BEGIN
       
    FOR X=2 TO 30 DO
    begin
            if REF(CLOSE,X)<=REF(CLOSE,X+1) THEN begin
            N:=X;       
            END
        ELSE BEGIN

        break;       
        END       
    END
            
END
AA:=N>=5;
CC:=REF(CLOSE,N)/REF(CLOSE,N+15)>=1.2;
AA AND CC

如果用上面的公式选股,时间上采用历史阶段选股,两个问题:第一发现CLOSE总是指的是当日的收盘价,而不是指定的历史阶段的某日的收盘价,该问题该如何解决?第二该公式中由于有REF函数,系统提示只能序列模式,而不能采用逐K线模式,这是为什么?REF函数应该不算是未来函数吧?
[img]file:///C:\Users\asus\AppData\Roaming\Tencent\Users\504757808\QQ\WinTemp\RichOle\@N_YSCT4N2H[L7UCIZ{LYQP.png[/img]





回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-1-17 10:44 | 显示全部楼层
采用下标方式获取历史的C

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

使用道具 举报

1

主题

3

帖子

3

积分

Rank: 1

等级: 新手上路

注册:
2022-1-17
曾用名:
 楼主| 发表于 2022-1-17 11:22 | 显示全部楼层
如果用C[i]来表示收盘价序列,又如何知道历史阶段选股种的某日对应的i等于多少呢?
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-1-17 12:36 | 显示全部楼层
你的原始需求是怎样的?判断某个股票历史上 是否满足指定条件 然后再选出?
似乎没有必要用循环吧。

用统计函数就可以了吧BARSSINCE2()  表示多少周期内第一个满足条件的K距离当前的位置。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

3

帖子

3

积分

Rank: 1

等级: 新手上路

注册:
2022-1-17
曾用名:
 楼主| 发表于 2022-1-17 14:22 | 显示全部楼层
需求是这样的:利用历史阶段选股,选出在历史上的某段时间,找出能在10个交易日内股价上升20%以上,然后每日连续下跌,回调下跌天数大于等于5天,然后再开始上升1天的股票。将满足这样形态的股票选择出来。
因为回调天数大于等于5,所以不知道是几天,所以只能用循环。
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-1-17 14:45 | 显示全部楼层
不用循环计算连跌天数。用全局变量:

[PEL] 复制代码
VARIABLE:mark:=0;
cd:c<ref(c,1);

if cd then mark:=mark+1;
if not(cd) then mark:=0;

连续周期数:mark;


选股条件1:CLOSE>REF(CLOSE,1) AND REF(CLOSE,1)<REF(CLOSE,2) AND REF(CLOSE,2)<REF(CLOSE,3);
选股条件2:mark>=5;
选股条件3:REF(CLOSE,mark)/REF(CLOSE,mark+15)>=1.2;
可能还需要调整下,因为我也是从你代码按照我理解的思路写出来的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 00:34 , Processed in 0.369833 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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