2) O cabo do arquivo é SEMPRE maior que zero. Assim, a condição será sempre mantida se o arquivo existir independentemente de seu conteúdo.
3) Isto é exatamente a leitura do conteúdo do arquivo. Embora eu não entenda por que a leitura de cordel é feita, se o número deve ser lido... Mas ainda assim pode ser outro problema. Agora o principal é descrever a seqüência de ações.
4) É claro que o arquivo deve ser fechado e ele se fecha.
E apenas a cláusula seguinte precisa ser condicionada dependendo do que você ler na cláusula 3, mas não a segunda cláusula.
2) Um cabo de arquivo é SEMPRE maior que zero. Assim, a condição será sempre mantida se o arquivo existir independentemente de seu conteúdo.
3) Isto é exatamente a leitura do conteúdo do arquivo. Mas não entendo porque se lê uma corda, se um número é para ser lido. Mas ainda assim pode se referir a outro problema. Agora o principal é descrever a seqüência de ações.
4) O arquivo deve ser fechado, é claro, e está sendo fechado.
E apenas a cláusula seguinte deve ser condicionada dependendo do que você ler na cláusula 3, mas não a segunda cláusula.
Não... INVALID_HANDLE tem valor -1.
É quando recebe um erro de abertura de arquivo, então ele receberá um sinal de venda...
Outras constantes
Constantes especiais usadas para indicar o estado dos parâmetros e variáveis. Podem ser os seguintes valores:
Constante
Descrição
Valor
NULL
Nulo de qualquer tipo. Também indica estado de fio vazio
2) Um cabo de arquivo é SEMPRE maior que zero. Correspondentemente, a condição será sempre mantida se o arquivo existir independentemente de seu conteúdo.
3) Isto é exatamente a leitura do conteúdo do arquivo. Mas não entendo porque se lê uma corda, se um número é para ser lido. Mas ainda assim pode se referir a outro problema. Agora o principal é descrever a seqüência de ações.
4) O arquivo deve ser fechado, é claro, e está sendo fechado.
E apenas o próximo item deve ser condicionado dependendo do que você ler no item 3, mas não o segundo item.
Caros gurus MQL - se você não for um problema, por favor, ajude-me com este código, passei meio dia em motores de busca, mas não encontrei nada semelhante.
Eu acho que são apenas algumas linhas, mas para um usuário experiente é uma questão de minutos))))
Olá a todos, poderiam me dizer por favor, eu escrevi um EA há cerca de um ano, estava funcionando bem. Eu não o usei todo esse tempo. Não sei o que fazer com ele, só não sei o que fazer com ele. Pode ser porque eu mudei de Build? Atualmente estou usando o Build 1090.
Санек: Caro guru MQL - se você não for difícil de me ajudar com este código, passei meio dia pesquisando em motores de busca, mas não consigo encontrar nada semelhante.
Parece ser uma questão de algumas linhas, o que para uma pessoa conhecedora é uma questão de três minutos))))
Demorei duas horas. Tenho que verificar o sistema peça por peça. Execute os dois EAs de uma só vez em gráficos adjacentes - tudo será visível. Expert Advisor 1 = Escrever para arquivar
//+------------------------------------------------------------------+
//| Запись в файл -1 0 1 1.mq4 |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Инициализация - установка интервала таймера |
//+------------------------------------------------------------------+
void OnInit()
{
EventSetTimer(7);
}
//+------------------------------------------------------------------+
//| Деинициализация - удаление метки |
//+------------------------------------------------------------------+
void OnDeinit(const int Зачем)
{
ObjectDelete("Семафор");
}
//+------------------------------------------------------------------+
//| По таймеру каждые 7 секунд |
//+------------------------------------------------------------------+
void OnTimer()
{
int x=0;
if(rand()<20000)
{
x=1;
if(rand()<16000) x=-1;
}
ObjectCreate("Семафор",OBJ_LABEL,0,0,0);
ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0); // Создание
ObjectSet("Семафор", OBJPROP_CORNER, 3); // В правый нижний угол
ObjectSet("Семафор", OBJPROP_XDISTANCE, 0); // Координата X
ObjectSet("Семафор", OBJPROP_YDISTANCE, 40); // Координата Y
ObjectSetText("Семафор",(string)x+" Открываю",20,"Arial",Yellow);
ChartRedraw(0);
Sleep(2000);
int handle = FileOpen("123.txt", FILE_BIN | FILE_WRITE);
if(handle == -1)
{
ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon);
ChartRedraw(0);
return;
}
ObjectSetText("Семафор",(string)x+" Записываю",20,"Arial",DeepSkyBlue);
ChartRedraw(0);
FileWriteInteger(handle, x, 4);
Sleep(2000);
ObjectSetText("Семафор","",20,"Arial",White);
ChartRedraw(0);
FileClose(handle);
}
EA 2 = Ler arquivo
//+------------------------------------------------------------------+
//| Чтение файла -1 0 1 2.mq4 |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Инициализация - установка интервала таймера |
//+------------------------------------------------------------------+
void OnInit()
{
EventSetTimer(1);
}
//+------------------------------------------------------------------+
//| Деинициализация - удаление метки |
//+------------------------------------------------------------------+
void OnDeinit(const int Зачем)
{
ObjectDelete("Семафор");
}
//+------------------------------------------------------------------+
//| По таймеру каждую секунду |
//+------------------------------------------------------------------+
void OnTimer()
{
int x=0;
ObjectCreate("Семафор",OBJ_LABEL,0,0,0);
ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0); // Создание
ObjectSet("Семафор", OBJPROP_CORNER, 2); // В правый нижний угол
ObjectSet("Семафор", OBJPROP_XDISTANCE, 0); // Координата X
ObjectSet("Семафор", OBJPROP_YDISTANCE, 40); // Координата Y
ObjectSetText("Семафор","",20,"Arial",Yellow);
ChartRedraw(0);
Sleep(500);
int handle = FileOpen("123.txt", FILE_BIN | FILE_READ); // Получаем НОМЕР файла в ОС
if(handle == -1) // Если производится запись, файл занят, будет ошибка
{
ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon);
ChartRedraw(0);
return;
}
x = FileReadInteger(handle,4); // Получаем СОДЕРЖИМОЕ файла
ObjectSetText("Семафор",(string)x+" Прочитал",20,"Arial",DeepSkyBlue);
ChartRedraw(0);
FileClose(handle);
}
Olá a todos, poderiam me aconselhar, escrevi um EA há cerca de um ano, estava funcionando bem. Eu não o usei todo esse tempo. Não sei o que fazer com ele, só não sei o que fazer com ele. Pode ser porque eu mudei de Build? Atualmente estou usando o Build 1090.
É bem possível, tem havido muitas inovações. Comece verificando a existência de erros de compilação. Com a diretiva #PropertyStrict.
Pode muito bem ter havido muitas inovações. Comece verificando a existência de erros de compilação. Com a diretiva #PropertyStrict.
Artyom Trishkin:
Não existe tal diretriz.
Há:
Mas não posso abrir o arquivo EA que está em meu computador com extensão ex4, mas não existe tal arquivo através do MetaEditor. Por favor, diga-me qual é a razão.
1) - Esta parte abre o arquivo 11112222.txt para ler os dados do mesmo:
//=================================BUY=========================================
int handle2 = FileOpen("11112222.txt", FILE_CSV|FILE_READ, ";");//код открывает файл для чтения
2) - A seguir vem a condição se o cabo2>0
if(handle2>0) // если в файле больше 0, то есть 1, то открывать BUY
{
3) - Esta é a parte que eu não entendo:
Print(FileReadString(handle2));
4) - Esta parte encerra o arquivo:
FileClose(handle2); // закрытие текстового файла
5) - Como o cabo de condição2>0 é atendido, ou seja, o arquivo 11112222.txt contém 1, uma ordem de compra é aberta:
//ОТКРЫТИЕ ОРДЕРА НА ПОКУПКУ
if(OrdersTotal() == 0) // если нет открытых ордеров то открывать ордер на покупку
{
OrderSend(Symbol(), OP_BUY, 0.01, Ask, 3, 0, 0); // первым указывается ЛОСЬ, вторым ПРОФИТ
FileClose(handle2); // закрытие текстового файла
}
else
Print("NE USPESHNO!!!");
FileClose(handle2); // закрытие текстового файла
}
//=================================конец кода BUY=========================================
1) Abre o arquivo, mas não lê seu conteúdo.
2) O cabo do arquivo é SEMPRE maior que zero. Assim, a condição será sempre mantida se o arquivo existir independentemente de seu conteúdo.
3) Isto é exatamente a leitura do conteúdo do arquivo. Embora eu não entenda por que a leitura de cordel é feita, se o número deve ser lido... Mas ainda assim pode ser outro problema. Agora o principal é descrever a seqüência de ações.
4) É claro que o arquivo deve ser fechado e ele se fecha.
E apenas a cláusula seguinte precisa ser condicionada dependendo do que você ler na cláusula 3, mas não a segunda cláusula.
1) abre um arquivo, mas não lê seu conteúdo.
2) Um cabo de arquivo é SEMPRE maior que zero. Assim, a condição será sempre mantida se o arquivo existir independentemente de seu conteúdo.
3) Isto é exatamente a leitura do conteúdo do arquivo. Mas não entendo porque se lê uma corda, se um número é para ser lido. Mas ainda assim pode se referir a outro problema. Agora o principal é descrever a seqüência de ações.
4) O arquivo deve ser fechado, é claro, e está sendo fechado.
E apenas a cláusula seguinte deve ser condicionada dependendo do que você ler na cláusula 3, mas não a segunda cláusula.
Não... INVALID_HANDLE tem valor -1.
É quando recebe um erro de abertura de arquivo, então ele receberá um sinal de venda...
Outras constantes
Constantes especiais usadas para indicar o estado dos parâmetros e variáveis. Podem ser os seguintes valores:
Constante
Descrição
Valor
NULL
Nulo de qualquer tipo. Também indica estado de fio vazio
0
VAZIO
Indica o estado vazio do parâmetro
-1
VAZIO_VALOR
Valor vazio no buffer indicador
2147483647 (0x7FFFFFFFFFF)
CLR_NONE, clrNONE
Sem cor. Valor padrão, ponteiro para valor vazio. Usado em indicadores personalizados
-1
CHARTS_MAX
Número máximo possível de gráficos abertos simultaneamente no terminal
100
INVALID_HANDLE
Manuseio incorreto
-1
IS_DEBUG_MODE
Sinal de um programa de mq5 em modo de depuração
no modo de depuração não é igual a zero, caso contrário 0
IS_PROFILE_MODE
Sinal de um programa de mq5 no modo de perfil
no modo de perfil não é igual a zero, caso contrário é 0
ARRAY_BRANCO
Indica o número de elementos que restam até o final da matriz, ou seja, a matriz inteira será processada
0
VALOR_VALOR ESCRITO
Uma constante pode ser implicitamente moldada a qualquer tipo de enumeração
-1
Não vi esta linha, então criei uma nova. por favor, vejaem https://www.mql5.com/ru/forum/206126
1) abre um arquivo, mas não lê seu conteúdo.
2) Um cabo de arquivo é SEMPRE maior que zero. Correspondentemente, a condição será sempre mantida se o arquivo existir independentemente de seu conteúdo.
3) Isto é exatamente a leitura do conteúdo do arquivo. Mas não entendo porque se lê uma corda, se um número é para ser lido. Mas ainda assim pode se referir a outro problema. Agora o principal é descrever a seqüência de ações.
4) O arquivo deve ser fechado, é claro, e está sendo fechado.
E apenas o próximo item deve ser condicionado dependendo do que você ler no item 3, mas não o segundo item.
Caros gurus MQL - se você não for um problema, por favor, ajude-me com este código, passei meio dia em motores de busca, mas não encontrei nada semelhante.
Eu acho que são apenas algumas linhas, mas para um usuário experiente é uma questão de minutos))))
Como uma dll em c+++ pode pegar uma string de mql4 e convertê-la em char*?
Este é o código certo, não é?Olá a todos, poderiam me dizer por favor, eu escrevi um EA há cerca de um ano, estava funcionando bem. Eu não o usei todo esse tempo. Não sei o que fazer com ele, só não sei o que fazer com ele. Pode ser porque eu mudei de Build? Atualmente estou usando o Build 1090.
Parece ser uma questão de algumas linhas, o que para uma pessoa conhecedora é uma questão de três minutos))))
Demorei duas horas. Tenho que verificar o sistema peça por peça. Execute os dois EAs de uma só vez em gráficos adjacentes - tudo será visível. Expert Advisor 1 = Escrever para arquivar
//+------------------------------------------------------------------+ //| Запись в файл -1 0 1 1.mq4 | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Инициализация - установка интервала таймера | //+------------------------------------------------------------------+ void OnInit() { EventSetTimer(7); } //+------------------------------------------------------------------+ //| Деинициализация - удаление метки | //+------------------------------------------------------------------+ void OnDeinit(const int Зачем) { ObjectDelete("Семафор"); } //+------------------------------------------------------------------+ //| По таймеру каждые 7 секунд | //+------------------------------------------------------------------+ void OnTimer() { int x=0; if(rand()<20000) { x=1; if(rand()<16000) x=-1; } ObjectCreate("Семафор",OBJ_LABEL,0,0,0); ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0); // Создание ObjectSet("Семафор", OBJPROP_CORNER, 3); // В правый нижний угол ObjectSet("Семафор", OBJPROP_XDISTANCE, 0); // Координата X ObjectSet("Семафор", OBJPROP_YDISTANCE, 40); // Координата Y ObjectSetText("Семафор",(string)x+" Открываю",20,"Arial",Yellow); ChartRedraw(0); Sleep(2000); int handle = FileOpen("123.txt", FILE_BIN | FILE_WRITE); if(handle == -1) { ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon); ChartRedraw(0); return; } ObjectSetText("Семафор",(string)x+" Записываю",20,"Arial",DeepSkyBlue); ChartRedraw(0); FileWriteInteger(handle, x, 4); Sleep(2000); ObjectSetText("Семафор","",20,"Arial",White); ChartRedraw(0); FileClose(handle); }EA 2 = Ler arquivo
//+------------------------------------------------------------------+ //| Чтение файла -1 0 1 2.mq4 | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Инициализация - установка интервала таймера | //+------------------------------------------------------------------+ void OnInit() { EventSetTimer(1); } //+------------------------------------------------------------------+ //| Деинициализация - удаление метки | //+------------------------------------------------------------------+ void OnDeinit(const int Зачем) { ObjectDelete("Семафор"); } //+------------------------------------------------------------------+ //| По таймеру каждую секунду | //+------------------------------------------------------------------+ void OnTimer() { int x=0; ObjectCreate("Семафор",OBJ_LABEL,0,0,0); ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0); // Создание ObjectSet("Семафор", OBJPROP_CORNER, 2); // В правый нижний угол ObjectSet("Семафор", OBJPROP_XDISTANCE, 0); // Координата X ObjectSet("Семафор", OBJPROP_YDISTANCE, 40); // Координата Y ObjectSetText("Семафор","",20,"Arial",Yellow); ChartRedraw(0); Sleep(500); int handle = FileOpen("123.txt", FILE_BIN | FILE_READ); // Получаем НОМЕР файла в ОС if(handle == -1) // Если производится запись, файл занят, будет ошибка { ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon); ChartRedraw(0); return; } x = FileReadInteger(handle,4); // Получаем СОДЕРЖИМОЕ файла ObjectSetText("Семафор",(string)x+" Прочитал",20,"Arial",DeepSkyBlue); ChartRedraw(0); FileClose(handle); }Olá a todos, poderiam me aconselhar, escrevi um EA há cerca de um ano, estava funcionando bem. Eu não o usei todo esse tempo. Não sei o que fazer com ele, só não sei o que fazer com ele. Pode ser porque eu mudei de Build? Atualmente estou usando o Build 1090.
É bem possível, tem havido muitas inovações. Comece verificando a existência de erros de compilação. Com a diretiva #PropertyStrict.
Pode muito bem ter havido muitas inovações. Comece verificando a existência de erros de compilação. Com a diretiva #PropertyStrict.
Não existe tal diretriz.
Há:
Pode muito bem ter havido muitas inovações. Comece verificando a existência de erros de compilação. Com a diretiva #PropertyStrict.
Não existe tal diretriz.
Há:
Mas não posso abrir o arquivo EA que está em meu computador com extensão ex4, mas não existe tal arquivo através do MetaEditor. Por favor, diga-me qual é a razão.