OrderSelect()関数の戻り値

OrderSelect()関数がどんな値を返すかというと、リファレンスによると、

 

It returns true if the function succeeds, otherwise falses.

 

とあり、「成功すれば、trueを、失敗すると、falseを返す」ということになります。

 

また、このようなbool型の関数の戻り値を整数型の変数に代入すると、成功すれば、「1」を、失敗すれば、「0」を返します。

 

今さら、なぜ、そんなことを記事にしたかというと、この関数は、ポジションが一つもないときはどんな値を返すのだろうか、ということが気になったからです。

 

さっそく、実験してみました。

上のようなインジケーターを用意しました。

 

これを実行すると、チャート左上に、

 

①ポジション数

②OrderSelect()関数の戻り値

 

が表示され、もしも、OrderSelect()関数が実行されなかったときは、②は「-1」と表示される仕組みになっています。

 

まず、ポジションを2つとったところ、

上のように出ました。

 

左の数字がポジション数で、右がOrderSelect()関数の結果で、この場合、成功したことを表しています。

 

この後、ポジションを2つとも決済してみました。すると、

ちょっと見づらいですが、右の数字は「-1」と出ました。

 

つまり、OrderSelect()関数は、ポジションが一つもないときは、「true」も「false」も返さない、ということになり、これは厳密に言うと、「そもそも実行されなかった」というべきなのかも知れません。

 

不思議な関数ですね。