OrderCloseBy 関数
両建てポジションを同時に決済する関数です。同じ通貨ペアで買いのポジションと売りのポジションがあった場合、決済するポジションのロット数分だけ、反対売買しているポジションのロット数が決済されます。
指定したポジションの注文番号が違う場合、指定した2つのポジションがそれぞれの反対売買でない場合は、決済されません。
データ型と構成・戻り値
bool OrderCloseBy(①,②,③)
戻り値は、同時決済ができた時は true、できなかった時は falseが取得されます。
発生するエラーについては、GetLastError関数で取得することができます。
引数 [3]
OrderCloseBy関数は 3個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | ticket | int | - | - | 決済するチケット番号。 |
② | opposite | int | - | - | 両建てしているもう一方で決済するチケット番号。 |
③ | arrow_color | color | - | clrNONE | 注文位置の矢印の色。設定しない場合は「clrNONE」を入力すると矢印が表示されない。 Webカラーの種類はこちら。 |
使用例
OrderCloseBy 関数による両建て決済
コード
予め買いのポジションと売りのポジションを入れておいてください。注意点として、同じ通貨ペアで買いと売りのポジションが存在する必要があります。
ターミナルから注文番号(チケット番号)を読み取って、次のコードの変数「closeNo1」と「closeNo2」に注文番号を入力してください。
注文番号を入力後、コンパイルすると両建て決済されます。
// OrderCloseBy関数による両建て決済
#property strict
void OnInit() {
int closeNo1 = 127016296; // ① ターミナルの注文番号を入力
int closeNo2 = 127016308; // ② ①の反対売買になる注文番号を入力
bool tf = OrderCloseBy(closeNo1, closeNo2, clrNONE);
if (tf == true) {
Print("両建て決済完了");
} else {
Print("両建て決済できません");
}
}
このコードをコンパイルして実行するのに、自動売買を許可しておく必要があります。
自動売買を許可する方法はこちら、コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)