[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 105
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
veja aqui: https: //docs.mql4.com/ru/basis/operations/math
Você também pode fazer isso.
não seria igual a um?
Eu verifiquei. Um.
Criar bandeiras, por exemplo,
Para TP1 é bool TP1, para TP2 é bool TP2, etc...
Inicialmente seus valores são falsos.
Antes do próximo fechamento, você faz uma verificação:
se (!TP1) {código para fechamento parcial da primeira parte, após fechamento bem sucedido escreva TP1=verdadeiro}
se (!TP2) {código para fechar parcialmente a segunda parte, após um fechamento bem sucedido escreva TP2=verdadeiro}
... e assim por diante para todas as partes...
Assim, as bandeiras sinalizarão que cada parte já foi fechada uma vez.
Obrigado! Reformulou o código... TP0===falso Coloquei-o no início do programa .
O problema permanece: 1ª parte fecha e imediatamente começa a fechar 2ª :-( ..., com erro 131 para segunda, compreensível - tamanho de lote diferente ) Mas outra nuance é que para 1ª parte ""Alerta ("Fechado ",Lote," Compra de Lote ",Bilhete);""" não escreve em log, ou seja, não chega à verificação Ans===verdadeiro. Por que ???? Abaixo está um pedaço de código...
Obrigado de antemão!
while(true) // Fechar o laço da horda.
{
if (TP0===falso && (Cls_B0===verdadeiro ||Cls_S0===verdadeiro))
{
LotC=MathRound(Lot/4/Step)*Step;
Alert("Lot-",Lot, "Attempting to close-",LotC," Lot Buy ",Ticket,". À espera de resposta...");
RefreshRates(); // Refresh data
Ans=OrderClose(Ticket,LotC,Bid,5); // TicketClose Buy 1/3 lots?
if (Ans===verdadeiro) // Funcionou :)
{
TP0=verdadeiro;
Alerta ("Fechado ",Lote," Compra de Lote ",Bilhete);
quebra; // Sair do circuito fechado
}
se (Fun_Error(GetLastError())==1) // Tratamento de erros
continuar; // Tentativa
retornar; // Sair do início()
}
Caros programadores!
Ajude, por favor. O indicador desenha valores sobre uma divergência latente em alta, e não desenha uma latente.... em baixa. Ele escreve, esse erro 4002 - índice de matriz - fora da faixa.
Parece que já consertei tudo... Levei uma noite inteira... E é uma vergonha - o código é o mais simples... Mas é desenhar touros com flechas, mas não ursos. POR FAVOR! Qual é o erro em 14?????????????????????
Alena,
Você precisa alocar memória para arrays vpadcci[], v[], hh[], ss[]. Eles são declarados dinâmicos, mas seu tamanho não é especificado em nenhum lugar. O tamanho de uma matriz dinâmica é especificado usando a função ArrayResize().
P.S. E por favor, use o botão SRC para inserir o código
Pergunta para MT5. Como posso saber que o Strategy Tester completou seu trabalho? Exceto visualmente :)
A função deinit() é executada quando o trabalho é concluído. Consequentemente, se chegarmos lá, isso significa que o trabalho do especialista está terminado. Para determinar se o trabalho no testador está em andamento, use a função IsTesting().
Desculpe, eu notei que esta pergunta está relacionada ao MT5.
É o mesmo lá, somente OnDeinit() e MQL5InfoInteger(MQL5_TESTING).
Alena,
Você precisa alocar memória para as arrays vpadcci[], v[], hh[], ss[]. Eles são declarados dinâmicos, mas seu tamanho não é especificado em nenhum lugar. O tamanho de uma matriz dinâmica é definido usando a função ArrayResize().
P.S. E por favor use o botão SRC para inserir o código
Muito obrigado pela resposta, eu vou dar uma olhada!
Favor informar como registrar corretamente que a cor do indicador VininI LRMA.mq4 https://www.mql5.com/ru/code/8200 mudou.
Se você usar iCustom duplo ( símbolo de corda, int timeframe, nome da corda, ..., modo int, int shift). Eu não consigo entender. Eu escrevi iCustom(NULL,0, "VininI_LRMA_color",55,0,1) e não sei o que fazer com ele))
Os valores das linhas estão nos buffers indicadores 1 (verde) e 2 (vermelho). Quando uma linha verde é desenhada no gráfico, a variável acima na barra 1 tem o valor desta linha, e a variável dn=EMPTY_VALUE e vice versa. EMPTY_VALUE é um valor tampão vazio, seu valor numérico é 2147483647.
Você pode então usar estes valores como desejar.
Podemos criar uma EA que feche todas as ordens quando o take-profit da última ordem aberta disparar?