요새. 실행 질문 - 페이지 120

 
MQ 데모 서버에서 FORTS 섹션의 시세 표시기는 세 가지 통화(견적/이익, 마진, 기본)를 모두 RUR로 설정하지만 많은 시세 표시기(예: BR-, GOLD- 등)는 다음과 같이 명확하게 인용됩니다. 미화. 질문: 이 데모 설정에 결함이 있습니까? 그렇지 않다면 MQL에서 그러한 시세 표시기의 실제 시세 통화를 어떻게 알 수 있습니까?
 
Stanislav Korotky :
MQ 데모 서버에서 FORTS 섹션의 시세 표시기는 세 가지 통화(견적/이익, 마진, 기본)를 모두 RUR로 설정하지만 많은 시세 표시기(예: BR-, GOLD- 등)는 다음과 같이 명확하게 인용됩니다. 미화. 질문: 이 데모 설정에 결함이 있습니까? 그렇지 않다면 MQL에서 그러한 시세 표시기의 실제 시세 통화를 어떻게 알 수 있습니까?

네, USD로 표시되며 청산이 다시 계산되고 환율 차이가 고려됩니다.

 
Aleksey Vyazmikin :

네, USD로 표시되며 청산이 다시 계산되고 환율 차이가 고려됩니다.

어떤 의미에서 "네"? 실제로는 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 ()));
}

GO를 계산해야 하는 경우 루블의 모든 시세 표시기에 해당합니다.

추가됨

따라서 입력 매개 변수 - 점에서 이들은

모든 기기에 대한 보편적인 계산을 할 수 있습니다.

 

개설의 실제 계정. AccountInfoDouble 함수 를 사용하여 계정 데이터(잔액, 자금, 마진 등)를 얻으려고 합니다.

거의 모든 것이 잘되지만 다음 라인을 사용하여 마진 콜 및 스탑 아웃 레벨을 얻으려고 할 때:

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


나는 항상 0을 얻습니다. 다음과 같이 하는 경우에도 마찬가지입니다.

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


그것은 무엇과 관련이 있습니까? 왜 항상 0입니까? 이것은 브로커 또는 MT5 문제입니까?

 
Zmeev :

개설의 실제 계정. AccountInfoDouble 함수 를 사용하여 계정 데이터(잔액, 자금, 마진 등)를 얻으려고 합니다.

거의 모든 것이 잘되지만 다음 라인을 사용하여 마진 콜 및 스탑 아웃 레벨을 얻으려고 할 때:

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


나는 항상 0을 얻습니다. 다음과 같이 하는 경우에도 마찬가지입니다.

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


그것은 무엇과 관련이 있습니까? 왜 항상 0입니까? 이것은 브로커 또는 MT5 문제입니까?

외환?

 

요새.

동시에 계정의 나머지 수신 데이터는 현실에 해당합니다.

브로커에게 물어봤는데 주제에 전혀 없고 도와주지도 않았다.
 
Zmeev :

요새.

동시에 계정의 나머지 수신 데이터는 현실에 해당합니다.

브로커에게 물어봤는데 주제에 전혀 없고 도와주지도 않았다.

그래서 분명히 그들은 다른 수단을 통해 상황을 모니터링합니다. 일반적으로 SMS를 보내고 전화를 걸고 닫을 수 있습니다 ....

상황에 따라 다르며 이를 모니터링하는 위험 관리자가 있습니다. 글쎄, 서버가 완전히 구성되지 않았을 수 있습니다 ...

 
Aleksey Vyazmikin :

그리고 일반적으로 목적은 무엇입니까? 계산 GO?

목표는 간단합니다. 올바른 클러스터 지표 입니다. 원칙적으로 가격이 명확하게 USD인 경우 터미널이 RUR을 반환하는 이유는 명확하지 않습니다. 정상인가요?

단순 상인 :

나는 모든 것을 포인트로 번역하고 포인트로 작업합니다.

포인트를 가격으로 변환해야 하는 경우 다음을 사용합니다.

가격은 어떤 통화로 표시되나요? 다시, 알 수 없습니다. 그리고 다른 악기의 가격을 공통된 것으로 가져와야 합니다.