以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  TB中的While函数在金子塔中怎么实现?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=169410)

--  作者:m1978xz
--  发布时间:2019/4/17 15:31:44
--  TB中的While函数在金子塔中怎么实现?
TB中的While函数在金子塔中有类似的么?

比如下边这部分代码:

以下内容为程序代码:

1 Params
2 NumericSeries s_czsc_high;
3 NumericSeries s_czsc_low;
4 NumericSeries s_direction;
5 NumericSeries s_status;
6 NumericSeries s_pen; //11 表示底 10 表示上行 -11表示顶 -10表示下行
7
8 NumericRef pen;
9 Vars
10 Numeric i(0);
11 Begin
12 If(s_status==0){ //如果还没开始则延续状态
13 pen = s_direction*10;
14 }
15 Else{
16 While(i<50){If(s_pen==11 or s_pen==-11){break;}i=i+1;} //回溯50个缠中说禅笔,直至符合条件中断(50可根据周期自定义)
17 If(s_pen==10 or s_pen==-10){ //如果回溯50个仍没符合条件的则延续状态
18 If(s_direction>0){
19 pen = s_direction*10+s_status;
20 PlotString("l","|",s_czsc_low);
21 }


当中的While(i<50){If(s_pen==11 or s_pen==-11){break;}i=i+1;} 
应该怎么改成金子塔的代码啊?

大致就是下边这个流程图里框住部分的需求


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20190417152947.png
图片点击可在新窗口打开查看

就是想往前检查50根K线。直到满足IF语句的条件之后跳出这个循环。



--  作者:FireScript
--  发布时间:2019/4/17 15:36:58
--  
 While  i<50
do
begin
If s_pen=11 or s_pen=-11 then  BREAK;
i:=i+1;
end

具体修改请自行完成,上面就是一个简单的范例。

--  作者:m1978xz
--  发布时间:2019/4/17 15:37:52
--  
原来金字塔也能用While函数啊。谢谢版主回复。