本ブログは、MetaTrader を利用して、EA プログラムを自作紹介するサイトです。
決して儲かるシステムを紹介するものではありませんのであしからず・・・
もし、記事中に嘘偽りを発見された方、ご連絡頂けると幸いです。
なお、過去に作成した EA プログラムの作り方はこちらになります。

Loop_Entry : 同じ指値エントリーを繰り返し実行するプログラムです。
estTurn : 高値(安値)で反対売買を実行するプログラムです。

2009年2月9日月曜日

OrderClose の書き方

OrderSelect() でのポジション取得については大体わかりました。

次に、決済するための OrderClose() について調べてみます。

OrderClose( ticket, lots, price, slippage, color) ;

ticket:チケット番号を指定する
lots:決済するロット数(取引数)を指定する
price:決済価格を指定する
slippage:スリッページを pips で指定する
color:チャート上に表示する決済矢印の色を指定する

で、実際にどのように書くかというと

OrderClose(1234,0.1,90.50,3,Red) ;

となります。

上記内容は大体わかりましたが、一つだけ疑問が・・・

チケット番号はどのようにして調べるのでしょうか?

チケット番号とは、実は MetaTrader 画面で見られる「注文番号」のことです。

とはいっても、サーバーが勝手に割り振る番号なので、どの注文に何番が割り振られるかをプログラムで事前に予測し割り振られた番号を保持するのは面倒です。

そこで、OrderTicket() を利用します。

OrderTicket() は、OrderSelect()によって取得したポジションのチケット番号を返してくれるものです。

使い方としては、

OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
OrderClose(OrderTicket(),0.1,90.50,3,Red) ;

のように、OrderSelect()とセットで利用します。

つまり、OrderSelect() でポジションを取得し、取得したポジションのチケット番号をOrderClose() に指定するということです。

これで、保有ポジションを取得し、決済する方法はわかりました。

次回は実際にプログラムを作ってみたいと思います。

2 件のコメント:

匿名 さんのコメント...

初めて訪問した者です。

注文に関する部分が
本を買ってもよく分からなかったのですが、
全体像と合わせて順序立てて書いてあって、とても分かりやすかったです。
ありがとうございました。

匿名 さんのコメント...

初めて訪問した者です。

注文に関する部分が
本を買ってもよく分からなかったのですが、
全体像と合わせて順序立てて書いてあって、とても分かりやすかったです。
ありがとうございました。

参考になりました? よろしければご協力ください。

にほんブログ村 為替ブログへ 人気ブログランキング【ブログの殿堂】