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

 

Statische Variablen, die in einer Klassenfunktion deklariert werden, sind für alle Instanzen dieser Klasse pass-through?

Aus irgendeinem Grund hatte ich erwartet, dass es für jede Instanz anders sein würde.

Besteht die Alternative nur in Variablen auf Klassenebene oder gibt es noch andere trickreiche Möglichkeiten?

 

Hallo! Ich muss den Pfad zum Speichern der Datei angeben, genauer gesagt den Tickverlauf. Helfen Sie, dieses Problem zu lösen )

//------------------------------------------------------------------
#property copyright "www.forex-tsd.com"
#property link      "www.forex-tsd.com"
//------------------------------------------------------------------
#property indicator_chart_window

//
//
//
//
//

extern string FileName   = "Ticks.csv";
extern bool   SaveVolume = true; 
int fileHandle;

MqlBookInfo book[];

//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//

int  OnInit()                   
{ 
   MarketBookAdd(_Symbol); 
      fileHandle = FileOpen(Symbol()+" - "+FileName,FILE_WRITE|FILE_SHARE_READ|FILE_ANSI|FILE_CSV); 
      return(0); 
}
void OnDeinit(const int reason) 
{
   MarketBookRelease(_Symbol);
   FileClose(fileHandle);
}

//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//

int OnCalculate(const int rates_total, const int prev_calculated, const datetime &Time[],
                const double &Open[], const double &High[], const double &Low[], const double &Close[],
                const long &TickVolume[], const long &Volume[], const int &Spread[])
{                
   if (fileHandle <0)
   {
      static bool alerted = false;
         if (!alerted)
         {
            Alert("File : "+Symbol()+" - "+FileName+" could not be opened"); alerted = true;
         }
         return(0);
   }         

   //
   //
   //
   //
   //
   
   bool bget = MarketBookGet(_Symbol,book);
   int bidVolume = 0;
   int askVolume = 0;

      if (bget)
      {
         int    size = ArraySize(book);
         string info = "\n";
            for (int i=0; i<size; i++)
               {
                  if (book[i].type==BOOK_TYPE_SELL) askVolume += (int)book[i].volume;
                  if (book[i].type==BOOK_TYPE_BUY)  bidVolume += (int)book[i].volume;
               }                  
      }            
      
   if (FileSize(fileHandle) == 0)
         FileWriteString(fileHandle,"date and time,bid,ask,bid volume,ask volume\n");
         if (SaveVolume)
               FileWriteString(fileHandle,TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits)+","+DoubleToString(bidVolume,0)+","+DoubleToString(askVolume,0)+"\n");
         else  FileWriteString(fileHandle,TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits)+"\n");
         FileFlush(fileHandle);
   return(0);
}
 

@NeuralNetwork

FileOpen

Die Datei wird im Ordner des Client-Terminals im Unterordner MQL5\Files (oder agent_folder\MQL5\Files im Falle von Tests) geöffnet.

Wenn unter den Flags FILE_COMMON angegeben ist, wird die Datei im gemeinsamen Ordner aller Client-Terminals \Terminal\Common\Files geöffnet.

--

zu einem anderen Ort nur über einen "symbolischen Link"

      fileHandle = FileOpen(Symbol()+" - "+FileName,FILE_WRITE|FILE_SHARE_READ|FILE_ANSI|FILE_CSV);    // FILE_COMMON 



 
NeuralNetwork:
Herzlichen Dank! Ich möchte jedoch den Pfad zum Speichern der Datei durch Angabe eines anderen Laufwerks oder Ordners festlegen. Ich kann es nicht tun ...

https://www.mql5.com/ru/docs/files

3 Zeile

Документация по MQL5: Файловые операции
Документация по MQL5: Файловые операции
  • www.mql5.com
Из соображений безопасности в языке MQL5 строго контролируется работа с файлами. Файлы, с которыми проводятся файловые операции средствами языка MQL5, не могут находиться за пределами файловой "песочницы". общая папка всех установленных на компьютере терминалов  – обычно расположена в каталоге C:\Documents and Settings\All Users\Application...
 
Fast235:

@NeuralNetwork

FileOpen

Die Datei wird im Ordner des Client-Terminals im Unterordner MQL5\Files (oder agent_folder\MQL5\Files im Falle von Tests) geöffnet.

Wenn unter den Flags FILE_COMMON angegeben ist, wird die Datei im gemeinsamen Ordner aller Client-Terminals \Terminal\Common\Files geöffnet.

--

zu einem anderen Ort nur über einen "symbolischen Link"



Herzlichen Dank!
 
Roman Shiredchenko:


wie werden die Admins und Moderatoren das Problem eines schief geschriebenen Roboters lösen?

 

Bitte beraten Sie, wenn es möglich ist, RSI-Werte für wöchentliche Zeitrahmen in der Expert Advisor-Code zu erhalten, aber die Werte für die Woche zu berechnen, beginnend nicht von Montag, aber zum Beispiel von Mittwoch (das heißt für die Woche von Mittwoch bis zum nächsten Mittwoch). Ich verstehe, dass es nicht mit iRSI arbeiten, weil es wöchentliche Bars nimmt, und sie beginnen am Montag.

Bislang sehe ich nur eine Möglichkeit, dies zu berechnen. Gibt es eine einfachere Lösung oder eine fertige Lösung?

 
Roman Shiredchenko:

Anschreien, schreien, fluchen, nicht bereit sein, den eigenen Code zum Laufen zu bringen, Moderatoren und Admins beschuldigen, Moderatoren und Admins beleidigen...

Im Allgemeinen - das ganze Paket. Ich gebe Ihnen eine Woche Zeit, sich zu beruhigen und Ihre Fehler zu erkennen. Nachdenklich!

 
Valeriy Yastremskiy:

Zur Abrechnung eines Tickets.

Bei der Eröffnung einer Bestellung muss das Ticket gespeichert werden.

Dankeschön
 
Valeriy Yastremskiy:

Flags kontrollieren entweder die Anzahl der Ordertypen oder, falls ein Ticket vorhanden ist, die Schließungszeit der Marktorder, wenn diese ungleich Null ist, ist die Order geschlossen und das Order Opening Flag ist falsch.

Danke, ich habe es schon, die Leute haben es vorgeschlagen )))))))😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃
Grund der Beschwerde: