プロが教えるわが家の防犯対策術!

最近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口座選で、ここはオススメなどあれば教えてもらえるとうれしいです。)

A 回答 (3件)

No.1です。



大分様子が分かりました。
まず、FXCMはカウントダウンという注文方式をとってます。これは注文するときのダイアグラムを見ると、注文種別に「カウントダウン」と書いてあり、さらに、S/L、T/Pの値が薄く0.000と表記され変更ができなくなっています。
つまりは、FXCMは注文時にはS/L,T/Pの設定ができないのです。これは、FOREX.COMも一緒です。
また、ストップレベルを調べるため、

Print("ストップレベル:" + MarketInfo(Symbol(),MODE_STOPLEVEL));

という関数を用いてますが、ここでの+は通常、文字形式の値を繋げるものでありますが、MarketIndo関数はDouble形式なので、正しく表記されていないものと思われます。上記は、

Print("ストップレベル:",MarketInfo(Symbol(),MODE_STOPLEVEL));

とすれば、正しくSTOPLEVELが表記されます。試して見て下さい。

さて、FXCMで上記の方法でSTOPLEVELを調べると、STOPLEVELが0であることが分かります。
これ自体は全く問題ないことで、どういうことかと言いますと、

(1)まずは、S/L,T/Pを設定せずに、ポジションを建てる。
(2)OrderModify関数などで、S/L,T/Pを後から設定する。
(3)その際に、FXCMのSTOPLEVELは0なので、現在値と離す必要はない。

ということです。
なお、FOREX.COMのSTOPLEVELは1なので、1pip離さないといけないことになります。

もう少し、大きなSTOPLEVELが見たい場合は例えば、海外業者になりますが、HPは日本語表記されているので、なじみ易いところで、FXDD Maltaなどでデモ口座を開くと、STOPLEVELは40であることが分かります。また、FXDDは成り行き注文方式をとっており、注文時にS/L,T/Pの設定ができます。
(このカウントダウンとか、成り行き注文方式というのが言葉的になじめないのですが、そういうものだと思って下さい)

なお、FXCMジャパンは12/17頃に注文方式を変更する旨のメールが来てました。具体的にどのようになるのか、不明な部分もありますが、ご注意下さい。

ご質問頂いたことは以上で回答できてますでしょうか。

ご確認下さい。
    • good
    • 0
この回答へのお礼

丁寧なご対応、本当に有難うございます。

MT4の提供会社で注文種別なる違いがあるのですね。

これだけの情報があれば次のステップに進めそうです。

Print関数についても補足有助かります。
実はその表記方法(「+」で本当にいいのか?)も少し悩んでいました。
※コンパイルできて表示もされていたのでOKなのかと・・・

さっそく別方法での指値注文をためしてみます。

お礼日時:2011/11/23 09:22

No.1です。



「ストップレベル:1.00000000」というのも見たことがありません。
ぜひ、あなたがトライしている業者のデモ口座でテストしてみたいと思います。
ちなみに、ストップレベルというのは、SLやTPを設定する場合に現在値から離さないと
いけないPipsの値であり、5とか10とかの値が通常です。

この回答への補足

ありがとうございます。

>ストップレベルというのは、SLやTPを設定する場合に
>現在値から離さないといけないPipsの値
認識としてはやはり上記の様な考えになるのですね。
出力してみた2つのデモトレード共に以下の様な値だったので
何か勘違いしているのかと思っていました。

 【出力しているソース部分】
 Print("ストップレベル:" + MarketInfo(Symbol(),MODE_STOPLEVEL));

 【FOREX.com】
 2011.11.22 00:20:37scalp_A EURUSDFXF,M5: ストップレベル:1.00000000

 【FXCMジャパン】
 2011.11.22 21:54:52scalp_A EURUSD,M5: ストップレベル:0.00000000
 ※こっちは更にヒドイ感じですね。0.0000…って(汗

 もしよろしければ、ストップレベルが5や10になるであろうデモ口座を
 教えて頂けないでしょうか。
 こちらでも確認してみようかと思いますので。

 よろしくお願い致します。

補足日時:2011/11/22 22:00
    • good
    • 0
この回答へのお礼

有難うございます。

お礼日時:2011/11/23 09:23

いくつかコメントすべき点があるように思いますが、まず、業者名ですが、「OLD、Forex」となってますが、ODLの間違いかと思うも

ののODLは既にないし、「OLD、Forex」という業者名は正しいでしょうか?

この回答への補足

早速の情報ありがとうございます。
すいません。口座の正式名称を確認しました。

>ODLの間違いかと思うもののODLは既にないし・・・
確認しました。
どうやらODLとFXCMが合併したようですね。
確かこのFXCMジャパンでデモ口座を開いたと記憶しております。

 http://www.fxcm.co.jp/service/mt4.html

インストールすると「ODL MetaTrader」がインストールされたので、
MT4のシステムとしてはODLの物を使用しているのかもしれません。

>Forex
正式名称は「FOREX.com」となります。
http://jp.forex.com/jp/features/open_demo.shtml

よろしくお願いいたします。

補足日時:2011/11/22 21:45
    • good
    • 0
この回答へのお礼

有難うございます。

お礼日時:2011/11/23 09:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!