論理演算子
論理演算子は、複数の条件式を組み合わせた式を判定して true又は falseを返します。
通常、if文などの条件処理と合わせて使われます。
論理演算子 | 説明 |
---|---|
&& | a && b; 条件 a と条件 b の両方の条件が trueであること。 |
|| | a || b; 条件 a と条件 b のどちらかの条件が trueであること。 |
使用例
論理演算子例
論理演算子を使った例です。
①で注文価格の上限、②で注文スプレッドの上限 を設定して、現在の状況が ①以下 且つ ②以下であれば成行注文が実行されるコードです。
コード
// 論理演算子計算例
#property strict
void OnInit() {
double order_price = 100; // ①注文価格の上限
int order_spread = 30; // ②注文スプレッドの上限
int ticket = -1; // 自動付与される注文番号
if (Ask <= order_price && MarketInfo(_Symbol, MODE_SPREAD) <= 30) {
ticket = OrderSend(_Symbol, OP_BUY, 0.01, Ask, 30, 0, 0, "Buy", 1001, 0, clrNONE);
if (ticket == -1) {
Print("注文できませんでした");
} else {
Print("注文番号 ", ticket, "番で注文しました");
}
} else {
Print("注文範囲に入っていません");
}
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
「注文範囲に入っていません」と表示された場合は、①注文価格の上限 と ②注文スプレッドの上限 を適宜変更してみてください。
「if (Ask <= order_price && MarketInfo(_Symbol,MODE_SPREAD) <= 30) {」を
「if (Ask <= order_price || MarketInfo(_Symbol,MODE_SPREAD) <= 30) {」に変えると①以下 又は ②以下となり、注文価格の上限以下か、注文スプレッドの上限以下かのどちらかが成立していれば成行注文されます。