MQL5で必要な証拠金を見積もる - ページ 7

 
Vladimir:

コードがどうのこうのではなく、再計算の仕方を知っている人なら誰でもわかることでしょう。しかし、あなたは、実際にその影響を確認した機能のリストに、ボラティリティを追加しました。さらに薪の中に入っていくと、どんどん薪が集まってきます。どのように受け止めればよいのでしょうか。かなり絶望的な状況です...。

全く意味がわかりません。

それはすべて取引条件、実際の取引ルールに記載されています。

本来は当たり前の現象なのです。

それに伴い、計算方法が異なります。

しかし、この問題は解決可能です

考慮の仕方-前回の記事
 
Renat Akhtyamov:

何を言っているのかわからない。

それはすべて取引条件、実際の取引ルールに記載されています。

この現象は、本質的には当たり前のことなのです。

したがって、計算が異なる

しかし、この問題は解決可能です。

解説してみます。アルゴリズムは以下の通りである。数十社の証券会社の数十個のシンボルを観測する。ここでは簡単のために、その取引によって取られるマージンに対する期待収益性と呼ぶことにする。各組(記号、DC)ごとに異なります。取引開始時以外も含む。取引するシンボルや証券会社を選ぶには、この数字を比較する必要があります。この選択のためには、取引を完了するまでの予想期間において、レバレッジがどの程度になるかを見積もる必要があります。結局、この分を予約することになる。

これが最大のプログラムです。今のところ、OrderCalcMargin()を必要な証拠金を見積もる根拠にしていいのかどうかもわからない。今この瞬間の余白だけにしておく。ボラティリティが変わると、レバレッジも変わるということですが。そこで、各シンボルのVCごとに、どの範囲で変化するかという統計を取る必要があります。あるいは、これらの変動の許容範囲を見つけることができるだろう。最悪なのは、レバレッジが予測できないほど変化することが判明した場合ですが......。

私の「OrderCheck() やOrderCalcMargin()は仕様で指定されたレバレッジの特徴を考慮しているか」という疑問は、このアプローチの出発点である。
 
Vladimir:

説明しよう。アルゴリズムは以下の通りである。数十個のDCの数十個のシンボルを監視する。見積もりはある段階で行われる。ここでは簡単のために、ある取引が取ったマージンに対する予想収益性をそう呼ぶことにする。各組(記号、DC)ごとに異なります。取引開始時以外も含む。取引するシンボルや証券会社を選ぶには、この数字を比較する必要があります。この選択のためには、取引を完了するまでの予想期間において、レバレッジがどの程度になるかを見積もる必要があります。結局、この金額を予約することになる。

これが最大のプログラムです。今のところ、OrderCalcMargin()を必要な証拠金を見積もる根拠にしていいのかどうかもわからない。今この瞬間のマージンだけにしておく。ボラティリティが変わると、レバレッジが変わるということですが。そこで、各シンボルのVCごとに、どの範囲で変化するかという統計を取る必要があります。あるいは、これらの変動の許容範囲を見つけることができるだろう。最悪なのは、レバレッジが予測できないほど変化することが判明した場合ですが......。

最後に書かせていただきます。

特定の証券会社の取引 条件を読めば、統計は必要ないでしょう。

 
Renat Akhtyamov:

前回書き込みました。

自分の判断でレバレッジを変えても いいし、数時間だけ20になることもある。

//私の「OrderCheck()やOrderCalcMargin()は仕様で指定されたレバレッジの特徴を考慮しているか」という質問は、このアプローチの出発点である。

電流

テコ入れのメールがいつ来るかわからないし、いろんな要因があるだろうし、各国の選挙に限った話でもない。レバレッジを "その場 "で自由に変えることができる。100から20に設定してもいいし、たった数時間でもいい。

 
Vitaly Muzichenko:

レバレッジの引き下げを知らせる郵便物を見たことがありますか?国の選挙だけでなく、様々な要因が考えられます。また、手紙が届かないこともあります。彼らは適当にその場でレバレッジを変え、100から20にすることもありますし、ほんの数時間のことかもしれません。

Vitaly、私はすでに以前のバージョンでトラッキングアルゴリズムを書きました、私はそれを使いました、なぜならレバレッジが1:2000だったからです。

取引条件において、レバレッジの変更の限界、条件、時間、どのような条件では全く変更しないか等を具体的に明記している。

その場で変更も可能なので、追跡していたわけです。

 
Vladimir:.
私の「OrderCheck()やOrderCalcMargin()は仕様で指定されたレバレッジの特徴を考慮しているか」という疑問は、このアプローチの出発点である。

すみません、ご自分の言葉で。

"コードではなく、再計算できる人なら誰でもいい "と。

自分も全てに割り当てている可能性が高いです。

計算をすれば、すべてが
 

それとも、端末が正しい情報を持っていないのでしょうか?
端末が毎回サーバーにリクエストを送るのか、資金が十分かどうかをチェックするのか、確認しました。MT5で、金額不足 の場合、そのリクエストを2行で2点記録している証券会社は、1社しかありません。MT5のうち、この端末だけがリアル口座に接続されていて、他のMT5はデモで使っているからかもしれません。手動で6回取引開始を試みた場合のログ。

2018.07.03 04:59:35.231 トレード '3038119': 成行買い1.26 EURUSD.m
2018.07.03 04:59:35.331 トレード '3038119': 成行買い 1.26 EURUSD.m [資金なし]
2018.07.03 05:00:51.667 取引「3038119」:成行買い1.26EURUSD.m
2018.07.03 05:00:51.747 トレード '3038119': 失敗した成行買い 1.26 EURUSD.m 【資金なし
2018.07.03 05:00:55.001 取引「3038119」:成行買い1.26EURUSD.m
2018.07.03 05:00:55.091 トレード '3038119': 成行買い 1.26 EURUSD.m [資金なし]
2018.07.03 05:01:00.008 取引「3038119」:成行売り1.26EURUSD.m
2018.07.03 05:01:00.091 トレード '3038119': 成行売り 1.26 EURUSD.m [資金なし]に失敗しました。
2018.07.03 05:01:02.911 トレード '3038119': 市場売り1.26 EURUSD.m
2018.07.03 05:01:03.007 トレード '3038119': 失敗した成行売り 1.26 EURUSD.m 【資金なし
2018.07.03 05:01:05.952 取引「3038119」:成行売り1.26EURUSD.m
2018.07.03 05:01:06.035 トレード '3038119': 失敗した成行売り 1.26 EURUSD.m 【資金なし

要求行から No money 応答までの時間間隔(単位:ミリ秒):100 80 90 83 96 87.
さらに、端末でのサーバーpingは73.56ms。なぜ端末は80ms以上待ってからお金が足りないと判断するのでしょうか?十分かどうかをチェックせずに、すべてのリクエストをサーバーに送信しているように見えます。それはなぜでしょうか?その理由は、端末がそのようなチェックに必要な情報を持っていないからだと思います。
そして、「お金が足りない...」というメッセージは、端末自身が出すもので、サーバーの判断だけで出しているわけではないことを、いつも確信していました。

Dennis Kirichenkoが私の質問に対する最も的確な答えのようだhttps://www.mql5.com/ru/forum/261955/page4#comment_7949343

Renat Akhtyamov さんhttps://www.mql5.com/ru/forum/261955/page2#comment_7945930「サーバーに証拠金情報を要求する」では、どのような方法を提案 されたのでしょうかたとえ1秒でもいい、でも、サーバーへのリクエストはどういうものだったんですか?それは、単に予想される取引を開始しようとするもので、そのために予備的な証拠金の見積もりが行われるのでしょうか?

 
Vladimir:

それとも、端末に正しい情報が入っていないのでしょうか?
端末が毎回サーバーにリクエストを送るのか、資金の充足を確認しているのか、確認するようになりました。MT5で、資金不足 の場合に2行で2点表示してリクエストを記録している証券会社は1社しかないですね。MT5のうち、この端末だけがリアル口座に接続されていて、他のMT5はデモで使っているからかもしれません。手動で6回取引開始を試みた場合のログ。

2018.07.03 04:59:35.231 トレード '3038119': 成行買い1.26 EURUSD.m
2018.07.03 04:59:35.331 トレード '3038119': 成行買い 1.26 EURUSD.m [資金なし]
2018.07.03 05:00:51.667 取引「3038119」:成行買い1.26EURUSD.m
2018.07.03 05:00:51.747 トレード '3038119': 失敗した成行買い 1.26 EURUSD.m 【資金なし
2018.07.03 05:00:55.001 取引「3038119」:成行買い1.26EURUSD.m
2018.07.03 05:00:55.091 トレード '3038119': 成行買い 1.26 EURUSD.m [資金なし]
2018.07.03 05:01:00.008 取引「3038119」:成行売り1.26EURUSD.m
2018.07.03 05:01:00.091 トレード '3038119': 失敗した成行売り 1.26 EURUSD.m 【資金なし
2018.07.03 05:01:02.911 トレード '3038119': 市場売り1.26 EURUSD.m
2018.07.03 05:01:03.007 トレード '3038119': 失敗した成行売り 1.26 EURUSD.m 【資金なし
2018.07.03 05:01:05.952 取引「3038119」:成行売り1.26EURUSD.m
2018.07.03 05:01:06.035 トレード '3038119': 失敗した成行売り 1.26 EURUSD.m 【資金なし

要求行から No money 応答までの時間間隔(単位:ミリ秒):100 80 90 83 96 87.
ターミナルに表示されたサーバーへのpingは73.56msです。なぜ端末は80ms以上待ってから「お金が足りない」と判断するのか?十分かどうかをチェックせずに、すべてのリクエストをサーバーに送信しているように見えます。それはなぜでしょうか?その理由は、端末がそのようなチェックに必要な情報を持っていないからだと思います。
そして、「お金が足りない...」というメッセージは、端末自身が出すもので、サーバーの判断だけで出しているわけではないことを、いつも確信していました。

Dennis Kirichenkoが私の質問に最も的確に答えてくれているようだhttps://www.mql5.com/ru/forum/261955/page4#comment_7949343

Renat Akhtyamov さんhttps://www.mql5.com/ru/forum/261955/page2#comment_7945930「サーバーに証拠金情報を要求する」では、どのような方法を提案 されたのでしょうかたとえ1秒でもいい、でも、サーバーへのリクエストはどんなものだったのでしょうか?それは、単に予想される取引を開始しようとするもので、そのために予備的な証拠金の見積もりが行われるのでしょうか?

もちろん、あなたのことは理解していますよ。

最初の頃は、簡単なこともすぐに理解できませんでした。

改めて、1ロットの販売にかかるマージンをご紹介します。

オーダーカルクマージン(ORDER_TYPE_SELL,_Symbol,1,BID,Mgn)

しかし、購入には

オーダーカルクマージン(ORDER_TYPE_BUY,_Symbol,1,ASK,Mgn)

レバレッジはそれに対する比率で、それ以上ではありません。

k=100/レバ

このように

そして、ログには「お金がなくて、無料で注文を開くことができません」と表示されます。

デモマネーで注文を開くことができます。ただ、私が理解する限り、デモのお金もないのですね。

残高はゼロなんですよね?
 
みんな、シンボルのレバレッジや口座のレバレッジが頻繁に変わる証券会社のアドレスを教えてくれ。少なくともいくつかのシンボル別のレバレッジの条件については。
 

ForexClub

OrderCalcMargin()を使って、このロットに対するマージンをチェックしました。リアル口座、レバレッジ1:500。

EURUSDロット価格数量価値、$。マージン、$。理論的なレバレッジ
100 0001.001.16716116 716233.43500

11.001.167161 283 8762 567.75500

51.001.167165 952 51611 905.03500

101.00
1.1671611 788 31623 576.63500


取引量が増えてもレバレッジは変化 しないことがわかり、仕様と一致しない。