[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 301
É difícil dizer qual é o seu problema. Tomar como regra na MQL4 que os números negativos em código devem ser sempre colocados entre parênteses. Às vezes podem ocorrer erros sem parênteses.
Embora, em linhas de código começando com o exterior, não é necessário tomar valores negativos entre parênteses. Eu não sei por que é assim.
Obrigado, mas não funciona, você pode sugerir uma construção para se livrar do loop if(IsTesting()==verdadeiro || IsOptimization()==verdadeiro)
rustein: Obrigado, mas não funciona, você pode sugerir uma construção para se livrar do loop if(IsTesting()==verdadeiro || IsOptimization()==verdadeiro)
drknn: Não é necessário um alerta - meu entendimento é que em algum lugar do código o arquivo provavelmente já está aberto, mas não fechado. É provavelmente por isso que o arquivo não pode ser reaberto e a janela de alerta continua aparecendo. Embora, talvez eu esteja errado - eu não sou membro do clube de telepatas :(
A situação é a seguinte: em um determinado momento, o perito olha para o arquivo csv e vê qual comando está lá (comprar, vender, fechar), este comando é escrito no arquivo pelo EXCEL. O problema é que no momento, quando o especialista lê o arquivo, ele pode ser aberto pelo EXCEL, ekspert vai dar um erro e é tudo, e eu preciso que ele vá novamente e tente até ler o comando.
rustein: Obrigado, mas não funciona, você pode sugerir uma construção para se livrar do loop if(IsTesting()==verdadeiro || IsOptimization()==verdadeiro)
Tente sem nenhum laço, digamos assim:
double PR,SL,TP;
PR=NormalizeDouble(Ask,Digits);
SL=NormalizeDouble(PR-StopLoss*Point,Digits);
TP=NormalizeDouble(PR+TakeProfit*Point,Digits);
int Result=0;
Result = OrderSend(Symbol(),OP_BUY,Lots,PR,Slippage,SL,TP,OrderComments,Magic,0,CLR_NONE);
if(Result<=0){
Print("Ошибка № ",GetLastError()," при открытии бай-ордера. PR = ",PR," SL = ",SL," TP = ",TP);
}
Ao menos ajudaria a entender porque a pose não se abre.
Isto é para garantir que a execução do código entre no corpo do loop e não o ignore.
Sim, infelizmente tenho que ser como um cartomante, criar scripts com parte do código sobre a questão, bem ou todo o código e será mais fácil para você apontar o erro. (borras de café zakAchyVeTso).
Estou tentando escrever um EA usando a estratégia do canal da manhã. A essência é a seguinte: às 6:01 no par EURGBP determinamos o canal de movimentação de preços das 0 horas até as 6 horas da manhã. Definimos duas ordens pendentes e se a ordem pendente acionada for fechada por uma rolha, abrimos uma ordem na direção oposta. É a segunda parte da estratégia que não funciona. Ou seja, se uma parada foi acionada, não podemos abrir uma ordem na direção oposta.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Obrigado.
Se ele pendura o testador, então ele deve. (Não deixe de descrever a saída do laço).
Assim
É difícil dizer qual é o seu problema. Tomar como regra na MQL4 que os números negativos em código devem ser sempre colocados entre parênteses. Às vezes podem ocorrer erros sem parênteses.
Embora, em linhas de código começando com o exterior, não é necessário tomar valores negativos entre parênteses. Eu não sei por que é assim.
Obrigado, mas não funciona, você pode sugerir uma construção para se livrar do loop if(IsTesting()==verdadeiro || IsOptimization()==verdadeiro)
^^
Não é necessário um alerta - meu entendimento é que em algum lugar do código o arquivo provavelmente já está aberto, mas não fechado. É provavelmente por isso que o arquivo não pode ser reaberto e a janela de alerta continua aparecendo. Embora, talvez eu esteja errado - eu não sou membro do clube de telepatas :(
que eu não conhecia enquanto construía...int init(){while(handle<1){handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t')}}
}
Obrigado, mas não funciona, você pode sugerir uma construção para se livrar do loop if(IsTesting()==verdadeiro || IsOptimization()==verdadeiro)
Tente sem nenhum laço, digamos assim:
Ao menos ajudaria a entender porque a pose não se abre.
^^
Muito Obrigado :)
Obrigado a todos, consertou-o, está funcionando.
Muito obrigado por sua ajuda.
Sim, por que precisamos perguntar, podemos verificar isso "lutando" )).
Em geral isto é correto, mas para que funcione, precisamos inicializar a variável antes do loop
cabo=0;
while(handle<1)
{
handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t');
}
Bem, é só para ter certeza absoluta de que a execução do código entrará no corpo do laço e não o ignorará.
Na verdade é verdade, mas para que funcione, a variável deve ser inicializada antes do loop
cabo=0;
while(handle<1)
{
handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t');
}
Isto é para garantir que a execução do código entre no corpo do loop e não o ignore.
Pessoal, ajudem-me um pouco!!!
Estou tentando escrever um EA usando a estratégia do canal da manhã. A essência é a seguinte: às 6:01 no par EURGBP determinamos o canal de movimentação de preços das 0 horas até as 6 horas da manhã. Definimos duas ordens pendentes e se a ordem pendente acionada for fechada por uma rolha, abrimos uma ordem na direção oposta. É a segunda parte da estratégia que não funciona. Ou seja, se uma parada foi acionada, não podemos abrir uma ordem na direção oposta.