以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  关于循环语句问题请教  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=159189)

--  作者:泰丞居士
--  发布时间:2017/11/2 19:30:22
--  关于循环语句问题请教
for这种循环语句怎么样,我有点抓狂。
  for i=18 downto 3 do 
      IF HHV(H,i)/LLV(L,i)-1>3/100 then
       begin
       n1:=i;
       exit;
       end
上面是我乱写的,我要实现的目标如下,变量I从18到3,然后如果如果在I周期内的最高价与最低价相比超过3%,就把当下的这个I的值赋予给N1,然后跳出循环。

大虾,搭救一下

--  作者:wenarm
--  发布时间:2017/11/3 8:13:03
--  

 for i=18 downto 3 do begin
      IF HHV(H,i)/LLV(L,i)-1>3/100  then
       begin
        n1:=i; 
       end
       BREAK ;
 
end

--  作者:泰丞居士
--  发布时间:2017/11/3 8:40:06
--  
非常感谢,begin可以这样用
--  作者:泰丞居士
--  发布时间:2017/11/3 11:11:11
--  
进一步请教一下,上面的循环不是每条K线运行一次的,怎么解决?也就是每条k线都判断I的值?
请教,请教

--  作者:yukizzc
--  发布时间:2017/11/3 11:13:51
--  

每条k都会执行的啊


--  作者:泰丞居士
--  发布时间:2017/11/3 11:27:21
--  
for i=18 downto 3 do begin
      IF HHV(H,i*50)/LLV(L,i*50)-1>6/100  then
       begin
        n1:=i;  
       end
       BREAK ; 
  
end
x:n1;

上面的想法是这样,用5分钟线,在18天到3天的区间内,找到最高价和最低价之间超过6%的最少的天数(其中I*50中的50是1天5分钟线的大概数量)。每一条K线都找出来,但是出来的结果全部是18.

--  作者:泰丞居士
--  发布时间:2017/11/3 11:29:33
--  
大侠,指点一下。
--  作者:yukizzc
--  发布时间:2017/11/3 13:39:44
--  

这个是你自己条件问题,一直在满足

n1:=0;

for i=18 downto 3 do begin
      IF ref(c,i)>ref(o,i)  then
       begin
        n1:=i; 
         BREAK ;
       end
      
 
end
x:n1;


--  作者:yukizzc
--  发布时间:2017/11/3 13:40:12
--  

这个条件就可以得到不同的数值

所以这个逻辑层需要您自己去思考,为什么那么容易满足


--  作者:泰丞居士
--  发布时间:2017/11/3 14:12:32
--  
我测试了,跟条件的设定有一定关系,但是不要就满足条件,I=18,要不直接就没有结果。
然后我修改了一下语句
for i=18 downto 3 do begin
      IF (HHV(H,i*50)/LLV(L,i*50)-1)*100<11  then
       begin
        n1:=i;  
       end
       BREAK ; 
  
end
x:n1;
100*(HHV(H,18*50)/LLV(L,18*50)-1);

http://pan.baidu.com/s/1dE7k0Jf

上面这个是图表---好久不用论坛了,不知道怎么上传图方便。。。。
可以看到如果I=18的时候,
100*(HHV(H,18*50)/LLV(L,18*50)-1)
上面这个语句的值一直在变化,有些是不符合<11的条件的,但是最后输出的I,还是18,还是一条直线

好痛苦!一点点小问题!搞了一天!
求救