金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3265|回复: 3

如何取得在条件成立的时候的日期

[复制链接]

171

主题

475

帖子

485

积分

Rank: 2

等级: 标准版

注册:
2021-5-31
曾用名:
发表于 2021-11-25 01:54 | 显示全部楼层 |阅读模式
我想写一个控制开仓的变量TZKC是一个全局变量,TZKC=1就控制不开仓。当DP4条件出现后,TZKC需要等30天后才在持仓为0 的情况下恢复为0.我写如下,发现是错的
VARIABLE:TZKCDATE:=0;       
IF         多赢DP4=1 THEN TZKCDATE:=CURRENTDATE;


IF HOLDING=0 AND CURRENTDATE>TZKCDATE+30 THEN BEGIN
        TZKC:=0;
        END       

前面取得的日期并不是多赢DP4=1的日期,请问应该怎么修改。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-11-25 08:30 | 显示全部楼层
1.CURRENTDATE 只有最新值,无论在历史K最新K都是一样的值。
你在图表上应该直接用DATE

2.“CURRENTDATE>TZKCDATE+30 ”
然后日期也不能直接这样计算日期差啊。

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

使用道具 举报

37

主题

9872

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2021-11-25 08:43 | 显示全部楼层
CURRENTDATE是计算机本地时间,不是k线时间。
不过你这种设计逻辑也不对。日期不能直接加30,因为进制不同。

[PEL] 复制代码
VARIABLE:TZKC:=0;       
TZKCDATE:VALUEWHEN(多赢DP4=1,date);
bars:=SUMBARS(date<>ref(date,1),30);//求出距离当前位置前30天k线数量。
date_diff:ref(date,bars);//求出距离当前位置前30天的日期。

IF HOLDING=0 AND TZKCDATE=date_diff THEN BEGIN
        TZKC:=0;
END


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

使用道具 举报

171

主题

475

帖子

485

积分

Rank: 2

等级: 标准版

注册:
2021-5-31
曾用名:
 楼主| 发表于 2021-11-25 15:32 | 显示全部楼层
谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-11 14:12 , Processed in 0.125959 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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