次に、決済するための OrderClose() について調べてみます。
OrderClose( ticket, lots, price, slippage, color) ;
ticket:チケット番号を指定する
lots:決済するロット数(取引数)を指定する
price:決済価格を指定する
slippage:スリッページを pips で指定する
color:チャート上に表示する決済矢印の色を指定する
で、実際にどのように書くかというと
OrderClose(1234,0.1,90.50,3,Red) ;
となります。
上記内容は大体わかりましたが、一つだけ疑問が・・・
チケット番号はどのようにして調べるのでしょうか?
チケット番号とは、実は MetaTrader 画面で見られる「注文番号」のことです。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig55NAr20O8c-n4SJNTswqny7lLPB839lErwE7jcdDkSZh8msWLbTuDPIQ8RJcMmRK889fcoLOwW_xspp1F2t2tl3xsbvJS0zLHjWmedP4Y1rMmULLzov3FaG8LHtKcYl1sqaitsa9kDo/s400/pic0.bmp)
とはいっても、サーバーが勝手に割り振る番号なので、どの注文に何番が割り振られるかをプログラムで事前に予測し割り振られた番号を保持するのは面倒です。
そこで、OrderTicket() を利用します。
OrderTicket() は、OrderSelect()によって取得したポジションのチケット番号を返してくれるものです。
使い方としては、
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
OrderClose(OrderTicket(),0.1,90.50,3,Red) ;
のように、OrderSelect()とセットで利用します。
つまり、OrderSelect() でポジションを取得し、取得したポジションのチケット番号をOrderClose() に指定するということです。
これで、保有ポジションを取得し、決済する方法はわかりました。
次回は実際にプログラムを作ってみたいと思います。
2 件のコメント:
初めて訪問した者です。
注文に関する部分が
本を買ってもよく分からなかったのですが、
全体像と合わせて順序立てて書いてあって、とても分かりやすかったです。
ありがとうございました。
初めて訪問した者です。
注文に関する部分が
本を買ってもよく分からなかったのですが、
全体像と合わせて順序立てて書いてあって、とても分かりやすかったです。
ありがとうございました。
コメントを投稿