Perguntas de um "boneco" - página 141

 
Yedelkin:

O problema parece ser outra coisa.

O valor "3" não retorna de forma alguma :) Afinal de contas, as enumerações são numeradas a partir do zero.

Usar a função EnumToString para produzir valores de enumeração
 
Em MQL5, valores de períodos do tipo PERÍODO_M1 ... PERÍODO_MN1 são valores do tipo inteiro? Quero compará-los utilizando o operador do interruptor. Por exemplo, se a expressão estiver correcta:
input ENUM_TIMEFRAMES Period_code=PERIOD_H4;
int result; string big;

switch (Period_code)
{
case PERIOD_H4: { result=1; big="data 1"; break; }
case PERIOD_D1: { result=2; big="data 2"; break; }
}
 

Rosh:

Yedelkin:

O problema parece estar noutro lugar.

O valor "3" não retorna de forma alguma :) Porque as enumerações são numeradas a partir do zero.

Utilize a função EnumToString para produzir valores de enumeração

O estranho é que esta sugestão não surgiu mais cedo, quando o autor do tópico local estava a afirmar os seus resultados como"Retorna 3". OK, vamos seguir o caminho invicto.

T-G:

Retorna 3 - ou seja, SYMBOL_TRADE_EXECUTION_MARKET.

Seguindo o conselho da Roche, passamos um simples cheque (usando EnumToString):

//+------------------------------------------------------------------+
//|                                                       class5.mq5 |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3)));
  }
//+------------------------------------------------------------------+

E o que é que vemos? - O que vemos é que o número "3" não corresponde a SYMBOL_TRADE_EXECUTION_MARKET. Assim, voltamos a https://www.mql5.com/ru/forum/3775/page143#comment_192116

 
Paladin80:
Em MQL5 valores de períodos do tipo PERÍODO_M1 ... PERÍODO_MN1 são valores do tipo inteiro? Quero compará-los utilizando o operador do interruptor. Por exemplo, é a expressão:
ENUM_TIMEFRAMES é um enumero(Referência MQL5 / Verificação do estado / Período). As enumerações são um tipo de dados inteiros(Referência MQL5 / Fundamentos da língua / Tipos de dados / Tipos de dados inteiros / Enumerações ).
 
Olá, poderia dizer-me como verificar se uma Compra ou Venda foi fechada hoje para um determinado instrumento?
 
T-G:
Olá, pode dizer-me como verificar se a Compra e Venda de um determinado instrumento foi fechada hoje?

Se ninguém vai afixar o código pronto, então tente escrevê-lo você mesmo. Provavelmente a abordagem mais fácil é a seguinte: seleccionar a história das ofertas para um determinado dia(HistorySelect) e tentar procurar na história as ofertas que se referem ao símbolo seleccionado

DEAL_SYMBOL

Nome do símbolo para o qual foi feito o acordo

corda

depois verificar

DEAL_TIME

Hora do negócio

data/hora

и

DEAL_ENTRY_OUT

Saída do mercado

Se houvesse várias posições de fecho para um símbolo durante o dia, também se pode obter a hora de cada negócio e processá-lo de acordo com o algoritmo do autor.

 
Yedelkin:

O estranho é que esta sugestão não foi feita mais cedo, quando o autor do tópico local estava a afirmar os seus resultados como"Retorna 3". OK, vamos seguir o caminho invicto.

Seguindo o conselho da Roche, passamos um simples cheque (usando EnumToString):

//+------------------------------------------------------------------+
//|                                                       class5.mq5 |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3)));
  }
//+------------------------------------------------------------------+

E o que é que vemos? - O que vemos é que o número "3" não corresponde de modo algum ao SYMBOL_TRADE_EXECUTION_MARKET. Voltamos, portanto, a https://www.mql5.com/ru/forum/3775/page143#comment_192116.

E que tal isto? :)

Print("SYMBOL_TRADE_EXECUTION_MARKET=",SYMBOL_TRADE_EXECUTION_MARKET);
Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2)));
T-G:

Retorna 3 - ou seja SYMBOL_TRADE_EXECUTION_MARKET

3 é SYMBOL_TRADE_EXECUTION_EXCHANGE logicamente.

É melhor dizer-nos o quê e onde estamos a tentar negociar... :)

 
Interesting:

E que tal isto? :)

Print("SYMBOL_TRADE_EXECUTION_MARKET=",SYMBOL_TRADE_EXECUTION_MARKET);
Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2)));

Bem, é a mesma coisa. Apenas de outro ângulo. O número "3" e o valor da enumeração"SYMBOL_TRADE_EXECUTION_MARKET" não têm qualquerrelação. A única diferença está na relação de precedência.

Interessante:

3 é SYMBOL_TRADE_EXECUTION_EXCHANGE logicamente.

Não é assim tão "logicamente", mas é assim que as coisas são neste momento.

 
Yedelkin:

Bem, é a mesma coisa. Apenas de um ângulo diferente. O número "3" e o valor da enumeração"SYMBOL_TRADE_EXECUTION_MARKET" não estão relacionados de forma alguma.A única diferença está na relação de precedência.

Não é assim tão "logicamente", mas é assim que as coisas são neste momento.

Bem, faz sentido que tenhamos execução de troca(SYMBOL_TRADE_EXECUTION_EXCHANGE) e consequentemente não TP/SL
 
Interesting:
Portanto, faz sentido, temos execução de troca(SYMBOL_TRADE_EXECUTION_EXCHANGE) e, portanto, sem TP/SL
Em que parte do Manual de Referência se diz que um pedido de execução de troca não deve conter TP/SL?