Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1260

 
Valeriy Yastremskiy:

Não entendo, como posso acompanhar o momento em que uma posição é fechada, a não ser consultando o estado da posição em cada tick? É claro que nem todas as posições são consultadas, mas ainda há uma consulta em cada carrapato.

Estudar cuidadosamente a documentação.

Документация по MQL5: Обработка событий / OnTradeTransaction
Документация по MQL5: Обработка событий / OnTradeTransaction
  • www.mql5.com
При обрабокте транзакций типа TRADE_TRANSACTION_REQUEST для получения дополнительной информации необходимо анализировать второй и третий параметры функции OnTradeTransaction() – Отправка торгового запроса на покупку приводит к цепи торговых транзакций, которые совершаются на торговом счете: 1) запрос  принимается на обработку, 2) далее для...
 
Yevhenii Levchenko:
Não é verificado em cada carrapato. Se houver um sinal, ele começa a verificar e abre um acordo. Isso é tudo :)

Em mql4, por falta de um cozinheiro *** o zelador. A pergunta era sobre mql5

 
Alexey Viktorov:

Estudar cuidadosamente a documentação.

Obrigado. Se substituirmos o pedido por um pedido, é mais fácil de entender. Ainda não vi que a execução da ordem é um acordo. Em geral, é difícil de escrever e implementar))))
Mas sim. NãoOnTradeTransaction() no mt4.
 
Valeriy Yastremskiy:
Obrigado. Se o pedido for substituído por um pedido, é mais fácil de entender. Eu não vi que a execução de uma ordem é um acordo. Em suma, é escrito e implementado de forma complicada)).
Como está, sim. NãoOnTradeTransaction() no mt4.

É melhor tentar aceitar a terminologia que você tem e não substituir a sua própria. Você se acostumará com o tempo e o entenderá, dependendo do idioma que estiver usando. Pelo contrário, na MT4, uma ordem de mercado é melhor ser chamada de uma posição. É assim que muitas pessoas o entendem.

 
Alexey Viktorov:

É melhor tentar aceitar a terminologia como ela é, em vez de substituir a sua própria terminologia. Com o tempo, você se acostumará e o entenderá, dependendo do idioma de que estiver falando. Mesmo vice versa, na MT4 uma ordem de mercado é melhor referida como uma posição. É assim que muitas pessoas o entendem.

Entendimentos misteriosos))) ter lucro e parar de perder são ordens. As ordens seriam mais claras. A confusão vem do mt4, onde uma ordem é uma ordem, um comércio e uma posição. É por isso que eu digo ordem em mt5 e ordens mesquinhas)
 

como rubricar tal estrutura?

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

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

como rubricar tal estrutura?

4 a 5. Eu não conheço a sintaxe. Parece que deveria estar em uma matriz bidimensional por lógica.
 
Fast235:

como inicializar tal estrutura?

de jeito nenhum ( apenas cada campo da estrutura um por um )

você precisa definir o tamanho das matrizes, você poderia escrever um construtor para isso, mas haverá um problema - a sintaxe não permitirá que você crie uma matriz de estruturas com um construtor

solução - use uma classe em vez da estrutura e use ponteiros, você pode inicializar os tamanhos das matrizes no construtor da classe, e os dados podem ser copiados nelas


Valeriy Yastremskiy:
4 a 5. Eu não conheço a sintaxe. Deve estar na matriz bidimensional pela lógica.
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:

como rubricar tal estrutura?

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

Há uma diferença entre inicialização e zeragem. Se a zeragem, a julgar por suas tentativas, é assim

  ZeroMemory(rates);
 
Igor Makanu:

de jeito nenhum ( apenas cada campo da estrutura um por um )

você precisa definir o tamanho das matrizes, você pode escrever um construtor para isso, mas haverá um problema - a sintaxe não permitirá criar uma matriz de estruturas com o construtor

solução - use classe em vez de estrutura e use ponteiros, então você pode no construtor da classe inicializar os tamanhos das matrizes, e os dados podem ser copiados nelas


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

Obrigado. Parênteses)))) sem sintaxe de matriz)
Razão: