0

重複の可能性:
ifループ内でエコー

トレーディングシステムをコーディングしようとしていますが、エントリー戦略とエグジット戦略のリストがあります。コードの行数を減らすために、すべての戦略をエントリとエグジットごとに配列に入れることを計画しました。私の配列はこんな感じです

$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と評価されている場合は常に問題になります。私はもう1つの評価を中に入れようとしましたが、それは役に立たないのです。

この問題を解決するのを手伝ってください、それは非常に重要です。どうもありがとう。

4

1 に答える 1

0

これは、コードの行数を減らそうとしているためです。

コードではなく、データを保持するための配列。

それを理解するとすぐに、コードは問題ありません。

'strat' にはデータのみを含める必要があります。たとえば、演算子と番号。変数名を文字列に保持しても意味がありません。特に、この変数が既にある場合。コードにはすでに $divergence[$key] があります。

したがって、「strat」はちょうどarray('>',0.1)

于 2011-04-15T06:20:54.600 に答える