Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 460

 
lil_lil:

Danke, die Werte dort sind von einer Datei und einem Zeitpunkt, aber meine Aufgabe ist über die Zeit verteilt.

Zeichnen Sie den aktuellen Preis und die Uhrzeit zu Beginn eines jeden Tages 30 Minuten lang alle 120 Sekunden auf.

Überschreiben Sie keine früheren Einträge.


Schreiben Sie Ihren Code, und was nicht funktioniert, nehmen wir auseinander.

Was gibt es also zu schreiben? Nehmen Sie einen beliebigen Tag und lesen Sie den Eröffnungskurs der geraden oder ungeraden Minuten PERIOD_M1...
 
lil_lil:

Danke, die Werte dort sind von einer Datei und einem Zeitpunkt, aber meine Aufgabe ist über die Zeit verteilt.

Aufzeichnung des aktuellen Kurses und der Uhrzeit zu Beginn eines jeden Tages für 30 Minuten, alle 120 Sekunden

Überschreiben Sie keine früheren Einträge.

Das habe ich einmal geschrieben. Verwenden Sie OnTimer anstelle von 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:

Schreiben Sie Ihren Code, und was nicht funktioniert, nehmen wir auseinander.

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

Hier ist etwas, das ich früher geschrieben habe. Verwenden Sie OnTimer anstelle von OnTick.

Danke

 
Hallo. Können Sie mir bitte sagen, ob esnach der Aktivierungdes virtuellen Servers möglich ist, die mt4-Website zu schließen? Wird der virtuelle Server funktionieren oder wie funktioniert er?
 
lil_lil:

Schreibt Jan 51

Dies ist ein Problem mit Excell. Setzen Sie in den Einstellungen einen Punkt anstelle eines Kommas als Trennzeichen zwischen ganzem und gebrochenem Teil, dann wird es korrekt angezeigt.
 
Alexey Viktorov:
Dies ist ein Problem mit Excell. Setzen Sie in den Einstellungen einen Punkt anstelle eines Kommas als Trennzeichen für ganze Zahlen und Nachkommastellen ein, und es wird korrekt angezeigt.

Schreibt und wie kann man ihn dazu bringen, alle 120 Sekunden innerhalb von 30 Minuten nach dem Öffnen der Bar zu schreiben?

 
Guten Tag, bitte helfen Sie mir, den Kopiercode zu verbessern. Das Problem ist folgendes: EA (Slave) gibt die Meldung aus, dass kein Zugriff auf die Datei besteht, egal was ich tue... Was ist los?

Dekompiliert von Artyom Trishkin

Hinweis an Sie.

 
lil_lil:

Schreibt und wie bringe ich ihn dazu, alle 120 Sekunden innerhalb von 30 Minuten nach dem Öffnen der Bar zu schreiben?

EventSetTimer

 
Konstantin Nikitin:

EventSetTimer

Funktioniert es nicht in den Skripten?

Grund der Beschwerde: