以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  【新手上路】报错说缺少分号,我逐行检查过了,每一行都有,想问一下是什么情况  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=154728)

--  作者:QuantMe
--  发布时间:2017/6/5 10:49:51
--  【新手上路】报错说缺少分号,我逐行检查过了,每一行都有,想问一下是什么情况
 如题,麻烦帮我看一下问题出在哪里,谢谢!!!!!!!

代码如下:
INPUT : t20( 20 , 15 , 60 , 1 ) ;
INPUT : t10( 10 , 10 , 30 , 1 ) ;
INPUT : atrLen( 20 , 15 , 60 , 1 ) ;


nT := 1 ;
buyOrderThisBar := 0 ;

VARIABLE : _debug := 1 ;
VARIABLE : _tDebug := 1 ;
VARIABLE : _debugOut := 0 ;

VARIABLE : myEntryPrice := 0 ;
VARIABLE : myExitPrice := 0 ;
VARIABLE : turtleUnits := 0 ;
VARIABLE : position := 0 ;
VARIABLE : posNum   := 0 ;

VARIABLE : t20H := CLOSE ;
VARIABLE : t20L := CLOSE ;
VARIABLE : t10H := CLOSE ;
VARIABLE : t10L := CLOSE ;
VARIABLE : onePercentAssest := Asset * 0.01 ;

t20H := REF( HHV( H , t20 ) , 1 ) ;
t20L := REF( LLV( H , t20 ) , 1 ) ;
t10H := REF( HHV( H , t10 ) , 1 ) ;
t10L := REF( LLV( H , t10 ) , 1 ) ;

avgTR := REF( MA( TR , atrLen ) , 1 ) ;

IF BARPOS = 1 THEN BEGIN
    position = 0 ;
END

IF     position = 0     AND     BARPOS > t20     AND     H > L     THEN BEGIN
    LONG := H > t20H ;
    SHORT := L < t20L ;
   
    IF (LONG AND SHORT) THEN BEGIN
    END
    ELSE BEGIN
        IF LONG THEN BEGIN
            myEntryPrice := IF( OPEN > t20H + MINDIFF , OPEN , t20H + MINDIFF ) ;
            posNum          := FLOOR( onePercentAssest / avgTR ) ;
            N             := avgTR ;
            BUY( _debug , posNum , LIMITR , myEntryPrice ) ;
            position     := 1 ;
            turtleUnits  := 1 ;
            buyOrderThisBar := 1 ;
        END
       
        IF SHORT THEN BEGIN
            myEntryPrice := IF( OPEN < t20L - MINDIFF , OPEN , t20L - MINDIFF ) ;
            posNum       := FLOOR( onePercentAssest / avgTR ) ;
            N              := avgTR ;
            BUYSHORT( _debug , posNum , LIMITR , myEntryPrice ) ;
            position     := -1 ;
            turtleUnits  := 1 ;
            buyOrderThisBar    := 1 ;
        END
    END
END

--  作者:QuantMe
--  发布时间:2017/6/5 10:51:08
--  
 
IF position = 1      AND     BARPOS > t20     AND     H > L      THEN BEGIN
    
    WHILE ( H > myEntryPrice + 0.5 * N ) AND ( turtleUnits < 4 ) DO BEGIN    // 加仓
        myEntryPrice := IF( OPEN > myEntryPrice + 0.5 * N , OPEN , myEntryPrice + 0.5 * N ) ;
        myEntryPrice := CEILING( myEntryPrice / MINDIFF ) * MINDIFF ;
        posNum         := FLOOR( onePercentAssest / N ) ;
        BUY( _debug , posNum , LIMITR , myEntryPrice ) ;
        turtleUnits  := turtleUnits + 1 ;
        buyOrderThisBar := 1 ;
    END
    
    LONGEXIT1 := LOW < t10L ;
    IF LONGEXIT1 AND buyOrderThisBar = 0 THEN BEGIN
        myExitPrice := IF( OPEN < t10L - MINDIFF , OPEN , t10L - MINDIFF ) ;
        SELL( _debug , 0 , LIMITR , myExitPrice ) ;
        position     := 0 ;
        turtleUnits := 0 ;
    END
    
    LONGEXIT2 := LOW < myEntryPrice - 2 * N ;
    IF LONGEXIT2 AND POSITION = 1 AND buyOrderThisBar = 0 THEN BEGIN
        myExitPrice    := IF( OPEN < myEntryPrice - 2 * N , OPEN , myEntryPrice - 2 * N ) ;
        myExitPrice := FLOOR( myExitPrice / MINDIFF ) * MINDIFF ;
        SELL( _debug , 0 , LIMITR , myExitPrice ) ;
        position     := 0 ;
        turtleUnits := 0 ;
    END
    
    
END
ELSE
IF position = -1    AND     BARPOS > t20    AND        H > L     THEN BEGIN

    WHILE  LOW < myEntryPrice - 0.5 * N  AND    BARPOS > t20 AND     H > L DO BEGIN
        myEntryPrice    := IF( OPEN < myEntryPrice - 0.5 * N , OPEN , myEntryPrice - 0.5 * N  ) ;
        myEntryPrice    := FLOOR( MYENTRYPRICE /  MINDIFF ) * MINDIFF ;
        posNum            := FLOOR( onePercentAssest / N ) ;
        BUYSHORT( _debug , posNum , LIMITR , myEntryPrice ) ;
        turtleUnits     := turtleUnits + 1 ;
        buyOrderThisBar    := 1 ;
    END
    
    SHORTEXIT1 := HIGH > t10H ;
    IF SHORTEXIT1     AND buyOrderThisBar = 0 THEN BEGIN
        myExitPrice     := IF( OPEN > t10H + MINDIFF , OPEN , t10H + MINDIFF ) ;
        SELLSHORT(    _debug , 0 , LIMITR , myExitPrice ) ;
        postiion        := 0 ;
        turtleUnits        := 0 ;
    END
    
    SHORTEXIT2 := HIGH > myEntryPrice + 2 * N ;
    IF SHORTEXIT2    AND position = -1    AND buyOrderThisBar = 0 THEN BEGIN
        myExitPrice        := IF( OPEN > myEntryPrice + 2 * N  , OPEN , myEntryPrice + 2 * N  ) ;
        myEntryPrice    := CEILING( myEntryPrice / MINDIFF ) * MINDIFF ;
        SELLSHORT(    _debug , 0 , LIMITR , myExitPrice ) ;
        position         := 0 ;
        turtleUnits        := 0 ;
    END
    
    
END


CONTINUELINE@
资产        : ASSET , LINETHICK0 ;
可用现金    : CASH(0) , LINETHICK0 ;
持仓量        : HOLDING , LINETHICK0 ;
交易次数    : TOTALDAYTRADE , LINETHICK0 ;

IF _DEBUGOUT>0 THEN BEGIN

    DEBUGFILE2(\'C:\\DEBUGFILE.TXT\',\'BARPOS=%.0F\' ,BARPOS,NT ) ;
    DEBUGFILE2(\'C:\\DEBUGFILE.TXT\',\'T20HI=%.2F\' ,T20HI ,NT) ;
    DEBUGFILE2(\'C:\\DEBUGFILE.TXT\',\'N=%.2F\' ,N ,NT) ;
    DEBUGFILE2(\'C:\\DEBUGFILE.TXT\',\'CLOSE=%.2F\' ,C ,NT) ;
    DEBUGFILE2(\'C:\\DEBUGFILE.TXT\',\'POSITION=%.0F\' ,POSITION,NT ) ;
    DEBUGFILE2(\'C:\\DEBUGFILE.TXT\',\'TURTLEUNITS=%.0F\' ,TURTLEUNITS,NT ) ;
    DEBUGFILE2(\'C:\\DEBUGFILE.TXT\',\'MYENTRYPRICE=%.0F\' ,MYENTRYPRICE ,NT) ;
    DEBUGFILE2(\'C:\\DEBUGFILE.TXT\',\'MYEXITPRICE=%.0F\' ,MYEXITPRICE ,NT) ;
    
END //IF

当前持仓    : HOLDING , COLORGRAY , LINETHICK0 ;
当前资产    : ASSET , NOAXIS , COLORGRAY ;
--  作者:pyd
--  发布时间:2017/6/5 12:48:47
--  

这个的问题吧


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


--  作者:QuantMe
--  发布时间:2017/6/5 13:02:59
--  
哦哦哦,原来是这样!

我第一次用不太理解这个label,以为放在这里也没有关系。

谢谢啦!!

图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看