初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 16

 

OKです。

今、自分にとって最も重要なことは、ある特定の取引の証拠金を計算するために、取引開始時に採取された預金通貨に対する 基準通貨の固定値を使用するという考え方が正しいかどうかということです。これでよいのでしょうか?また、このトレードのマージンは、注文がクローズされるまで一定なのですか?これでよいのでしょうか?

 
Babu Bonappan:

.....

私が最も重要視しているのは、ある特定の取引の証拠金を計算するために、取引開始時に採取した基準通貨と入金 通貨の固定値を使用するという考え方が正しいかどうかということです。これでよいのでしょうか?また、このトレードのマージンは、注文がクローズされるまで一定なのですか?これでよいのでしょうか?

はい、おっしゃるとおりです。

したがって、マージンを計算するための価格は、注文を開くときに重要である

 
Renatさん、本当にありがとうございました。
 
Babu Bonappan:
Renatさん、本当にありがとうございました。
どういたしまして
 
Renat Akhtyamov:

質問はコードに関することなので、コードがないとできません。

モディファイヤーやオーダー処理についてのご質問でしょうか?

何が必要なのかわからない。しかし、コードのエラーは100%です。

何も知らないくせに、自信満々に結論を出している。

OrderSelectについて お聞きします。

 
Babu Bonappan:

MQL4を使って、ターミナルで各オープンポジションのマージン値を取得する方法を教えてください。

以前はこんな風にやっていました。

margin = MarketInfo(Symbol(),MODE_LOTSIZE) * OrderOpenPrice() / AccountLeverage() * OrderLots();

EUR/USDの取引では、この構築はうまく機能し、そのロジックが正しいことを確信しました。

しかし、今度はEUR/JPY(またはEUR/CHF)で同じ結果を得たいのです。明らかに、OrderOpenPrice()の 代わりに、私は基準通貨と入金 通貨のレート(私の場合、EUR/USD)によって標準ロットの値を乗算する必要があります。しかし、このレートは何なのでしょうか?ポジションオープン時の為替レートか、現在(このポジションの入金額を知りたい時)の為替レートか?

OrderOpenPrice - は、選択された注文の開始価格であり、表示される通貨に違いはありません。PointとDigitsを確認する必要がありそうだ。もしくは四捨五入を確認したほうがいい。どこかで四捨五入している。

NormalizeDoubleは小数点以下5桁まで、JPYは小数点以下3桁まで必要です。そして、バインド自体はどの通貨でも同じように機能するはずです。

 
Babu Bonappan:
注文開始時に、コメント欄にEUR/USDの為替レートを書き込み、そこから読み取る場合はどうでしょうか。
OrderSymbol()の代わりに "USDJPY "と書くとわかりやすいです。
 
A1exPit:
OrderSymbol()の代わりに "USDJPY "と書くと簡単です。

なぜUSD/JPYなのか?結局、EUR/JPYを取引しているので、1ロットは100000EUR、入金通貨は USDです。私見では、この場合、取引開始時のEUR/USDの為替レートが必要です。

また、コードに強制記号を設定すると、別の通貨ペア、例えばNZD/CADでの取引には適さなくなります。でも、ユニバーサルバリアントが欲しいですね。今のところ、注文が始まった瞬間に計算された各注文の入金額を保存する方法しか思いつきません。この目的のために、注文チケットとそのデポジットを格納するための配列を作成することができるかもしれません。しかし、もしかしたら、もっと些細な解決策があるかもしれません。

 
A1exPit:

OrderOpenPrice - 選択された注文の開始価格 - 使用する通貨は関係なく、価格を表示します。PointとDigitsにチェックが入っているはずです。または、Roundingを確認した方が良い。四捨五入を確認する必要がある。

NormalizeDoubleは小数点以下5桁ですが、JPYは小数点以下3桁で計算します。そして、バインダー自体はどの通貨でも同じように機能するようになっています。

そして、なぜ桁数を偽るのですか?人を惑わさないこと。

 
A1exPit:

OrderOpenPrice - 選択された注文の開始価格 - 使用する通貨は関係なく、価格を表示します。

OrderOpenPriceは、私が理解しているように、私が必要とするものを正確に教えてくれます。ただし、入金通貨が ドル、取引ペアがEUR/USDの場合に限ります。この場合、OrderOpenPriceには、注文を開始した時点の基準通貨と入金通貨の為替レートが格納されており、それを知ることで簡単に入金額を計算することができるのと同じことです。

しかし、これらの条件の少なくとも1つが満たされない場合、個々の注文の保証金の値をどのように取得すればよいのでしょうか。建値の基準通貨と預金の通貨との相対的なレートは、どこで確認できますか?

はい、注文開始時刻を秒単位で把握しています。しかし、何が得られるのか?最大で - 必要なシンボルの分ローソクのパラメータ。しかし、決して預金計算に使用したレートの正確な値ではありません。しかし、AccountMargin関数は、なぜかそれを取得するのです。具体的にどうなのか、非常に興味深いところです。