Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]初学序列模式,为何解释错误

1楼
伍星亮 发表于:2011/8/29 13:46:47

RUNMODE:1;


A:=ALL(C<O,3),LINETHICK0;
B:=ANY(L<=O-8,6),LINETHICK0;

D:=ALL(C>O,3),LINETHICK0;
E:=ANY(H>=O+8,6),LINETHICK0;

SHORT:A AND B,LINETHICK0;
LONG:D AND E,LINETHICK0;
msgout(SHORT=1,'short');


FOR I=1 TO DATACOUNT DO
   BEGIN
        IF SHORT=1 THEN
        BEGIN
            FOR I=BARPOS-3 DOWNTO BARPOS-10 DO
            BEGIN
                 IF ISUP()=1 THEN
                    BEGIN
                        CC:OPEN[BARPOS+1];/// 这行解释错误。请问是什么问题
                        BREAK;
                    END
            END
        END       
   END

 

[此贴子已经被作者于2011-8-29 13:47:41编辑过]
2楼
26327756l 发表于:2011/8/29 13:55:10
我试了一下没问题啊
3楼
jinzhe 发表于:2011/8/29 14:02:50
没啥问题,就是CC出不来。。。
4楼
王锋 发表于:2011/8/29 14:16:19

BARPOS一般是用在逐K线模式下精确控制头寸管理使用的,序列模式下你这种使用不正确。

请说明你的意图,看看我们怎么帮你改改

5楼
伍星亮 发表于:2011/8/29 14:54:36

RUNMODE:1;

A:=ALL(C<O,3),LINETHICK0;
B:=ANY(L<=O-8,6),LINETHICK0;

D:=ALL(C>O,3),LINETHICK0;
E:=ANY(H>=O+8,6),LINETHICK0;

SHORT:A AND B,LINETHICK0;
LONG:D AND E,LINETHICK0;
msgout(SHORT=1,'short');


FOR i=1 TO DATACOUNT DO
   BEGIN
        IF SHORT[i]=1 THEN 
        BEGIN
            FOR j=i-3 DOWNTO i-10 DO 
            BEGIN
                 IF CLOSE[j]>=OPEN[j] THEN 
                    BEGIN
                        OO[i]:OPEN[j+1];
                        BREAK;
                    END
            END
        END       
   END

 王峰,我改了以后,前边都没问题了。就是不知道BREAK是否能跳出内部循环。

 

6楼
王锋 发表于:2011/8/29 15:07:41

可以跳出循环,但是BREAK会跳出整个FOR循环,所以不能用在FOR循环嵌套中

7楼
伍星亮 发表于:2011/8/29 15:23:29
那不用FOR的话,怎么做到从又到左扫描,扫到符合条件,对数组赋值以后又再回到循环中呢?
8楼
王锋 发表于:2011/8/29 15:25:19

涉及到一些比较复杂的算法,建义使用VBS公式来解决,就是公式里嵌套VBS语法,传递参数过去。

参考 http://www.weistock.com/bbs/dispbbs.asp?boardid=2&Id=370 高级篇的第11章

[此贴子已经被作者于2011-8-29 15:25:26编辑过]
9楼
伍星亮 发表于:2011/8/29 15:53:43
好的,谢谢
共9 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03516 s, 3 queries.