Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 240

 
Санек:

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=========================================

Que partes eu misturei?

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.

 
Alexey Viktorov:

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

Как в тестере стратегий получить TimeGMT();
Как в тестере стратегий получить TimeGMT();
  • 2017.06.28
  • www.mql5.com
Справочник MQL5, Дата и время, TimeGMT TimeGMT - При работе в тестере стратегий время TimeGMT() всегда равно моделируемому серверному времени TimeT...
 
Alexey Viktorov:

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*?

struct MqlStr
{
        int               len;
        char             *string;
};

static int proc_func(char* Name);

MT4_EXPFUNC int __stdcall myfunc(MqlStr sym_name)
{
        proc_func(sym_name[0].string);
        
}
int proc_func(char* Name)
{
}
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.

 
Санек 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);
}
 
toni_stark:

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.

 
Vladimir Zubov:

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á:

#property strict
 
Vladimir Zubov:

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.