条件语句作为字符串

时间:2011-04-15 06:11:32

标签: php algorithm trading algorithmic-trading

  

可能重复:
  echo inside if loop

我试图编码交易系统,我有一个进入和退出策略列表。为了减少代码中的行数,我计划将所有策略放入每个入口和出口的数组中。我的数组是这样的

$enter_strats = array(
   array('name'=>"macd",'strat'=>"/$divergence[/$key]>0.1;"),
);

我在上面的数组中包含了条件语句。 当我通过日常价格循环时,如果它们是真的,我必须检查每个进入策略。我的if语句是这样的

foreach($divergence as $key=>$value)
{
    if($trade ==0)
    {
        foreach($enter_strats as $k =>$v)
        {
            $strat = $v['strat'];
            $strat = str_replace("#","$",$strat);
            eval("\$strat = \"$strat\";");
            if ($strat)
            {
                $trade =1;
                $book->save($key,$close[$key],$v['name']);
            }   
        }
    }
}

问题因为它始终是一个字符串,总是将它评估为true。我试图再把一个eval放进去,但它没用。

请帮助解决这个问题,这是非常必要的。非常感谢。

1 个答案:

答案 0 :(得分:0)

那是因为你试图减少代码中的行数。

用于保存数据的数组,而不是代码。

一旦你明白了,你的代码就可以了。

'strat'应该只包含数据。例如,运营商和号码。 在字符串中保留变量名称毫无意义。 特别是如果你已经有了这个变量。 您的代码中已经有$ divergence [$ key]。

所以,'strat'应该只是array('>',0.1)