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

 
Renat Akhtyamov:
は、そのコードを見てみましょう。
混ぜてしまうんですね。
 
A1exPit:
かき混ぜるんですね。
では、頑張ってください。
 
Renat Akhtyamov:
では、ごきげんよう。
ご質問の中で、コードが重要ではないですか?と書けばいいのに......よくわからないけど、なんとなくうまくいく。
 
A1exPit:
この質問では、コードが重要ではないでしょうか?と書けばいいのに、うまくいっているようです。

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

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

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

 

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

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

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

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

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

 
Babu Bonappan:

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

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

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

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

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

margin = MarketInfo(OrderSymbol(),MODE_MARGINREQUIRED) * OrderLots();

結果は正確ではありません。

または、注文開始時点までの必要な通貨ペアのレートをチャート上で求め、必要に応じてスプレッド(bid/ask)を考慮し、以下の計算式で注文開始時点のより正確な証拠金の値を算出することができます。

レバレッジが異なっていた時代の証拠金計算が落とし穴かもしれない

 
注文開始時にコメント欄にEUR/USDの為替レートを記入し、そこから読み取る場合はどうでしょうか。
 
Babu Bonappan:
注文開始時にコメント欄にEUR/USDの為替レートを記入し、そこから読み取る場合はどうでしょうか。

その他の目的のためにコメントする。

これが価格の調べ方です。

         string Symbol_X="USDCHF";
        
         int bs=iBarShift(OrderSymbol(),Period(),OrderOpenTime());
         double bid_X=iClose(Symbol_X,Period(),bs);
 
Renat Akhtyamov:

その他の目的のためにコメントする。

これが価格の調べ方です。

         string Symbol_X="USDCHF";
        
         int bs=iBarShift(OrderSymbol(),Period(),OrderOpenTime());
         double price_X=iClose(Symbol_X,Period(),bs);

例えば日足チャートで取引する場合、その日の始値を 取得し、その中のどこかで興味のある注文が開始されますよね?そして、開封時の価格と大きく異なることもあります。

 
Babu Bonappan:

つまり、例えば日足チャートで取引する場合、その日の始値を 取得し、その中のどこかで、興味のある注文が開かれたことになりますよね?そして、開封時の価格とは大きく異なる場合があります。

誰もPeriod()を使うことにこだわっていない

PERIOD_M15 などのように明示的に指定する。

理由: