MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1260

 
Valeriy Yastremskiy :

조금 이해가 되지 않았지만 매 틱에서 포지션 상태를 요청하는 것 외에는 포지션 청산 순간을 추적하는 방법은 무엇입니까? 물론 이것은 심문할 모든 입장은 아니지만, 매 틱마다 요청이 이루어집니다.

문서를 주의 깊게 연구하십시오.

Документация по MQL5: Обработка событий / OnTradeTransaction
Документация по MQL5: Обработка событий / OnTradeTransaction
  • www.mql5.com
При обрабокте транзакций типа TRADE_TRANSACTION_REQUEST для получения дополнительной информации необходимо анализировать второй и третий параметры функции OnTradeTransaction() – Отправка торгового запроса на покупку приводит к цепи торговых транзакций, которые совершаются на торговом счете: 1) запрос  принимается на обработку, 2) далее для...
 
Yevhenii Levchenko :
이것은 모든 틱에서 확인되지 않습니다. 신호가 있으면 검증이 시작되고 거래가 열립니다. 그리고 다 :)

mql4에서 요리사 *** 청소부가 부족합니다. 그리고 질문은 mql5에 관한 것이었습니다.

 
Alexey Viktorov :

문서를 주의 깊게 연구하십시오.

고맙습니다. 영장을 명령으로 바꾸면 이해가 더 쉽습니다. 나는 주문 주문의 실행이 거래임을 보지 못했습니다. 일반적으로 작성하고 구현하기가 어렵습니다.)))
그래서 그렇습니다. MT4에는 OnTradeTransaction() 이 없습니다 .
 
Valeriy Yastremskiy :
고맙습니다. 영장을 명령으로 바꾸면 이해가 더 쉽습니다. 나는 주문 주문의 실행이 거래임을 보지 못했습니다. 일반적으로 작성하고 구현하기가 어렵습니다.)))
그래서 그렇습니다. MT4에는 OnTradeTransaction() 이 없습니다 .

자신의 용어를 대체하지 말고 해당 용어를 받아들이는 것이 좋습니다. 시간이 지남에 따라 익숙해지면 대화의 언어에 따라 이해하게 될 것입니다. 반대로 MT4에서는 시장가 주문을 포지션이라고 부르는 것이 좋습니다. 이것은 많은 사람들이 잘 알고 있습니다.

 
Alexey Viktorov :

자신의 용어를 대체하지 말고 해당 용어를 받아들이는 것이 좋습니다. 시간이 지남에 따라 익숙해지면 대화의 언어에 따라 이해하게 될 것입니다. 반대로 MT4에서는 시장가 주문을 포지션이라고 부르는 것이 좋습니다. 이것은 많은 사람들이 잘 알고 있습니다.

비밀 이해))) 이익 및 손절매 주문입니다. 명령이 더 명확할 것입니다. 혼란은 주문이 주문이자 거래이자 위치인 MT4에서 비롯됩니다. 따라서 MT5에서는 주문을 말하지만 주문을 의미합니다)
 

그러한 구조를 초기화하는 방법은 무엇입니까?

 struct Data
  {
   double             open[];
   double             high[];
   double             low[];
   double             close[];
  };

   Data rates [5] = { 0.0 , 0.0 , 0.0 , 0.0 }; //ошибка
 
Fast235 :

그러한 구조를 초기화하는 방법은 무엇입니까?

4 ~ 5. 구문을 모르겠습니다. 2차원 배열에서는 논리적이어야 하는 것처럼 보입니다.
 
Fast235 :

그러한 구조를 초기화하는 방법은 무엇입니까?

no way(구조의 각 필드만 한 번에 하나씩)

배열의 크기를 설정해야 합니다. 이를 위해 생성자를 작성할 수 있지만 문제가 있습니다. 구문을 사용하면 생성자를 사용하여 구조의 배열을 생성할 수 없습니다.

솔루션 - 구조 대신 클래스를 사용하고 포인터 를 사용하면 클래스 생성자에서 배열 크기를 초기화할 수 있습니다. 데이터를 복사할 수 있습니다.


발레리 야스트렘스키 :
4~5. 문법을 모르겠습니다. 2차원 배열에서는 논리적이어야 하는 것처럼 보입니다.
 struct S
  {
   int a;
   double b;
  };

//+------------------------------------------------------------------+
void OnStart ()
{
   S s[ 2 ] = {{ 1 , 1.1 },{ 9 , 9.9 }};
   ArrayPrint (s);
}
//+------------------------------------------------------------------+

2020.09.23 08:27:09.554 tst (EURUSD,H1) [a][b]

2020.09.23 08:27:09.554 tst (EURUSD,H1) [0] 1 1.10000

2020.09.23 08:27:09.554 tst (EURUSD,H1) [1] 9 9.90000

 
Fast235 :

그러한 구조를 초기화하는 방법은 무엇입니까?

   Data rates [5] = { 0.0 , 0.0 , 0.0 , 0.0 }; //ошибка

초기화 및 재설정 개념은 다릅니다. 재설정하면 시도로 판단하면

   ZeroMemory (rates);
 
Igor Makanu :

no way(구조의 각 필드만 한 번에 하나씩)

배열의 크기를 설정해야 합니다. 이를 위해 생성자를 작성할 수 있지만 문제가 있습니다. 구문을 사용하면 생성자를 사용하여 구조의 배열을 생성할 수 없습니다.

솔루션 - 구조 대신 클래스를 사용하고 포인터 를 사용하면 클래스 생성자에서 배열 크기를 초기화할 수 있습니다. 데이터를 복사할 수 있습니다.


2020.09.23 08:27:09.554 tst (EURUSD,H1) [a][b]

2020.09.23 08:27:09.554 tst (EURUSD,H1) [0] 1 1.10000

2020.09.23 08:27:09.554 tst (EURUSD,H1) [1] 9 9.90000

고맙습니다. 중괄호)))) 배열 구문이 아님)