マージンはどのように計算するのですか? - ページ 2

 
Renat Akhtyamov:

聞くまでもない

式で計算します。

私が個々の注文のマージンを計算するのに使っている計算式は次の通りです。

OrderMargin = (OrderLots()*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_CONTRACT_SIZE)*OrderOpenPrice())/AccountInfoInteger(ACCOUNT_LEVERAGE);

ほとんどの場合、すべての未決済注文のこれらの値の合計がAccountInfoDouble(ACCOUNT_MARGIN) に等しくなります。

しかし、先に述べたようなケースでは、この計算式は誤った値を与えてしまいます。この計算では、AccountInfoInteger(ACCOUNT_LEVERAGE)という一定の(すべての注文に対して)値が使用されるからである。しかし、現実には(私の場合)一定ではありません。私のブローカーは、規定上、個々の注文に対して レバレッジ値を 数十倍まで下げることができます。

言い換えれば、この数式を使用すると、ターミナル内の 9 つの注文については正しいマージン値が得られ (これらの注文は標準のレバレッジを持つ)、一方、10 番目と 11 番目の注文については正しくない値が得られます(ブローカーは開始 5 分後にこれらの注文に対して高いレバレッジを設定しました)。

もしかしたら、Renatさんは、単一の注文のレバレッジを正しく計算する別の計算式を教えてくれるかもしれませんね。
なお、ポジションを建てた、ブローカーによっていつでも変更される可能性があります。

念のため、この状況は私の妄想では ありません。これは、今夜私のアカウントで起こっていたことです。

 
Janis Ozols:

私が使っている個別マージンの計算式は以下の通りです。

ほとんどの場合、すべての未決済注文のこれらの値の合計がAccountInfoDouble(ACCOUNT_MARGIN) に等しくなります。

しかし、先に述べたようなケースでは、この計算式は誤った値を与えてしまいます。この計算では、AccountInfoInteger(ACCOUNT_LEVERAGE)という一定の(すべての注文に対して)値が使用されるからである。しかし、現実には(私の場合)一定ではありません。私のブローカーは、規定上、個々の注文に対して レバレッジ値を 数十倍まで下げることができます。

言い換えれば、この数式を使用すると、ターミナル内の 9 つの注文については正しいマージン値が得られ (これらの注文は標準のレバレッジを持つ)、一方、10 番目と 11 番目の注文については誤ったマージン値が得られます(ブローカーは、開始から 5 分後にこれらの注文に対して高いレバレッジを設定しました)。

もしかしたら、Renatさんは、単一の注文のレバレッジを正しく計算する別の計算式を教えてくれるかもしれませんね。
なお、ポジションを建てた、ブローカーによっていつでも変更される可能性があります。

念のため、この状況は私の妄想では ありません。これは、今夜、私のアカウントで起こったことです。

違って当然なんです。

オープン時の実質的なレバレッジはどのくらいだったのでしょうか?

白黒でお伝えしましたが、実際のレバレッジはコメント欄か、取引を開始する際にMagikでご確認ください。

レバレッジを求めるのではなく、計算する必要があります。

ps

取引開始時のレバレッジは現状と同じです。

蓋を開けてみれば、何も変わらず、どうでもよい

VOL=MarketInfo("EURUSD",MODE_LOTSIZE);

LEVERAGE=NormalizeDouble(VOL/MarketInfo("USDCHF",MODE_MARGINREQUIRED),0);

ユーロとフランの義務的な存在である市場レビューで

MQL4用コード

レバレッジが異なる金融商品で同時に発生しない場合は、同じ原則に従って計算します。
 
Renat Akhtyamov:

開店時の実質レバレッジは?

開設時の実質的なレバレッジは1:1000だった。Bid=1.1800でEUR/USDを0.10の出来高でSELLポジションを 持った直後、マージンは11.80USDでした。その時、口座には他に9つの取引があり、そのマージンは86.20USDでした。ポジションを開いた後、マージンは98.00米ドルに等しくなりました。その2分後、ブローカーは最後のオープンポジションのレバレッジを1:33に変更しました。彼女の証拠金は357.58ドル(開設時は11.80ドル)になり、口座の合計証拠金は443.78 ドルとなりました。

ターミナルでオープンポジションを見て、実際の証拠金の値が計算値(ポジションオープン時)を何度も超えているものを時間内に検出するのに役立つ方法(または公式)を見つけようとしています。

Renat Akhtyamov:

私は黒と白であなたを書いた - コメントで、または取引を開くときにマジックで本当のレバレッジを注意してください。

迷惑な話で恐縮ですが、ポジションを建てる時に貯めたレバレッジがこのような時に役に立つのかが理解できません。

 
Janis Ozols:

開業時の実質レバレッジは1:1000でした。 開始直後にEUR/USDをBid = 1.1800で出来高0.10で開始した SELLポジションのマージンは 11.80USD でした。 その時、口座には他に9つの取引があり、そのマージンは86.20USDでした。ポジションを開いた後、マージンは98.00米ドルに等しくなりました。その2分後、ブローカーは最後のオープンポジションのレバレッジを1:33に変更しました。彼女の証拠金は357.58ドル(開設時は11.80ドル)になり、口座の合計証拠金は443.78ドルとなりました。

ターミナルでオープンポジションを見て、実際の証拠金の値が計算値(ポジションをオープンした時点の値)を何度も超えているものを時間内に検出するのに役立つ方法(または公式)を見つけようとしています。

このような状況下で、ポジション開設時に保持していたレバレッジがどのように役立つのか、理解できません。

現在、ほとんどの証券会社がネッティングを行っているため、ポジションの一部しか決済できない場合があります。

この場合、オープンポジションのマージンは変化します。

2分以内にすでにポジションをクローズしているのですか?

 
Renat Akhtyamov:

オープンしても何も変わりません。

そこがやっかいなんです!私の場合、1つの注文のレバレッジは、ポジションを開いた後に 変更されました。しかも、すぐにではなく、しばらくしてから。証券会社のサポート担当者が確認し、私のアカウントで状況を再現することができました。

Renat Akhtyamov:

というのも、証券会社のほとんどがネット取引を行っているため、ロコの一部を閉じた場合のみ可能なのです。

2分以内に注文を締め切ったのですか?

いいえ、トレードを閉じず、ロットも使いませんでした。端末には一方向の取引しかなかった。0.1の出来高で別の売りポジションを建てた後、しばらくターミナルにMargin = 98.00が表示されていました。約2分後、この値は443.78となり、私の目の前に現れた。同時に、ジャーナルには一行も追加されておらず、Expert Advisorも追加されていない。チャートは1つしか開いておらず、マーケットレビューには1つのシンボルしかありません。

この不運な取引をわずかな損失で決済した後、口座のマージンは再び86.20ドルになった。

 
Janis Ozols:

そこがやっかいなんです!私の場合、1つの注文のレバレッジは、ポジションを開いた後に 変更されました。しかも、すぐにではなく、しばらくしてから。ブローカーのサポート担当者が確認し、私のアカウントでこの状況を再現することができました。

いいえ、私はトレードを閉じず、ロットも使いませんでした。端末には一方向の取引しかなかった。ボリューム0.1で別の売りポジションを建てた後、ターミナルにマージン=98.00と表示されました。約2分後、この値は443.78となり、私の目の前に現れた。同時に、ジャーナルには一行も追加されておらず、Expert Advisorも追加されていない。チャートは1つ、マーケット概要のシンボルを1つ開いています。

プリントレバレッジ、オープンタイム、マージン

上式と下式

を作成し、ログに従ってDCに対処する。

私自身は、このような根拠のないおとぎ話は信じていません。
 
Renat Akhtyamov:

そして、ログにしたがってDCに対処する

DCを扱ったことがある。その答えはとてもシンプルで、 「ルールを読め、そこにすべて書いてある。そして、そこには確かに、会社は一定の条件下で開設された特定のポジションのレバレッジを変更する権利を有すると書かれているのです。その後、私は明確な質問をしました 次のポジションの実際のレバレッジは、それを開く前に得ることができますか?MarketInfo(_Symbol,MODE_MARGINREQUIRED)、AccountFreeMarginCheck()、その他のクエリを使用する場合、どうすればよいですか?答えは「NO 」です。レバレッジの引き下げは、ポジションを建てた 後に、現在の市場の状況に基づいて、規制からの条件に対応するように設定されます。

Renat Akhtyamov:
私は、このような根拠のないおとぎ話は信じません。

決してあなたを説得しようとしているのではありませんよ。しかも、同じような状況に遭遇していなくてよかったです。このブローカーと仕事をするようになって数年、初めて自分自身がそれに直面しました。

MQL4では、ターミナルにあるオープンポジションの実際のマージン(計算値ではありません)を取得する方法は、この値が以前にどこかに保存されていない限り、ネイティブには存在しないという理解で正しいでしょうか?

 
Janis Ozols:

DCを扱ったことがある。その答えはとてもシンプルで、 「ルールを読め、そこにすべて書いてある。ただし、特定の条件下で開設されたポジションについては、レバレッジを変更する権利を有すると書かれています。その後、私は明確な質問をしました 次のポジションの実際のレバレッジは、それを開く前に得ることができますか?MarketInfo(_Symbol,MODE_MARGINREQUIRED)、AccountFreeMarginCheck()、その他のクエリを使用する場合、どうすればよいですか?答えは「ノー 」です。レバレッジの引き下げは、現在の市場状況に基づいて、規制の条件に対応するポジションを建てた 後に設定されます。

決してあなたを説得しようとしているわけではありませんよ。しかも、同じような状況に遭遇していない ことが、とてもうれしいです。このブローカーと仕事をするようになって数年、初めて自分自身がそれに直面しました。

おっしゃることをまとめると、MQL4でターミナルにあるオープンポジションの実際の(計算されたものではない)マージンを取得する方法は、この値が以前にどこかに保存されていない限り、ネイティブには存在しないという理解で正しいでしょうか?

なぜなら、私はルールを読むのが先で、後ではないからです。

そして、自分に合わないものは、そのような場所では働かない。

 
Janis Ozols:

まとめると、MQL4でターミナルにあるオープンポジションの実際の(計算されたものではない)入金額を取得する方法は、この値が以前にどこかに保存されていない限り、ネイティブには存在しないという理解で正しいでしょうか。

はい、その通りです。

レバレッジだけは、単一の取引ではなく、楽器全体として変わる可能性が高いが、問題は変わらない。

この件に関しては、私のインフォーマーにアラートを追加しておきます...。

 

AccountLeverage() 関数は、口座のレバレッジが変更されることを示唆する ものです。個々のシンボルは、シンボルのエキゾチック(Fx Minors、Fx Exotics、Fx Rub)およびポジションの量に応じて、口座と異なるレバレッジを持つことがあります。いずれにせよ、規定と契約仕様書を読む必要があります。

興味深いことに、どのような取引操作でも、口座のレバレッジを変更することができます。レバレッジを変えるためには、トレードを しなければなりません。忘れ去られ、見込みのない保留中の注文を 削除したことがあります。いわば、掃除をしたのです。その結果、口座のレバレッジを500から100に引き下げました。

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Торговля осуществляется посредством отправки с помощью функции OrderSend() приказов на открытие позиций, а также приказов на установку, модификацию и удаление отложенных ордеров. Каждый торговый приказ содержит указание на тип запрашиваемой торговой операции. Торговые операции описаны в перечислении ENUM_TRADE_REQUEST_ACTIONS...