プログラムによる「マージン率」の取得方法 - ページ 6

 
ir0407:
マージン比率は計算上の担保ではありません。マージンを計算するための構成要素の一つに過ぎない。そして、この計算結果(表の数式を使用)は証拠金通貨 で返され、(預金通貨と異なる場合)預金通貨に変換する必要がある。
1つを除いてすべて理解した、このコンポーネントの本質は何か)
 
K-2SO:

ブローカーを紹介してください。私のテストでは...
ロボです。
 

テストをシェアします。今までは足し算で一つの計算式にならなかったこれらの計算式に、いよいよ戸惑うことになります。3つのブローカー、3種類のマージン率、3種類の計算式、これらはほとんど結果に合致していると言っていい。これは、すでに発注した(!)金の注文(買い)に対する証拠金の計算である。

ご覧のように、マージン率はまだ重要な場合がありますが、メタクォートには本当に必要ありません。

 margin=OrderLots()*contract*OrderOpenPrice()/leverage/100; // метаквоты - процент маржи 100%

 margin=OrderLots()*contract*OrderOpenPrice()*Percentage/100; // инста - процент маржи 1%
            
 margin=(OrderLots()*contract*OrderOpenPrice()*Percentage)/leverage/100;// робо - процент маржи 200%
 
一般的な計算式の仕組みがわかったような気がする(実際にマージン率があることにようやく気づいたとき)--テストが無駄に終わったわけではないのです。そして、そう...マージン比率の値は必ず使用すること(すでに発注済みの場合も)。その値の計算方法と取得方法がわかったら、1回のCFD注文に対する証拠金の一般的な計算式について、私の結論をお伝えしたいと思いますので、興味のある方はどうぞ...。原理的には、すべてが見えている(求めている依存性)のですが、上のメッセージのコードでは、そのようなことはありません。
 
K-2SO:
一般的な計算式が理解できたので(マージン率の意味がやっとわかった)、テストは無駄にはならなかったと思います。そして、そう...マージン比率の値は必ず使用すること(すでに発注済みの場合も)。この値の計算方法と取得方法がわかったら、1回のCFD注文の証拠金の一般的な計算式について、私の結論をお伝えしたいと思いますので、興味のある方はどうぞ...。原理的には、上のメッセージのコードですべてが見えている(我々が求めている依存性)のですが。

すべてが一面に

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

マージン率」をプログラムで取得する方法

アレクセイ・ビクトロフ, 2017.06.02 09:42

そうですね...私は、あなたを助けようとする人々が、あなたが空想したものについて空想しなければならない理由がわからない?とにかく、そういう問題じゃないんです。

その計算式から必要なものを取り出すにはどうしたらいいのでしょうか?

計算式自体は、Margin = Lots *ContractSize*MarketPrice*Percentage/100 です。

したがって、Percentage = Margin/(Lots *ContractSize*MarketPrice/100) となります。

まだ廃止された機能の リストには入っていません。そこで、マージンの割合を決定するためのミッシングバリューを出す。

MarketInfo(_Symbol, MODE_MARGINREQUIRED);

現在の時間、現在の価格におけるすべてのデータを入手した後、注文の開始価格において保留されているマージンを再計算することは非常に簡単です。

mql5で必要なら

bool  SymbolInfoMarginRate( 
   string             name,                     // символ 
   ENUM_ORDER_TYPE    order_type,               // тип ордера 
   double&            initial_margin_rate,      // коэффициент взимания начальной маржи 
   double&            maintenance_margin_rate   // коэффициент взимания поддерживающей маржи 
   );

注文を出す際には、現在の価格と、計算式からしか得られない同じマージン率が考慮されます。したがって、まず、現在の価格でのフルロットの期待利幅を次の関数で定義する必要があります。

MarketInfo(symbol, MODE_MARGINREQUIRED);

このマージンからマージン率を計算し、特定の注文に対するマージンを計算します。しかし、繰り返しになりますが、証拠金は必ずしも預け入れ通貨で計算されるわけではなく、注文開始時の現在の為替レートでそれに換算され、後からmql4でそれ(為替レート)を取得する方法はありません。mql5ではもっと簡単で、CopyTicks()があり、注文開始時の為替レートを取得することができますが、ここで話しているのはこの言語ではありません。

 
Alexey Viktorov:

しかし、繰り返しになりますが、証拠金は必ずしも預け入れ通貨で計算されるわけではなく、注文開始時の現在の為替レートで換算され、後からmql4で(為替レートを)取得する方法はありません。

この時点ではまだ混乱しています。MARGINREQUIREDが預金通貨 で値を返すことは明らかですが、どの通貨が必要なのでしょうか。シンボルマークの引用の通貨で?
 
K-2SO:
この時点ではまだ混乱しています。MARGINREQUIREDは預け入れ通貨での 値を返すことは明らかである。シンボルマークの引用の通貨で?

最初の投稿と私の投稿の5ページ目にある2つの写真を比べてみてください。どちらも金仕様ですが、最初のものは証拠金通貨がUSD、2番目のものはXAUです。したがって、前者の場合は何もできませんが、後者の場合は、証拠金を預けた通貨で受け取った後、それを証拠金通貨に換算して、相場をかけ、証拠金率を計算する式に入れる必要があります。そうでない場合は、結果が正しくありません。従って、再び式に追加する必要があります。

シンボル_カレンシー_マージン

マージンを計算する通貨

 

いくつかの実験の後、私はここで認めざるを得ません。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

マージン率」をプログラムで取得する方法

アレクセイ・ビクトロフ さん 2017.06.02 10:24

レバレッジは一般的に、証拠金=(Lots*ContractSize*MarketPrice*Percentage)/Leverage という基本式の範囲外なので、考慮していません。質問の内容を判断するための テコ入れは、牛の鞍のようなものです。しかし、さらにそれが必要かもしれませんが、それは今の質問には関係ありません......。

私は間違っていた。レバレッジをかける必要があるのは、証拠金

MarketInfo(symbol, MODE_MARGINREQUIRED);

レバレッジを効かせることができます。



 
Alexey Viktorov:

いろいろと実験してみた結果、ここでは

私は間違っていた。レバレッジを使用しなければならないのは、証拠金

は、レバレッジを考慮することで得られる。

テストによると、マージン率が1に等しい場合、レバレッジは考慮されないことがわかりましたしかし、100以上からは、すでに考慮されているのです。証拠金率が2~99のブローカーがあればいいのですが。

 
K-2SO:

テストによると、マージン率が1に等しい場合、レバレッジは考慮されないことがわかりましたしかし、100以上の場合は、すでに考慮されているのです。証拠金率が2~99包括のブローカーがあればいいのですが。

100レバレッジで5ポンドでデモ口座を開設し、マージンの割合は、例えば、金またはさらに良いのために同じであるかを参照してください - ルーブル...