Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 169
![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
Boa tarde. Não consigo ler os dados do arquivo e imediatamente os escrevo de volta. Se eu descomentar um fragmento de código com loops e MathRand(), o arquivo fica como deve ser. Mas se as linhas forem comentadas (já há confusão no arquivo), na próxima vez que eu ativar/desativar o Expert Advisor, o arquivo conterá zeros. As matrizes de leitura-escrita são dupla ROM1[128][128] e dupla ROM2[3][128]. As matrizes não são alteradas em nenhum outro lugar do código, apenas lidas. Aqui está um pedaço de código:
int init()
{
Print ("Сработала ф-ия init"); // Сообщение
Handle=FileOpen("Neuro",FILE_BIN|FILE_READ|FILE_WRITE);// Открытие файла на чтение и запись
FileSeek(Handle, 0, SEEK_SET); //указатель на начало файла
FileReadArray(Handle, ROM1);
FileSeek(Handle, 131073, SEEK_SET); //указатель на конец первого массива
FileReadArray(Handle, ROM2);
/*
for(i=0; i<128; i++) //заполнение памяти первого слоя кашей
{
for(k=0; k<128; k++)
{
ROM1[i][k] = (MathRand()-16383)/3200;
}
}
for(i=0; i<3; i++) //заполнение памяти второго слоя кашей
{
for(k=0; k<128; k++)
{
ROM1[i][k] = (MathRand()-16383)/3200;
}
}
*/
return(0);
}
//--------------------------------------------------------------------
int deinit()
{
FileSeek(Handle, 0, SEEK_SET);
FileWriteArray(Handle, ROM1);
FileSeek(Handle, 131073, SEEK_SET);
FileWriteArray(Handle, ROM2);
FileClose(Handle);
return(0);
}
duas ordens idênticas.
Obrigado.
duas ordens idênticas.
Obrigado.
Você pode procurar um sinal quando quiser, mas tem que abrir uma posição por tempo.
Observe a hora de abertura de uma posição com o mágico 565 e observe a hora atual. Se o tempo atual for maior que o tempo de abertura de uma posição com magia 565 pelo número de minutos especificado, então você pode abrir uma posição.
Você pode procurar um sinal sempre que quiser, mas deve permitir que uma posição seja aberta a tempo.
Veja a hora de abrir uma posição com o mágico 565 e veja a hora atual. Se o tempo atual for maior do que o tempo de abertura da Magik 565 por um determinado número de minutos, então a posição pode ser aberta.
Muito obrigado. Qual é a aparência do código?
Um pouco disso. A função não lerá uma matriz bidimensional dupla em nenhum caso, embora ela a escreva bem.
Fiz um loop para a leitura elemento por elemento. Pode ser, pode ser útil para alguém.
FileSeek(Handle, n, SEEK_SET); //изменение позиции файлового курсора
Neuron[k][i].rom[l] = FileReadDouble(Handle, DOUBLE_VALUE); //загрузка из файла
n=n+8;
}
Muito obrigado. O que parece em código?
E isto não é escrita de código livre, mas ajuda para aqueles que estão tentando escrevê-los eles mesmos, mas não conseguem acertar.
Mostre-nos o que você não pode fazer em seu código - nós o ajudaremos.
Eu já resolvi isso um pouco. A função bidimensional da matriz dupla não quer ler, embora escreva bem.
Fiz uma leitura loop-by-loop. Talvez alguém venha a precisar.
FileSeek(Handle, n, SEEK_SET); //изменение позиции файлового курсора
Neuron[k][i].rom[l] = FileReadDouble(Handle, DOUBLE_VALUE); //загрузка из файла
n=n+8;
}
Por que eu deveria oferecer tais muletas às pessoas, só porque eu mesmo ainda não lidei com a tarefa?
Para ler uma matriz bidimensional de um arquivo, ela deve ser uma matriz bidimensional preparada para isso.
Se eu me lembro corretamente dessa amostra de código, não vi que o arquivo está fechado depois de ter sido escrito. Um arquivo vazio é criado e os dados são escritos nele, mas este arquivo preenchido é armazenado na memória principal e os dados do arquivo só podem ser lidos a partir do disco. Como resultado, o arquivo parece ter sido escrito, mas fisicamente não está no disco. A fim de salvar os dados em disco, deve-se fechar o arquivo ou salvá-lo à força em disco.
E isto não é escrita de código livre, mas ajuda para aqueles que estão tentando escrevê-los eles mesmos, mas não conseguem acertar.
Mostre-nos o que você não pode fazer em seu código e nós lhe ajudaremos.
obrigado
Olá! Por favor, escreva um exemplo simples (muito simples) em mql4. Eu sou apenas um iniciante completo.
1) abrir uma ordem pendente quando ela atingir um determinado valor (ou seja, se o preço for 0,7777, então abra uma ordem pendente)
2) Fechar uma ordem de mercado quando esta tiver atingido qualquer valor (isto é, se o preço for 0,6666, então feche a ordem).
Eu não posso nem mesmo fechar um pedido usando um número de pedido único. Eu quero tentar mudar o estado atual do meu robô comercial, mas não entendo nada.
Eu tentei ler um tutorial deste site, mas nenhum efeito (talvez eu seja tão estúpido), e os exemplos elementares não estão, de alguma forma, na Internet. Obrigado de antemão
Olá! Por favor, escreva um exemplo simples (muito simples) em mql4. Eu sou apenas um iniciante completo.
1) abrir uma ordem pendente quando ela atingir qualquer valor (isto é, se o preço for 0,7777, então abra uma ordem pendente)
2) Fechar uma ordem (de mercado) quando esta tiver atingido qualquer valor (isto é, se o preço for 0,6666, então feche a ordem).
Eu não posso nem mesmo fechar um pedido usando um número de pedido único. Eu quero tentar mudar o estado atual do meu robô comercial, mas não entendo nada.
Eu tentei ler um tutorial deste site, mas nenhum efeito (talvez eu seja tão estúpido), e os exemplos elementares não estão, de alguma forma, na Internet. Obrigado de antemão
Se você tiver problemas com pedidos pendentes, procure-os no CodeBase e veja como o código está escrito.