프로그래밍 방식으로 "마진 백분율"을 얻는 방법

 

터미널 창 "계약 사양"에 "마진율" 항목이 있습니다. 이론적 으로 SymbolInfoDouble() 함수에 의해 반환되어야 하지만 그 지정자 중에서 이 "Margin Percentage"를 찾을 수 있는 값을 찾지 못했습니다. 프로그래밍 방식으로 어떻게 얻을 수 있습니까?


 
이 마진 비율은 무엇을 의미합니까?
 
Alexey Viktorov :
이 마진 비율은 무엇을 의미합니까?
CFD의 마진 계산에 사용됩니다. ENUM_SYMBOL_CALC_MODE 에 대한 설명을 참조하십시오.
 

질문이 불완전해서 죄송합니다. 더 자세히 물어봤어야 했습니다.

그리고 목표는 무엇입니까? 여백이 어떻게 올바르게/잘못 계산되는지 확인합니까? 그렇지 않은 경우 설명의 해당 공식에서 계산할 수 있습니다. 그리고 어떻게 해야 할까요?

 
Alexey Viktorov :

질문이 불완전해서 죄송합니다. 더 자세히 물어봤어야 했습니다.

그리고 목표는 무엇입니까? 여백이 어떻게 올바르게/잘못 계산되는지 확인합니까?

목표, 적절한 상상력으로 많은 것을 생각해 낼 수 있습니다. :) 그리고 "정확한 / 부정확한"을 확인하기 위한 것은 절대 아닙니다.

그렇지 않은 경우 설명의 해당 공식에서 계산할 수 있습니다.

그래서 방법? 그녀에게는 바로 이 "마진율"이 필요합니다. 당신은 그것을 당신의 손으로 몰아넣을 것을 제안합니까? :) 코드는 프로그래밍 방식으로 그것을 얻을 수 있어야 합니다.

그리고 어떻게 해야 할까요?

이제 질문은 다음과 같습니다. 프로그래밍 방식으로 "마진 백분율" 값을 가져옵니다. 테이블에 있으므로 프로그래밍 방식으로 가져올 수 있어야 합니다. 그리고 다음에해야 할 일은이 주제에 적용되지 않는 별도의 질문입니다.
 

SymbolInfoDouble 참조

 SymbolInfoDouble (symbol, SYMBOL_MARGIN_INITIAL );
SymbolInfoDouble (symbol, SYMBOL_MARGIN_MAINTENANCE );
 
Taras Slobodyanik :

SymbolInfoDouble 참조


불행히도, 그렇지 않습니다. MT4에서 이러한 값은 일반적으로 0입니다.
 

그래서 정리?

 double procentMgn;
procentMgn= AccountBalance ()* 100 / MarketInfo ("GOLD",MODE_MARGINREQUIRED);
 
Renat Akhtyamov :

그래서 정리?

아니, 그렇지 않습니다.

1. MarketInfo() 함수는 더 이상 사용되지 않습니다.

2. MODE_MARGINREQUIRED는 짧은 간격에 대해 긴 포즈에 대해서만 올바른 결과를 반환합니다.

3. MODE_MARGINREQUIRED는 내가 필요하지 않은 예금 통화로 이미 결과를 반환합니다.

4. 보증금의 일정 비율은 필요하지 않습니다. 기호에 대한 "Margin Percentage" 매개변수 값만 있으면 됩니다. 그리고 내가 필요한 것을 계산할 수 있습니다.

 
ir0407 :

아니, 그렇지 않습니다.

1. MarketInfo() 함수는 더 이상 사용되지 않습니다.

2. MODE_MARGINREQUIRED는 짧은 간격에 대해 긴 포즈에 대해서만 올바른 결과를 반환합니다.

3. MODE_MARGINREQUIRED는 내가 필요하지 않은 예금 통화로 이미 결과를 반환합니다.

4. 보증금의 일정 비율은 필요하지 않습니다. 기호에 대한 "Margin Percentage" 매개변수 값만 있으면 됩니다. 그리고 내가 필요한 것을 계산할 수 있습니다.

MT5가 필요한 경우 포럼의 다른 섹션에 있습니다.

당신은 잘 알려진 지식으로 놀라지 않았거나 오히려 더 나빠졌습니다.

1. 실제로는 MarketInfo() 함수가 아니라 표현식이며, 그 결과는 백분율이 됩니다.

2. 소수점 이하 4자리가 없으므로 장단기 %의 여백은 동일합니다.

3. 곱하기만 하면 된다

procentMgn

0.01로 당신은 행복할 것입니다.

 
ir0407 :

목표, 적절한 상상력으로 많은 것을 생각해 낼 수 있습니다. :) 그리고 "올바른/잘못된"을 확인하는 것은 절대 아닙니다.

그래서 방법? 그녀에게는 바로 이 "마진율"이 필요합니다. 당신은 그것을 당신의 손으로 몰아넣을 것을 제안합니까? :) 코드는 프로그래밍 방식으로 그것을 얻을 수 있어야 합니다.

이제 질문은 다음과 같습니다. 프로그래밍 방식으로 "마진 백분율" 값을 가져옵니다. 테이블에 있으므로 프로그래밍 방식으로 가져올 수 있어야 합니다. 그리고 다음에해야 할 일은이 주제에 적용되지 않는 별도의 질문입니다.

글쎄요... 환상은 우리의 전부입니다... 하지만 왜 당신을 도우려는 사람들이 당신이 상상한 것에 대해 환상을 가져야 하는지 명확하지 않습니다. 글쎄요, 그건 질문이 아닙니다.

해당 공식에서 필요한 것을 얻는 방법:

공식 자체는 마진 = 랏 *ContractSize*MarketPrice*Percentage/100입니다.

따라서 백분율 = 마진/ ( 랏 *ContractSize*MarketPrice/100 )

ir0407 :

1. MarketInfo() 함수는 더 이상 사용되지 않습니다.

지금까지 이것은 사용되지 않는 기능 목록에 없습니다 . 따라서 여백 백분율을 결정하기 위해 누락된 값을 제공합니다.

 MarketInfo ( _Symbol , MODE_MARGINREQUIRED );

현재 시점에서 모든 데이터를 수신한 현재 가격으로, 주문 개시 시 유지되는 마진을 주문 개시 가격으로 쉽게 재계산할 수 있습니다.

mql5가 필요한 경우 사용해야 합니다.

 bool    SymbolInfoMarginRate ( 
   string              name,                     // символ 
   ENUM_ORDER_TYPE     order_type,               // тип ордера 
   double &             initial_margin_rate,       // коэффициент взимания начальной маржи 
   double &            maintenance_margin_rate   // коэффициент взимания поддерживающей маржи 
   );
Устаревшие функции - Справочник MQL4
Устаревшие функции - Справочник MQL4
  • docs.mql4.com
Устаревшие функции - Справочник MQL4