フォルツァ執行上の問題点 - ページ 120

 
MQ-demoサーバーでは、FORTSセクションのティッカーは、クォート/プロフィット、マージン、ベースの3つの通貨がすべてRURで設定されていますが、多くのティッカー(BR-、GOLD-など)は、明らかにUSDでクォートされています。質問:デモの設定の不具合でしょうか?そうでない場合、MQLからそのようなティッカーの実際の提示通貨を知るにはどうしたらよいですか?
 
Stanislav Korotky:
MQ-demoサーバーでは、FORTSセクションのティッカーは、クォート/プロフィット、マージン、ベースの3つの通貨がすべてRURで設定されていますが、多くのティッカー(BR-、GOLD-など)は、明らかにUSDでクォートされています。質問:デモの設定の不具合でしょうか?そうでない場合、MQLからそのようなティッカーの実際の提示通貨を知るにはどうしたらよいですか?

はい、米ドルで表示され、クリアランスは再計算され、為替レートの差異が考慮されます。

 
Aleksey Vyazmikin:

はい、米ドルで提示され、清算時には再計算され、為替レートの差が考慮されます。

"はい "とは、どのような意味ですか?現実にはUSDですが、末端ではRURです。プログラムからどのように処理できるのですか?今のところ、MQL API関数の値をオーバーラップできるように入力パラメータを乗算する方法しかないと思います。

 
Stanislav Korotky:

"はい "とは、どのような意味ですか?現実にはUSDですが、末端ではRURです。プログラムからどのように処理するのか?今のところ、MQL API関数の値をオーバーラップさせるために入力パラメータを乗算する、という方法しかないと思います。

そもそも目的は何なのか?GOを計算するために?

 
Stanislav Korotky:

"はい "とは、どのような意味ですか?現実にはUSDですが、末端ではRURです。プログラムからどのように処理するのか?今のところ、MQL API関数の値をオーバーラップさせるために入力パラメータを乗算する、という方法があります。

すべてポイントに変換して作業しています。

ポイントを価格に換算する必要がある場合は、次のようにします。

この機能

//+------------------------------------------------------------------+
//| Expert Points to price function                                  |
//+------------------------------------------------------------------+
double PointsToPrice(const long a_points)
{
  step_price = SymbolInfoDouble(Symbol(), SYMBOL_TRADE_TICK_SIZE);
  double a_price = (double(a_points) * Point() ) / step_price;
  if(a_points < 0)
  {
    a_price = MathFloor(a_price) * step_price;
  }
  else
  {
    a_price = MathCeil(a_price) * step_price;
  }
  return(NormalizeDouble(a_price, Digits()));
}

CSを換算すると、全てのティッカーでルーブル表記になっています。

追加

したがって、入力パラメータはポイントとなる。

は、すべてのシンボルに対して普遍的な計算を行うことができます。

 

オトクリチエのリアルアカウントAccountInfoDouble関数を使って、口座データ(残高、資金、証拠金など)を取得しようとしています。

ほぼ全てOKなのですが、マージンコールとストップアウトレベルをラインで取得しようとしたところ。

double MarginCallValue = AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL);
double MarginStopValue = AccountInfoDouble(ACCOUNT_MARGIN_SO_SO);


いつもゼロが出るんです。されても同じです。

   CAccountInfo* info = new CAccountInfo();
   double val = info.MarginCall();
   double val1 = info.MarginStopOut();


なぜいつもゼロが表示されるのでしょうか?ブローカーの問題か、MT5の問題か?

 
Zmeev:

オトクリチエのリアルアカウントAccountInfoDouble関数を使って、口座データ(残高、資金、証拠金など)を取得しようとしています。

ほぼ全てOKなのですが、マージンコールとストップアウトレベルをラインで取得しようとしたところ。

double MarginCallValue = AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL);
double MarginStopValue = AccountInfoDouble(ACCOUNT_MARGIN_SO_SO);


いつもゼロが出るんです。されても同じです。

   CAccountInfo* info = new CAccountInfo();
   double val = info.MarginCall();
   double val1 = info.MarginStopOut();


なぜいつもゼロが表示されるのか、何か関係があるのでしょうか?これはブローカーの問題ですか、それともMT5の問題ですか?

FOREX?

 

フォルツァ

それ以外の勘定科目については、現実に即しています。

ブローカーに尋ねたが、全く連絡がつかず、役に立たなかった。
 
Zmeev:

フォルツァ

受け取った残りの口座内容は事実です。

ブローカーに尋ねたが、全く知識がなく、何の役にも立たない。

だから、どうやら他の手段で自ら状況を監視しているようで、普通はSMSを送ったり、電話をかけたり、そして閉じたり......。

状況によって異なりますが、リスクマネージャーが監視しています。サーバーが完全に設定されていない可能性があります...

 
Aleksey Vyazmikin:

ところで、目的は何ですか?GOを計算するために?

目標はシンプルで、正しいクラスターインジケーター です。基本的に、価格が米ドルであることが明らかな場合、端末がRURを返す理由は明らかではありません。正常なのでしょうか?

プロストトレーダー

私はすべてをポイントに変換し、ポイントを使って仕事をしています。

ポイントを価格に換算する必要がある場合は、次のようにします。

価格はどのような通貨になるのでしょうか?また、わからないのか。異なる商品の価格を共通の価格に変換する必要があるのですが。

理由: