Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 460

 
lil_lil:

Grazie, i valori lì sono da un file e una volta e io ho un compito che si estende nel tempo.

Registra il prezzo corrente e l'ora all'inizio di ogni giorno per 30 minuti, ogni 120 secondi.

Non sovrascrivere le voci precedenti.


Inizia a scrivere il tuo codice e quello che non funziona, lo smonteremo.

Quindi cosa c'è da scrivere? Prendete un giorno qualsiasi e leggete il prezzo di apertura dei minuti pari o dispari PERIOD_M1...
 
lil_lil:

Grazie, i valori lì sono da un file e una volta e io ho un compito che si estende nel tempo.

Registra il prezzo corrente e l'ora all'inizio di ogni giorno per 30 minuti, ogni 120 secondi

Non sovrascrivere le voci precedenti.

Questo è quello che ho scritto una volta. Usa OnTimer invece di OnTick.

#property strict
enum Локаль   // Десятичный разделитель для отображения в Excel
{
  Точка,
  Запятая
};
extern Локаль   RUS = Запятая; // Для русской локализации запятую

string ИмяФайла;          // Имя файла на диске


void OnInit()
{
  ИмяФайла=Symbol()+".txt";
}


void OnTick()
{
   string Текст, Строка;

   // Открытие или создание файла и перемещение указателя в конец
   int Файл = FileOpen(ИмяФайла, FILE_CSV | FILE_READ | FILE_WRITE, " ");
   if(Файл == -1)
   {
      Alert("Ошибка при открытии файла ", ИмяФайла);
      return;
   }
   FileSeek(Файл, 0, SEEK_END);

   // Если новый файл записать строку заголовков колонок
   if(FileSize(Файл)==0)FileWrite(Файл, "           Время   ASK     BID");

   // Сбор информации и запись в файл
   FileWrite(Файл,
             TimeToStr(Time[0]),
             dstr(Ask),
             dstr(Bid) );
   FileClose(Файл);
   Файл = 0;                 // Заметая следы обнулим указатель
}


// Преобразование числа double в строку с запятой или точкой в соответствии с локализацией
string dstr(double Цена)
{
  if(!RUS) return DoubleToStr(Цена, Digits);
  return StringSetChar(DoubleToStr(Цена, Digits), StringFind(DoubleToStr(Цена, Digits), "."), ',');
}
 
Alexey Viktorov:

Inizia a scrivere il tuo codice e quello che non funziona, lo smonteremo.

Scrive Janv 51

/********************Script program start function*******************/
void OnStart()
{
if(iVolume(0,PERIOD_D1,0)>=1)
  {
  int file_1;
   file_1=FileOpen("prise.csv",FILE_CSV|FILE_WRITE);
   if(file_1!=-1) 
     {
      FileWriteString(file_1,Bid,StringLen(Bid));
      FileClose(file_1);
     }
    }
   }
}/*******************************************************************/
 
STARIJ:

Ecco qualcosa che scrivevo. Usa OnTimer invece di OnTick.

Grazie

 
Salve. Potete dirmi sedopo aver attivatoil server virtuale è possibile chiudere il sito mt4? Il server virtuale funziona o come funziona?
 
lil_lil:

Scrive Jan 51

Questo è un problema con Excell. Mettete un punto intero invece di una virgola come separatore tra la parte intera e la parte frazionaria nelle impostazioni e verrà visualizzato correttamente.
 
Alexey Viktorov:
Questo è un problema con Excell. Mettete un punto al posto della virgola nelle impostazioni come separatore di parti intere e frazionarie e verrà visualizzato correttamente.

Scrive e come farlo scrivere ogni 120 secondi entro 30 minuti dall'apertura del bar?

 
Buongiorno, per favore aiutatemi a migliorare il codice della copiatrice. Il problema è il seguente: EA (Slave) stampa il messaggio di nessun accesso al file, non importa quello che faccio... Cosa c'è che non va?

Decompilato da Artyom Trishkin

Nota per voi.

 
lil_lil:

Scrive e come faccio a farlo scrivere ogni 120 secondi entro 30 minuti dall'apertura del bar?

EventSetTimer

 
Konstantin Nikitin:

EventSetTimer

Non funziona negli script?