为何我的wld3无法在$imulator下运行simuscript?

Discussion in 'Wealth-Lab Developer' started by yoyo2000, Sep 23, 2009.

  1. 今天我在wld3环境下,$imulator中,chartscript 选8913 channel breakout,simuscript用以下非常简单的代码:

    var EqPct, PositionSize: integer;
    var Equity: float;

    EqPct := 5;
    Equity := Equity( BarCount -1);

    PositionSize := trunc(Equity*EqPct/100/ 5000);
    SetPositionSizeShares(PositionSize);

    但是却无法顺利通过,显示simuscript中有错,就错在那个equity函数,错误原因是:
    SimuScript Error: (SimuScript Error) Line: 7 Col: 20: List index out of bounds (1522)

    真奇怪,我记得以前好像没有什么问题的,各位帮忙试试看能不能用?

    PS:
    下边有那个8913 channel breakout的script:

    var Bar: integer;

    for Bar := 90 to BarCount() - 1 do
    begin

    if LastPositionActive() then
    if PositionLong(LastPosition() ) then
    SellAtStop( Bar + 1, Lowest( Bar - 1, #Low, 13 ), LastPosition(), '' );
    if not LastPositionActive then
    ShortAtStop( Bar + 1, Lowest( Bar - 1, #Low, 89 ), '')

    else

    if LastPositionActive() and not PositionLong( LastPosition() ) then
    CoverAtStop( Bar + 1, Highest( Bar - 1, #High, 13 ),
    LastPosition(), '' );
    if not LastPositionActive then
    BuyAtStop( Bar + 1, Highest( Bar - 1, #High, 89 ), '' );

    end;
     
  2. 更正一下,那个simuscript有两个硬伤,修改一下。

    var EqPct, PositionSize: integer;
    var fEquity: float;

    EqPct := 5;
    fEquity := Equity( BarCount -1);

    PositionSize := trunc(fEquity*EqPct/100/ 5000);
    SetPositionSizeShares(PositionSize);
     
  3. 大概知道问题在哪里了,这个帖子过时,呵呵。