초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 42

 

안녕하세요! MQL5에서 간단한 작업을 수행하는 방법을 알 수 없습니다. 클래스 수준 변수(3D 배열 유형 이중)를 선언한 다음 생성자에서 후기 초기화를 수행해야 합니다. C#에서는 다음과 같이 보일 것입니다.

public class MyClass
{
   
  private double[,,] myArray;
   
  public MyClass(int dimension1, int dimension2, int dimension3)

{
   myArray = new double[dimension1, dimension2, dimension3];

}

MQL5에서 유사한 결과를 얻는 방법은 무엇입니까? 3D 동적 배열 을 선언할 수 있습니다. 그러나 ArrayResize 함수를 사용하면 첫 번째 차원에만 메모리를 할당할 수 있습니다. 나머지 두 개는 어떻게 될까요?

Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 
안녕하세요! 친애하는 포럼 사용자! 여기 누군가 힌트를 줄 수 있습니까?
 int OnInit ()
  {
//---
   Print ( ACCOUNT_BALANCE );
   Print (SYMBOL_MARGIN_INITIAL); //Начальная (инициирующая) маржа обозначает размер необходимых залоговых средств в маржинальной валюте для открытия позиции объемом в один лот. Используется при проверке средств клиента при входе в рынок.
  
   printf ( "ACCOUNT_BALANCE =  %G" , AccountInfoDouble ( ACCOUNT_BALANCE ));
   printf ( "ACCOUNT_CREDIT =  %G" , AccountInfoDouble ( ACCOUNT_CREDIT ));
   printf ( "ACCOUNT_PROFIT =  %G" , AccountInfoDouble ( ACCOUNT_PROFIT ));
   printf ( "ACCOUNT_EQUITY =  %G" , AccountInfoDouble ( ACCOUNT_EQUITY ));
   printf ( "ACCOUNT_MARGIN =  %G" , AccountInfoDouble ( ACCOUNT_MARGIN ));
   printf ( "ACCOUNT_FREEMARGIN =  %G" , AccountInfoDouble ( ACCOUNT_FREEMARGIN ));
   printf ( "ACCOUNT_MARGIN_LEVEL =  %G" , AccountInfoDouble ( ACCOUNT_MARGIN_LEVEL ));
   printf ( "ACCOUNT_MARGIN_SO_CALL = %G" , AccountInfoDouble ( ACCOUNT_MARGIN_SO_CALL ));
   printf ( "ACCOUNT_MARGIN_SO_SO = %G" , AccountInfoDouble ( ACCOUNT_MARGIN_SO_SO ));
  
   MqlTradeRequest request={ 0 };
       MqlTradeResult result={ 0 };
      
 
  {
    request.    action= TRADE_ACTION_DEAL ;           // Тип выполняемого действия
  
    request.                        volume= 1 ;           // Запрашиваемый объем сделки в лотах     
    request.               type= ORDER_TYPE_SELL ;             // Тип ордера
    
   }
   
   OrderSend (request,result); 
  
  
   int Error= GetLastError (); ResetLastError ();
         printf ( "Error %i " ,Error);
      
        
        
       
  
  
  
  
  
  
  
  
//---
   return ( 0 );
  }
//+------------------------------------------------------------------+

ERR_TRADE_SEND_FAILED
4756
거래 요청을 보내지 못했습니다.

왜 작동하지 않았습니까? 어쩌면 전문 마스터가 어디를 봐야할지 빠르게 알려줄 것입니다. 그렇지 않으면 저녁까지 추측 할 수 있습니다..

Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - Документация по MQL5
 
Dimka-novitsek :
안녕하세요! 친애하는 포럼 사용자! 여기 누군가 힌트를 줄 수 있습니까?

ERR_TRADE_SEND_FAILED
4756
거래 요청을 보내지 못했습니다.

왜 작동하지 않았습니까? 어쩌면 전문 마스터가 어디를 봐야할지 빠르게 알려줄 것입니다. 그렇지 않으면 저녁까지 추측 할 수 있습니다..

추측할 필요가 없습니다. MqlTradeRequest 요청의 정보를 살펴봐야 합니다. 괜히 만든 것이 아닙니다.

음, 우선 판매할 가격을 표시하지 않았습니다.

 
Dimka-novitsek : 어디를 봐야하는지 빨리 알려줄 것입니다. 그렇지 않으면 저녁까지 추측 할 수 있습니다 ..
먼저 이러한 유형의 작업에 대해 요청 변수에 채워야 하는 필수 필드 수를 확인해야 합니다.
 
감사해요!!! 어쩐지 즉석 실행으로 가격이 이해가 간다는 생각이 들었습니다..
 
안녕하세요! 기능을 사용하는 방법을 잘 이해하지 못합니다
 for ( int i= 0 ;i< 10 ;i=i+ 0.1 ){ Print ( "i " ,i);  
 bool    OrderCalcMargin (
         action= ORDER_TYPE_SELL ,           // тип ордера
                  symbol= _Symbol ,           // имя символа
                  volume=i,           // объем
                  price=last_tick.bid,             // цена открытия
   double &               margin             // переменная для получения значения маржи
   ); 
   Print ( " margin  " , margin );  }
  

'OrderCalcMargin' - 함수는 deposit.mq5의 전역 범위에서만 선언될 수 있습니다. mq5 86 8 간단히 말해서 뭔가 잘못되었습니다.

일반적으로 보증금의 백분율을 사용하는 함수를 만들고 싶습니다. 예를 들어, 50%는 하프 디포 딜입니다. 그냥 이해하고 싶은데 실제로 1로트는 얼마인가요?? 프로그래밍 방식으로 계산할 수 있습니까? 내가 생각하는 셋째 날, 나는 읽고, 나는 이해하지 못했습니다. 그리고 제비는 또한 모든 곳에서 다를 수 있습니다. 이는 거래 유형 , 계정에 따라 다릅니다!!

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства сделок
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства сделок
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства сделок - Документация по MQL5
 
Dimka-novitsek :
안녕하세요! 기능을 사용하는 방법을 잘 이해하지 못합니다

'OrderCalcMargin' - 함수는 deposit.mq5의 전역 범위에서만 선언될 수 있습니다. mq5 86 8 간단히 말해서 뭔가 잘못되었습니다.

드미트리!

함수 가 무엇이며 함수 호출 이 무엇인지 주의 깊게 읽으십시오.

이제 광고와 용도가 완전히 엉망이 되었습니다.

 
Dimka-novitsek : 나는 단지 이해하고 싶습니다, 실제로 1 lot은 얼마 입니까 ?? 프로그래밍 방식으로 계산할 수 있습니까? 내가 생각하는 셋째 날, 나는 읽고, 나는 이해하지 못했습니다. 그리고 제비는 또한 모든 곳에서 다를 수 있습니다. 이는 거래 유형 , 계정에 따라 다릅니다!!
Dimon Vladimirych, 두 번째 질문에 대한 답을 얻으려면 제목으로 "통화 거래의 ABC"라는 기사를 찾으십시오. MT4에서 작성된 것으로 보이지만 초자연적인 것은 아닙니다.
 

고맙습니다!

네, 중복 기능이 화났어요 - 망했어요..

 

여전히 맹세합니다. action=ORDER_TYPE_SELL이라고 하면 이 'action'과 같이 맹세합니다. 선언되지 않은 식별자입니다. 따라서 ENUM_ORDER_TYPE action=ORDER_TYPE_SELL은 '액션'과 같이 맹세합니다. 예기치 않은 토큰입니다.

그리고 모든 곳에서 .. 그리고 영어로 ...

 for ( int i= 0 ;i< 10 ;i=i+ 0.1 ){ Print ( "i " ,i);  
   OrderCalcMargin (
       ENUM_ORDER_TYPE   action= ORDER_TYPE_SELL ,           // тип ордера
                  symbol= _Symbol ,           // имя символа
                  volume=i,           // объем
                  price=last_tick.bid,             // цена открытия
                 margin             // переменная для получения значения маржи
   ); 
   Print ( " margin  " , margin );  }