Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 1021

 
Hallo. Hilfe mit Rat. Testen eines kurssensitiven EA auf einem echten pro-ecn alpari Konto. Infolgedessen unterscheidet sich das Diagramm selbst nach dem Herunterladen von Kursen und zwei aufeinanderfolgenden Tests im selben Intervall erheblich. Ich bin nicht sicher, was ich in Wirklichkeit erwarten kann.
 

Stellen Sie eine feste Spanne im Tester ein. Im Allgemeinen reagieren EAs auf solche Dinge empfindlich - die Toilette hinunter)

 
Ja, das ist richtig, vielen Dank. Was den EA angeht, weiß ich es nicht. Der Autor stellt lediglich die Empfindlichkeit des EA als seinen Hauptvorteil dar. Denn er beschreibt, dass der Expert Advisor nicht indikatorbasiert ist, sondern auf der Preisbewegung beruht. Deshalb empfiehlt er, auf ecn-Konten zu arbeiten, und zitiert aus dukascopi. Was halten Sie davon?
 
Lians:
Hallo, liebe Fachleute.

Es gibt ein Skript zum Exportieren von Kursen in dem von mir gewünschten Format für die letzten 100 Balken oder bis zu einem bestimmten Zeitpunkt in der Vergangenheit. Es funktioniert, wie es sollte. Wenn es jedoch auf das Visualisierungsdiagramm des Testers geworfen wird, speichert es die Kurse auf der Grundlage des letzten Kurses in der Historie, nicht auf der Grundlage des Datums und der Uhrzeit des Testers.

Können Sie ihm beibringen, die letzten 100 Balken auf der Grundlage der Zeit des Visualisierungsdiagramms des Testers zu speichern?

Wenn ja, geben Sie bitte an, wie Sie dies tun können. Ich kann es nicht herausfinden.
PS: die Tatsache, dass es Kims Funktion für die Ersetzung verwendet, anstatt StringReplace - das ist, wie es entworfen ist, nicht beachten.


Ich werde mir selbst antworten. Wenn ich aus diesem Skript einen Indikator mache, funktioniert er aus irgendeinem Grund richtig.
Es wurde also eine Lösung gefunden. Das ist zwar ein paar Klicks weniger bequem, aber immer noch besser als nichts.
 

Indikator - ATS (Alpha Trend Spotter Price Action free)

CandleHigh=High[Highest(NULL, 0,2,3,i)];
CandleLowS=Low[Lowest(NULL,0,1,3,i)];
CandleOpenS=Open[i];
CandleHighF=High[Highest(NULL, 0, 2, 3, (i+3))];
CandleHighL=Low[Lowest(NULL,0,1,3,(i+3))];
CandleOpenL=Open[i+3];
//---
if((CandleHigh>CandleHighF) && (CandleOpenS<CandleHighL))
{
BufferMap1[i]=High[i+3]+0.0010;
}
//---
if((CandleLowS<CandleHighL) && (CandleOpenS>CandleHighF))
{
BufferMap2[i]=Low[i+3]-0.0010;

Fragen:

1. Wie viele Candlesticks werden analysiert?
2. Auf welchem Kerzenständer befindet sich der Pfeil?
3.
wie O1>C2

Dies ist der Code für mq5 desselben Indikators

{
CandleHigh=high[ArrayMaximum(high,bar,iPeriod)];
CandleLow=low[ArrayMinimum(low,bar,iPeriod)];
CandleOpen=open[bar];
CandleHigh1=high[ArrayMaximum(high,bar+iPeriod,iPeriod)];
CandleLow1=low[ArrayMinimum(low,bar+iPeriod,iPeriod)];
CandleOpen1=open[bar+iPeriod];
//---
BuyBuffer[bar]=0.0;
SellBuffer[bar]=0.0;
//---
if(CandleLow<CandleLow1 && CandleOpen>CandleHigh1) BuyBuffer[bar]=low[bar]-ATR[bar]*3/8;
if(CandleHigh>CandleHigh1 && CandleOpen<CandleLow1) SellBuffer[bar]=high[bar]+ATR[bar]*3/8; }

Ich habe es als mq5 verstanden:

bool UP = Low[i+2] < Low[i+1] && Open[i+2] > High[i+1] ;

bool DOWN = High[i+2] > High[i+1] && Open[i+2] < Low[i+1] ;

Habe ich es richtig verstanden?

==

ATS mq4 https://www.mql5.com/en/code/12941

 
Hallo Forumsnutzer.
Ich versuche, eine Bibliothek für die Arbeit mit Dateien außerhalb der Datei-Sandbox https://www.mql5.com/ru/code/11140 zu integrieren.
In der Anfangsphase habe ich jedoch Probleme mit dem Öffnen der elementaren Datei. Vielleicht hat jemand etwas auf der Grundlage dieser Bibliothek gemacht, bitte helfen Sie. Herzlichen Dank!
#include <FileFunctions.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string name=StringConcatenate(Year(),TransformToFileName(Month()),TransformToFileName(Day()),".log");
//---
   string path=TerminalPath()+"\\MQL4\\Logs\\"+name;
//---
   if(FileCheckW(path))
     {
      //---
      int handle=-1;
      handle=FileOpenExistingW(path,GENERIC_READ,SHARE_READ);
      if(handle!=NULL)
        {
         Alert(handle);
         FileCloseHandle(handle);

        }
     }
//
  }
//+------------------------------------------------------------------+
string TransformToFileName(int val)
  {
   string res;
//---
   if(val<10)
     {
      res=StringConcatenate(0,val);
     }
   else
     {
      res=StringConcatenate(val);
     }
//---
   return(res);
  }
//+------------------------------------------------------------------+
Fehler
 
bistreevseh:
Hallo Forumsnutzer.
Ich versuche, eine Bibliothek zu integrieren, die mit Dateien außerhalb der Datei-Sandbox https://www.mql5.com/ru/code/11140 arbeitet.
In der Anfangsphase habe ich jedoch Probleme mit dem Öffnen der elementaren Datei. Vielleicht hat jemand etwas auf der Grundlage dieser Bibliothek getan, bitte helfen Sie. Herzlichen Dank!

Vielleicht ist dies das Problem, denn

StringConcatenate()

"Hinweis.

Die Parameter können von beliebigem Typ sein. Die Anzahl der Parameter darf nicht kleiner als 2 und nicht größer als 64 sein."

 
bistreevseh:
Hallo Forumsnutzer.
Ich versuche, meine Bibliothek zu integrieren, um mit Dateien außerhalb des Dateisystems Sandbox https://www.mql5.com/ru/code/11140 arbeiten.
In der Anfangsphase habe ich Probleme mit dem Öffnen einfacher Dateien. Vielleicht hat jemand etwas auf der Grundlage dieser Bibliothek getan, bitte helfen Sie. Herzlichen Dank!

Funktioniert das Testskript korrekt?

Rechte und Eigentümer an dem Systemlaufwerk?

Ich habe ein Skript wie dieses:

#include <FileFunctions.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
 {
  string sName = TimeToString(TimeLocal(), TIME_DATE) + ".log";
  sName = StringSubstr(sName, 0, 4) + StringSubstr(sName, 5, 2) + StringSubstr(sName, 8);
  string sPath = TerminalPath() + "\\MQL4\\Logs\\" + sName;
  Print(sPath);
  if (FileCheckW(sPath))
   {
    int hFile = FileOpenExistingW(sPath, GENERIC_READ,SHARE_READ);
    if (hFile != NULL)
     {
      Print("hFile = ", hFile);
      FileCloseHandle(hFile);
     }
    else Print("Файл не открыт!");
   }
  else Print("Файл отсутствует!");
 }

funktioniert:

0 07:46:55.195 Check_FileLib EURUSD,Daily: initialisiert
0 07:46:55.196 Check_FileLib EURUSD,Daily: E:\Market\Forex\Brokers\Alpari\MetaTrader 4.00\MQL4\Logs\20160305.log
0 07:46:55.239 Check_FileLib EURUSD,Daily: hFile = 2020
0 07:46:55.240 Check_FileLib EURUSD,Daily: uninit Grund 0
0 07:46:55.241 Script Check_FileLib EURUSD,Daily: entfernt

 
Zhunko:

Funktioniert das Testskript korrekt?

Rechte und Eigentümer an dem Systemlaufwerk?

Ich habe ein Skript wie dieses:

funktioniert:

0 07:46:55.195 Check_FileLib EURUSD,Daily: initialisiert
0 07:46:55.196 Check_FileLib EURUSD,Daily: E:\Market\Forex\Brokers\Alpari\MetaTrader 4.00\MQL4\Logs\20160305.log
0 07:46:55239 Check_FileLib EURUSD,Daily: hFile = 2020
0 07:46:55.240 Check_FileLib EURUSD,Daily: uninit Grund 0
0 07:46:55.241 Script Check_FileLib EURUSD,Daily: entfernt


Herzlichen Dank! Es funktioniert seltsam, ich habe Admin-Rechte, ich gab speziell alle Zerstörungen an den Besitzer des Terminal-Ordners, es half, aber dann hörte es auf zu funktionieren. Dann versucht, die Protokolldatei mit dem FileReadStrArrayW (wenn ich nicht mit dem Namen falsch bin) lesen Sie die leeren Zeilen, Skript hängt im Ansi-Modus. Nur FileReadCharArr war in der Lage, die Ansi-Codes zu lesen. Vielleicht haben Sie ein Beispiel, wie man eine Logdatei mit Ihrer Bibliothek analysieren kann? Ich wäre Ihnen sehr dankbar!
 
Ich bin mir nicht sicher, wie ich es verwenden soll, und ich weiß nicht, wie ich dieses Problem lösen kann. In dem Indikator soll eine vergleichende Berechnung mit dem Zyklus zu machen, in Echtzeit an Markttagen der Indikator funktioniert (wenn auch langsam), aber heute habe ich festgestellt, dass die Berechnung nicht durchgeführt wird.