金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3656|回复: 16

向老师求助

[复制链接]

4

主题

20

帖子

30

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
发表于 2023-3-6 13:40 | 显示全部楼层 |阅读模式
请老师指教如何写如下这两个问题:  IF  ACOND  THEN BEGIN    停顿8秒钟    END;
                                                     EXIT;
                                                    第二遍从头快刷到最上面这行时,如何跳过以上这两行直接刷下面的代码。
以上是两个问题,一是如何写停顿8秒钟。二最重要的是如何能让程序识别出,当第二遍从头刷时,如何能跳过以上这两行,直接刷下面的代码。



补充内容 (2023-3-3 21:24):
每当第一遍刷时都刷以上这两行,但当下次刷时就跳过这两行,直接刷下面的内容。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-6 13:59 | 显示全部楼层
1. 第一个问题,目前有sleep函数,但是这个函数造成的副作用很大,因为它是把所有动作都暂停了。包括当前在运行的其他策略。   因此第一个需求 可以认为基本没有合适的解决方案。  我觉得较好的方式 是记录一个时间,然后等时间差达到指定秒数后执行后面的。

2. 一般只运行一次的代码,我们都是用time进行记录。

GLOBALVARIABLE:mark:=0;

if time>mark then
begin
mark:=time;
//在每个K上只执行一次的动作
end

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

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-6 14:07 | 显示全部楼层
汇总下来:
[PEL] 复制代码
GLOBALVARIABLE:t1:=0,mark:=0;


if time>mark and ISLASTBAR  then 
begin 
t1:=CURRENTTIME;
mark:=time;	
MSGOUT(ISLASTBAR,'开始');
end  

if CURRENTTIME-t1<=8 and ISLASTBAR then exit;


MSGOUT(1,'结束');


做不到那么精准时间,但是差不多:
截图202303061407399311.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

4

主题

20

帖子

30

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-3-6 16:55 | 显示全部楼层
   老师您看这样写有问题吗?请纠正。多谢!

      GLOBALVARIABLE:AA=0;

      if   close010>ff   then   goto skipa@;
            
      if  AA=0 then  AA:=CURRENTTIME;
   
      if   close010<ff   then  TIMETOT0(CURRENTTIME)-TIMETOT0(AA)>=5;  
      
      exit;
      
skipa@;
            


补充内容 (2023-3-6 16:59):
这能起到“停顿”5秒钟的作用吗?另外,当刷下一遍时可否能跳过“停顿”这一段的代码?请您纠正写法的错误之处。多谢!
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-6 17:01 | 显示全部楼层
你这个写法有点问题,你这个并没有控制好。

我建议就用我那个3楼范例代码就行了。我那个范例代码,过了前面的8秒之后,就不会再执行退出动作了。

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

使用道具 举报

4

主题

20

帖子

30

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-3-6 19:03 | 显示全部楼层
我是想若还是不满足条件,再刷就再停顿5秒,什么时候满足了条件时,就不用exit了,下次就 goto stip了。不知若如此的话,我以上的写法有什么不对之处吗?因我不是搞编程的,写法上很小儿科,请老师详细指教写细一点,我就照搬了。多谢了!

补充内容 (2023-3-6 19:05):
写错了,应是skipa@.
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-7 09:02 | 显示全部楼层
本帖最后由 技术009 于 2023-3-7 09:04 编辑

你这个条件可能这个K开始时候是满足的,中间突然不满足了。然后又满足了,然后又不满足了。每次不满足都停止执行代码?
你这个最好把所以情况考虑到,以及相应情况的处理思考下。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

4

主题

20

帖子

30

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-3-7 11:56 | 显示全部楼层
请问老师,MSGOUT(ISLASTBAR,'开始');   MSGOUT(1,'结束');   这两行是否可以不用写上?另外您写的   mark:=time;  不知有何用途?请您再仔细看一下。
回复

使用道具 举报

4

主题

20

帖子

30

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2023-3-7 12:05 | 显示全部楼层
另外,TIMETOT0(CURRENTTIME)是否不用TIMETOT0只用CURRENTTIME也行?

补充内容 (2023-3-7 12:07):
mark:=time;有什么用?是否可以不要?请您再仔细看一下。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-3-7 12:45 | 显示全部楼层
首先,我需要明确你完整的需求。我才能继续实现代码。目前的情况是,有些地方你没有明确下来。你最好看下前面我说的内容。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 23:43 , Processed in 0.132448 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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