Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL5 (http://www.expert-advisor.com/forum/forumdisplay.php?f=221)
-   -   Kann ein EA im Metatester keine Dateien lesen? (http://www.expert-advisor.com/forum/showthread.php?t=5570)

Kronenchakra 28.03.17 00:24

Kann ein EA im Metatester keine Dateien lesen?
 
Hallo Spezialisten!
In der MQL5-Reference steht nichts von Restriktionen beim Datei Schreiben und Lesen von EAs.
Im realen Modus funktioniert das auch. Aber im Metatester kann die Datei nicht geöffnet werden.
Das ist wieder ein Falle die Metaquotes ausgelegt hat und die Nerven kostet. :mad:
Besagte Datei wäre eine Steuerdatei für meinen EA und somit muss ich mir was anderes einfallen lassen.
Zum Testen der Code:
Code:

string  fName="Data\\Test.txt";
int      fHandle;

int OnInit()
{
  fHandle=FileOpen(fName,FILE_READ|FILE_SHARE_READ|FILE_TXT|FILE_ANSI);
  if(fHandle==INVALID_HANDLE)
      {
        Comment("INIT_FAILED");
        return(INIT_FAILED);
      }
  Comment("INIT_SUCCEEDED"); 
  return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason)
{
  if(fHandle!=INVALID_HANDLE)
      FileClose(fHandle);
  Comment("");
}

void OnTick()
{
}

Auch als Indikator funktioniert das im Tester nicht
Code:

#property indicator_chart_window
#property indicator_plots 0

string  fName="Data\\Test.txt";
int      fHandle;

int OnInit()
{
  fHandle=FileOpen(fName,FILE_READ|FILE_SHARE_READ|FILE_TXT|FILE_ANSI);
  if(fHandle==INVALID_HANDLE)
      {
        Comment("INIT_FAILED");
        return(INIT_FAILED);
      }
  Comment("INIT_SUCCEEDED"); 
  return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason)
{
  if(fHandle!=INVALID_HANDLE)
      FileClose(fHandle);
  Comment("");
}

int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double& price[])
{
  return(rates_total);
}

Ich bin aber sicher daß es früher funktioniert hat, da ich mir so Tickdaten gesaugt habe.

Grüße Otto

traderdoc 28.03.17 13:31

Im MQL4 funktioniert das. Auf jeden Fall im vorletzten Build. Das letzte Build wurde in den vergangenen Tagen aktualisiert. Sollte mich aber wundern, wenn das plötzlich nicht mehr funktionieren sollte.

traderdoc

Hosch 28.03.17 14:15

Sali zäme,

das sollte in MT4 noch funktionieren.

Bzgl. dem Update. Das sind die Änderungen:
The MetaTrader 4 Platform build 1065 will be released on 23 March, 2017. In the new version, an error has been fixed connected with the restart of Expert Advisors on charts after switching timeframes. Now, Expert Advisors do not stop, and are correctly re-initialized.

The new MetaTrader 4 version will be available through the LiveUpdate system.

Carpe Diem,
Hosch

Kronenchakra 28.03.17 19:02

Danke für die Antworten,

mittlerweile habe ich das mit dem ServiceDesk abgeklärt.
Die habe mir einen link geschickt, der Licht ins Dunkel brachte.
https://www.mql5.com/en/docs/runtime/testing#data
Wenn man das flag FILE_COMMON setzt, findet der MT5 die Datei auch im Tester.

Ohne flag FILE_COMMON ist die Datei in C:\Users\Otto\AppData\Roaming\MetaQuotes\Tester\FE 0E65DDB0B7B40DE125080872C34D61\Agent-127.0.0.1-3000\MQL5\Files\Data\Test.txt

Mit flag FILE_COMMON ist die Datei in C:\Users\Otto\AppData\Roaming\MetaQuotes\Terminal\ Common\Files\Data\Test.txt in testmode and realmode.

In einem früheren build war das sicher anders.

Grüße Otto


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:51 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum