오류, 버그, 질문 - 페이지 42

 
Kos :
MQL5 프로그램을 로드하는 것이 불가능하다면 그러한 구성을 컴파일하는 것이 무슨 의미가 있습니까?

메시지 주셔서 감사합니다. 조건 연산자 사용에 대한 NULL 구문 분석 오류가 수정되었습니다.
 

표시기의 최대 동적 배열 수는 얼마입니까?

Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 
dentraf :

표시기의 최대 동적 배열 수는 얼마입니까?

제한 사항은 하드웨어 리소스에 의해 결정됩니다.

얼마나 많은 메모리가 충분합니다.

 
dentraf :

표시기의 최대 동적 배열 수는 얼마입니까?

512개 이하의 표시기 배열이 있습니다. 일반적으로 모든 배열 - 충분한 메모리 양
 

기능을 테스트하기 위해 이 스크립트를 작성했습니다.

OrderCalcMargin()

오류 4002를 반환합니다. 내가 무엇을 잘못했습니까?

 void OnStart ()
  {
   int total= SymbolsTotal (false);
   double marginbay;
   double marginsell;
   MqlTick pr;
   for ( int i= 0 ;i<=total;i++)
     {
       if (OrderCalcMargin( ORDER_TYPE_BUY , SymbolName (i,false), 1.0 ,pr.ask,marginbay))
         Print ( "Маржа для покупки " + SymbolName (i,false)+ " = " , DoubleToString (marginbay));
       else Print ( "Ошибка  № - " , GetLastError ());

       if (OrderCalcMargin( ORDER_TYPE_SELL , SymbolName (i,false), 1.0 ,pr.bid,marginsell))
         Print ( "Маржа для продажи " + SymbolName (i,false)+ " = " , DoubleToString (marginsell));
       else Print ( "Ошибка  № - " , GetLastError ());

     }
  }
 

이상하게도 현재 가격 요청 구조를 사용하지 않으면 #AA 유형의 상품을 제외하고 모든 것이 계산됩니다. 이 경우 0을 반환합니다. 왜 그런지 궁금합니다. 그런 다음 그러한 상품의 마진을 계산하는 방법

 void OnStart ()
  {
   int total= SymbolsTotal (false);
   double marginbay;
   double marginsell;
   //MqlTick pr;
   for ( int i= 0 ;i<=total;i++)
     {
       if (OrderCalcMargin( ORDER_TYPE_BUY , SymbolName (i,false), 1.0 , SymbolInfoDouble ( SymbolName (i,false), SYMBOL_ASK ),marginbay))
         Print ( "Маржа для покупки " + SymbolName (i,false)+ " = " , DoubleToString (marginbay));
       else Print ( "Ошибка  № - " , GetLastError ());

       if (OrderCalcMargin( ORDER_TYPE_SELL , SymbolName (i,false), 1.0 , SymbolInfoDouble ( SymbolName (i,false), SYMBOL_BID ),marginsell))
         Print ( "Маржа для продажи " + SymbolName (i,false)+ " = " , DoubleToString (marginsell));
       else Print ( "Ошибка  № - " , GetLastError ());

     }
  }
Документация по MQL5: Получение рыночной информации / SymbolInfoTick
Документация по MQL5: Получение рыночной информации / SymbolInfoTick
  • www.mql5.com
Получение рыночной информации / SymbolInfoTick - Документация по MQL5
 
모두가 첫 번째 옵션이 작동하지 않는 이유를 알아냈고 함수를 작성해야 했습니다.
 SymbolInfoTick ( SymbolName (i,false),pr);
루프의 본문에 요청한 도구의 따옴표를 가져옵니다.
 void OnStart ()
  {
   int total= SymbolsTotal (false);
   double marginbay;
   double marginsell;
   MqlTick pr;
   for ( int i= 0 ;i<=total;i++)
     {
       SymbolInfoTick ( SymbolName (i,false),pr);
       if (OrderCalcMargin( ORDER_TYPE_BUY , SymbolName (i,false), 1.0 ,pr.ask,marginbay))
         Print ( "Маржа для покупки " + SymbolName (i,false)+ " = " , DoubleToString (marginbay));
       else Print ( "Ошибка  № - " , GetLastError ());

       if (OrderCalcMargin( ORDER_TYPE_SELL , SymbolName (i,false), 1.0 ,pr.bid,marginsell))
         Print ( "Маржа для продажи " + SymbolName (i,false)+ " = " , DoubleToString (marginsell));
       else Print ( "Ошибка  № - " , GetLastError ());

     }
  }
#AA와 같은 도구의 0 값에 대한 질문은 여전히 관련성이 있습니다.
[삭제]  
sergey1294 :

기능을 테스트하기 위해 이 스크립트를 작성했습니다.

오류 4002를 반환합니다. 내가 무엇을 잘못했습니까?


세르게이1294 :
모두가 첫 번째 옵션이 작동하지 않는 이유를 알아냈습니다. 요청한 도구의 따옴표를 가져오기 위해 루프 본문에 함수를 작성해야 했습니다. #AA와 같은 도구의 0 값에 대한 질문은 여전히 관련성이 있습니다.

글쎄, 당신이 돕기로 결정했다면 ... :)

추신

다른 분들은 모르겠지만 #AA 에 따르면 시장은 닫혀 있는 것 같아요...

 
여전히 그러한 질문은 올바르게 유형 코드가
 AccountInfoDouble ( ACCOUNT_FREEMARGIN ) - OrderCalcMargin();
MT4의 기능과 유사합니다.
AccountFreeMarginCheck()
[삭제]  
sergey1294 :
또 다른 질문, 유형 코드가 MT4의 기능과 유사하다는 것을 올바르게 이해합니다.

열린 위치 가 없으면 그 진술이 사실일 가능성이 가장 높고, 열린 위치가 있으면 약간 다른 그림이 있을 것입니다...