Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 738
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
A mensagem ainda aparece no 12º minuto.
Inserir impressão, no início da função onde a matriz é preenchida
e mostrar o número de valores na segunda dimensão
Eu posso dizer de tudo que o NomNews entra no loop já em um estado maior que 999. Então você precisa descobrir por que isso acontece e reiniciar essa variável em algum lugar.
Para verificar isso, escreva-o no início do laço:
Sim, no 11º minuto a impressão é de 1000.
Inserir impressão, no início da função onde a matriz é preenchida
e mostrar o número de valores na segunda dimensão
Eu o inseri no iníciodo laço While e fiquei comalcance infinito= 1000. Eu o inseri no lugar errado?
Qual é este número (ou função?): data/hora TimeNewsFunck(int nomf)
{
string s=NewsArr[0][nomf];
string time=StringConcatenate(StringSubstr(s,0,4),"",StringSubstr(s,5,2),".",StringSubstr(s,8,2)," ",StringSubstr(s,11,2),":",StringSubstr(s,14,4));
return((datetime)(StringToTime(time) + GMTplus*3600))
}
E de onde vem o valor do int nomf ? Não consegui encontrá-lo.
Inseri-o no iníciode Whileloop e fiquei comalcance infinito= 1000. Coloquei-o no lugar errado?
Qual é este número (ou função?): data/hora TimeNewsFunck(int nomf)
{
string s=NewsArr[0][nomf];
string time=StringConcatenate(StringSubstr(s,0,4),"",StringSubstr(s,5,2),".",StringSubstr(s,8,2)," ",StringSubstr(s,11,2),":",StringSubstr(s,14,4));
return((datetime)(StringToTime(time) + GMTplus*3600))
}
E de onde vem o valor do int nomf ? Eu não o encontrei.
E depois há a função que eu tentei, mas não consegui descobrir. Pode ser a fonte do problema?
E depois há uma função que ainda não consegui descobrir, por mais que eu tenha tentado. Talvez seja aí que reside o problema?
Somente o próprio autor descobrirá isso. É melhor você enviar o código da OnTick()
Sim, no 11º minuto deu impressão de 1000.
Tente substituir
com esta linha.
Excesso((2*psd*usd)*((2*psd*usd)-C))/(C-1)) na fórmula.
Para exponenciar: ^0,5 não é *0,5
Se não houver um único comércio sobre o símbolo e majik, ou não houver um único lucro ou perda, ou houver apenas um par (C=1), obteremos a divisão por 0.
Antes da fórmula em si, você deve verificar se psd e usd são > 0, e C !=1
Os pares rentáveis são calculados com lucro > 1, perda < 1, com lucro=1 não são analisados, ou seja, 1 também tem que ser incluído em algum lugar neste ou naquele grupo.
Em sua função, seria melhor primeiro selecionar números de transação correspondentes ao símbolo e ao número mágico e depois verificar se o número deles mudou, se sim - recalcular zn, se não - retornar zn (zn neste caso não zerar e verificar != 0 não será necessário ao imprimir)
A coruja deixa de funcionar, porque se baseia nas variáveis ww e nn, e quando sua função funciona, elas mudam e quebram o algoritmo da coruja.
Nada teria sido compilado se tivesse havido um erro de projeto de código.Só posso dizer obrigado. Este é o único lugar no runet onde eles me ajudaram.
Agora a impressora gera o seguinte "Stop_Ma_v_5.1 EURUSD,M15: == contagem Z igual a = -nan(ind)" . Você poderia informar o que isso significa e o código deve retornar o número?
Código :
Pessoal do Mql5, vocês podem me ajudar a fazer um pedido para fechar uma posição em uma conta de hedge? Situação: aberta posição BUY, precisamos fechá-la com Sell Limit. Pergunta: Como faço para escrever corretamente um pedido, para fechar exatamente a posição escolhida e não para abrir um novo bloqueio de VENDA COMPRAR? Por favor, escreva um pedaço de código com comentários! Agradecemos antecipadamente!
Fechamento por uma ordem aberta de outra ordem aberta para o mesmo símbolo, mas em direção oposta.
boolOrderCloseBy(
intticket,// número de ordem para fechar
emoposto,// número da ordem oposta
corseta_color// cor
);
Parâmetros
bilhete
[em] Número de pedido único do pedido a ser fechado.
em frente
[Um número de seqüência único da ordem oposta.
arrow_color
[A cor da seta de fechamento na tabela. Se este parâmetro estiver faltando ou seu valor for CLR_NONE, a seta não é mostrada no gráfico.
Valor retornado
Retorna verdadeiro se a função foi bem sucedida ou falso se houve um erro. Para obter as informações de erro, ligue para GetLastError().
Exemplo:
if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
{
OrderCloseBy(order_id,opposite_id;)
retorno(0);
}
P.S. Esta rosca só analisa MQL4
Só posso dizer obrigado. Este é o único lugar no runet, onde eles ajudaram.
Agora a impressora gera o seguinte "Stop_Ma_v_5.1 EURUSD,M15: == Z-Account Equals = -nan(ind)". Você poderia informar o que isso significa e o código deve retornar o número?
Código :
O fechamento de uma ordem aberta por outra ordem aberta para o mesmo instrumento, mas na direção oposta.
boolOrderCloseBy(
intticket,// número de ordem para fechar
emoposto,// número da ordem oposta
corseta_color// cor
);
Parâmetros
bilhete
[Um número seqüencial único do pedido sendo fechado.
em frente
[Um número de seqüência único da ordem oposta.
arrow_color
[A cor da seta de fechamento na tabela. Se o parâmetro estiver faltando ou seu valor for CLR_NONE, a seta não é mostrada no gráfico.
Valor retornado
Retorna verdadeiro se a função foi bem sucedida ou falso se houve um erro. Para obter as informações de erro, ligue para GetLastError().
Exemplo:
if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
{
OrderCloseBy(order_id,opposite_id;)
retorno(0);
}
P.S. Esta rosca só analisa MQL4
Não. Quaisquer perguntas sobre mql4 bem como mal5 são tratadas aqui neste tópico, porque o principal objetivo era ajudar não apenas com algoritmos e códigos, mas também facilitar a migração de mql4 para mql5.