Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1876
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Preciso dele para tomar uma decisão sobre o que fazer a seguir.
Na janela do histórico do terminal MT5, você pode selecionar um negócio, pedido ou posição.
Na história comercial você precisa procurar uma troca com DEAL_REASON igual a DEAL_REASON_SL.
Acrescentado: Pode ser simplificado - na OnTradeTransaction basta pegar a transação TRADE_TRANSACTION_DEAL_ADD e chamar para o histórico comercial procurar o DEAL que criou esta transação. E então a mesma receita: ... DEAL_REASON é igual a DEAL_REASON_SL
A função não funcionará corretamente para a MQL
https://www.mql5.com/ru/docs/strings/stringcompare
Se há duas constantes no enum, por exemplo ENUM1 e enum1, então com i_str: a função"enum1" pode retornar o valor da constanteENUM1. Por que precisamos da StringCompare de qualquer maneira? Se isso puder ser feito da seguinte maneira:
E uma variante mais rápida:
Para que serve tudo isso? Você quer substituir os valores numéricos de ENUM_TIMEFRAMES por seus próprios valores? Ou o quê?
Bem, neste momento preciso escrever as configurações dos indicadores e os parâmetros da EA no banco de dados. Ao mesmo tempo, eu gostaria de ter:
1. Registros legíveis por humanos
2. Registros legíveis por máquina
3. a estabilidade para adicionar novos valores no enumero personalizado, não necessariamente no final.
Não há problema com o registro - EnumToString, mas os desenvolvedores não fizeram a função inversa, ao contrário de todos os outros tipos.
E versão mais rápida:
Concordo com a comparação não sensível a casos, escrevi uma bicicleta mais generalizada para meu próprio enumero, onde não uso letra minúscula.
Mas se para ENUM_TIMEFRAMES executar esta variante:
você pode ter tempo para um café enquanto ele pega, por exemplo, para PERÍODO_MN1 :)Obter os preços das linhas retas em cada barra e comparar ou encontrar a diferença, em lugares onde os sinais das diferenças de cruzamento mudam) A propósito, pode não haver igualdades na barra.
Ajude por favor, eu desenho duas linhas Gunn e elas se interceptam em um determinado ponto, preciso saber as coordenadas do ponto de interseção dessas linhas.
Concordo com a comparação com o caso ignorado, escrevi uma bicicleta mais generalizada para mim mesmo, para meu próprio enumero, onde não uso letra minúscula.
Mas se para ENUM_TIMEFRAMES esta variante for executada:
você pode ter tempo para tomar café enquanto ele pega, por exemplo, para PERÍODO_MN1 :)Bem, em ENUM_TIMEFRAMES são conhecidos os valores mínimo e máximo. É por isso que eles podem ser especificados explicitamente.
Com o restante do enumero, é suficiente conhecer sua faixa aproximada de valores. Se as constantes não forem especificadas na declaração de enumeração, os valores lá são geralmente de 0. i_max_enum podem ser especificados por qualquer número de dois ou três dígitos: 50, 100, 255.
Neste momento, preciso escrever as configurações de indicadores e parâmetros EA no banco de dados. Ao mesmo tempo, eu gostaria de ter:
1. Registros legíveis por humanos
2. Registros legíveis por máquina
3. Estabilidade para acrescentar novos valores em seu enumero personalizado, não necessariamente no final.
Não há problema com o registro - EnumToString, mas os desenvolvedores não fizeram uma função inversa, ao contrário de todos os outros tipos.
Você já tentou imprimir uma enumeração?
O que você acha que será impresso?
Mas criar uma enumeração programática... sim. Isso seria interessante.
Por que não podemos passar através dos parâmetros de entrada? Por que você está nos punindo desta maneira?
Bem, em ENUM_TIMEFRAMES são conhecidos os valores mínimo e máximo. Portanto, elas podem ser definidas explicitamente.
Com outros enumeros, é suficiente conhecer sua faixa aproximada de valores. Se as constantes não forem especificadas na declaração enumerativa, os valores aí normalmente começam em 0. i_max_enum podem ser definidos por qualquer número de dois ou três dígitos: 50, 100, 255.
Você também pode obter experimentalmente os valores mínimo e máximo do enumero. Anote-os e especifique-os em StringToEnum para obter a velocidade mais otimizada:
Resultado do roteiro:
Abrir ENUM_ACCOUNT_INFO_DOUBLE e ver. O número de constantes é Count (14). Assim, no início da aplicação você pode manusear todos os enumeros necessários, escrever seus valores mínimo e máximo e usar o StringToEnum correspondente ao mínimo e máximo com a melhor velocidade.
P.S. A segunda variante do enumFindMinMax com INT_MIN e INT_MAX é realmente muito lenta. Eu tentei no início. Depois fiquei cansado de esperar que o enumFindMinMax terminasse e definisse valores de -500 a 500.
Assim, cheguei à conclusão de que não é necessário utilizar toda a gama int.