• ベストアンサー

MT4のポジションの保有状況の確認方法について

MT4で現在取得中のポジションが、逆指値や利益確定注文に到達し、 既に決済されているかどうか確認するコードを教えて頂けないでしょうか。 いろいろなやり方がありそうですが、複雑な方法ではなく、 チケットNoを直接指定し、確認できるなど、わかりやすそうなのが良いです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • fhat6014
  • ベストアンサー率94% (34/36)
回答No.1

OrderType()とOrderCloseTime()で判別できそうです。 OrderSelect(ticket,SELECT_BY_TICKET); if(OrderType()<=1&&OrderCloseTime()==0){ //----保有中のポジション } if(OrderType()>1&&OrderCloseTime()==0){ //----待機注文 } if(OrderType()<=1&&OrderCloseTime()!=0){ //----決済済みポジション } if(OrderType()>1&&OrderCloseTime()!=0){ //----削除された待機注文 }

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • FXの指値と逆指値について(初歩の初歩の初歩)

    FXの本を読みながらデモ取引で勉強中なのですが 指値と逆指値、OCO注文の仕方とメリットがいまいちよくわかりません。 ポジションを持つための動作を「発注」 利益を確定させるための動作を「決済」と呼ぶとすると 指値、逆指値は2つとも自分が決めたところで「発注」することなのでしょうか それとも「ストリーミング」などで発注しポジションを持っているときに OCO注文をして、 例えば出かけたり寝たりしてる間に 利益を確定、または損を最小限に抑えるために あらかじめ決めたところで「決済」させるものなのでしょうか よろしくおねがいします。

  • MT4のSendOrderについて

    最近MetaTrader4(MT4)に興味を持ち始めたものです。 早速試しに簡単なEAを作ってみているのですが、 OrderSendを行う際に思う様に約定できずこまっています。 詳細としてはOrderSendにて、成行注文と同時に利益確定注文、 損切り注文をだしていますが、常にチケットが「-1」で約定する気配がありません。 問題となっている部分は利益確定と損切り注文の部分である可能性が非常に高いです。 通貨:EUR/USD デモ口座:OLD、Forex ※OLDは成行注文と利益確定、損切りを同時に出せない? 一部買い注文する部分のソースを抜粋します。 //損切、利確用変数初期化 double TakeProfit = 0.0020; double StopLoss = 0.0015; //現在の終値より損切、利確の値の計算 TakeProfit = Close[0] + TakeProfit; StopLoss = Close[0] - StopLoss; //注文 Ticket_L = OrderSend(Symbol(),OP_BUY,Lots,Ask,10,StopLoss,TakeProfit,Comments,MAGIC,0,Red); ちなみに「利益確定と損切り注文の部分である可能性が非常に高い」の理由としては 以下の様に、利益確定と損切りをしない注文を行うと正常に約定されるためです。 Ticket_L = OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,Comments,MAGIC,0,Red); 利益確定と損切り注文が取得ポジションに近すぎるのかな?とも少しおもっているのですが、 ストップレベルという値を取得するとわかるみたいな情報があったので、取得してみると、 「ストップレベル:1.00000000」この値についてもどう解釈すればよいのかが不明です。 この内容で質問として情報が足りているか少し不安ですが、ご教授お願いします。 (その他、実際のMT4口座選で、ここはオススメなどあれば教えてもらえるとうれしいです。)

  • FX取引の注文方法について(XM)

    FX取引における注文方法についてです。 例えばドル円106.50ショートポジションを保有しているとします。 現在106.00として106.30に戻ってきてしまったらその時点で決済(利益確定)する注文はだせますか? ちなみにXMのMT4です。 回答よろしくお願いします。

  • FX 決済注文について

    指値により決済注文した場合において、利益確定の決済は指値どおりに決済されますが、損失確定の決済は若干不利な方へずれて決済されることが多々あります。理由を教えて下さい。

  • 決済の方法について

    例えば、 「20時ちょうどにポジションを持ったとして、指値と逆指値を入れつつ、 そのどちらも刺さらない場合には、一時間後に決済する。」 という決済条件が指定できる業者はありますか?

  • 含み益のポジション

    http://zerojack.jp/mt/2006/08/fx_41.html このページがすこし理解できなくてこんがらがっているのですが、 ポジションによるスワップが含み益なのか、利益確定かによって課税になったりならなかったりするのですよね。そのスワップの含み益でさらにポジションをつくって複利効果をあげるにはどうするかはわかるのですが、ちょっと値洗いがどういう意味がわからないのでご教授お願いします。

  • 決済時の指値 逆指値

    FXで新規注文で指値の意味は、現在レートから下がったら買い、あがったら売り。というのはわかったのですが、 ポジションを持っているときにそのポジションに決済注文をつけるときの指値はそのエントリーしたときよりあがったら売り、下がったら買い。なのか、指値決済注文を入れるときのレートから上がったら売り、下がったら買い、なのか教えてください。 業者によって解釈が違う、とかはないですよね?

  • FX  ポジションを持ったままの週末

    最近はじめたばかりですがポジションを持ったまま週末を迎えるのがすごく不安です 週が明けてみると暴落とか急騰とかになるとストップロスを入れていてもはるかに飛び越えて決済しそうでいつも週末には全部決済注文を出してしまいます  OCOで0.50のストップロス 0.05利益確定(時には0の時も)損をしなければとりあえず決済しています もっと効率の良い方法、考え方は無いでしょうか 今までの取引も短時間で薄利多取引のスタイルです

  • 成行注文と同時に決済注文(指値and逆指値)できる方法を教えてください。

    (当方、超短期のスキャルピングをしております) FXの注文の方法で、 ・成行新規注文 ・指値の決済注文(新規注文からpips数で指定) ・逆指値の決済注文(同上) を同時に発注できる方法(FX会社でも、ツールでも)があれば、 教えて頂けると嬉しいです。 例えば、   現在100.20として上がると予想した場合、   下記のような注文を同時に出したいです。   「成行新規買い」+「指値+2pips」+「逆指値-10pips」   値が動いて、100.22で新規買いが成立した場合、   同時に100.24で利益確定のための注文と、   100.12で損失確定のための注文を出していたいのです。   また、pips数などを設定画面で登録しておけば、次回からは   注文ごとにpips数を設定する必要が無く、   ワンクリックで上記の発注が執行されるようになれば最高です。 宜しくお願い致します_(_ _)_ -------------------------------------------- (以下、補足です) IFDOは、新規注文で成り行きが出来無いと思いますし、 「はっちゅう君」は、成行+逆指値は出来ますが、指値も同時に出来無いと思います。 (上記、間違いがあれば教えてくださいませ) 外為オンラインが上記を実現してくれたら最高なのですが。。

  • メタトレーダー(MT4)にて半自動売買のソフトを作成しております。

    メタトレーダー(MT4)にて半自動売買のソフトを作成しております。 プログラミングに行き詰まっておりますので、どなたか経験のある方ご存じの方がいらっしゃいましたらご教授下さいませ。 下記の様に指値売り又は指値買いのプログラムを作っております。 これは、ある条件のトラップを仕掛け、希望の指値に達すると売り注文または買い注文を行います。 このトラップを複数仕掛けております。 このうち一つでも決済されれば、あるものは損切りもしくは決済を行ったり、注文取消を行ったりしたいのです。 例えば95円で売り注文、ストップロスが「95+0.6」,決済値が「95-0.3」。 double pr1 = 95;  //例えば95円 chiket1 = OrderSend(Symbol(),OP_SELLLIMIT,lots ,pr1,3,pr1+0.6,pr1-0.3,"",123451,0,Red); chiket2 = OrderSend(Symbol(),OP_SELLLIMIT,lots ,pr2,3,pr2+0.6,pr2-0.3,"",123452,0,Red); chiket3 = OrderSend(Symbol(),OP_SELLLIMIT,lots ,pr3,3,pr3+0.6,pr3-0.3,"",123453,0,Red); chiket4 = OrderSend(Symbol(),OP_SELLLIMIT,lots ,pr4,3,pr4+0.6,pr4-0.3,"",123454,0,Red); chiket5 = OrderSend(Symbol(),OP_SELLLIMIT,lots ,pr5,3,pr5+0.6,pr5-0.3,"",123455,0,Red); 質問1.この注文のうち、どれが決済されたかが確認出来る方法もしくは関数が知りたいのです。 マジックナンバーもしくはチケットナンバーで判明出来れば有りがたいのですが。 出来れば質問2もお願いします。 質問2.指値注文の自動売買は、ストラテジーテスターにてビジュアルモードで検証出来ないので検証する方法があれば知りたい。(指値に達しても約定しない) 以上宜しくお願い致します。