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

 

Wo der Fehler liegt, weiß ich nicht.

Op.

Dateien:
5system2.mq4  8 kb
 
CJIeCaPb:

Wo der Fehler liegt, weiß ich nicht.

Ope.

In der while(O==3)-Schleife ist etwas falsch

 
CJIeCaPb:

In der while(O==3)-Schleife ist etwas falsch

Puh... Das war's, ich habe es herausgefunden. Nach dem Schließen wird das Ticket gelöscht und der Auftrag muss erneut ausgeführt werden
 
Hallo! Das ist das Problem, ich kann die Datei nicht öffnen. Ich habe verschiedene Dateierweiterungen ausprobiert, aber ohne Erfolg: Fehler 5004. Die Datei befindet sich in der Datei-Sandbox. Es geht nur um den Griff, aber ich habe keine Ahnung, warum. Hier ist der Code:
   int filehandle=FileOpen("test.txt",FILE_TXT|FILE_WRITE,";");
   if(filehandle<0)
   Alert("ошибка ",GetLastError());                          //Для проверки handle

 
 int filehandle=FileOpen("test.txt",FILE_WRITE|FILE_TXT,";");
 
evillive:
Ich habe es ohne den Separator versucht - ohne Erfolg.
 
Kapizdo4ka:
Hallo, ich habe das Problem, dass ich die Datei nicht öffnen kann. Ich habe verschiedene Dateierweiterungen ausprobiert, ohne Erfolg, ich bekomme nur die Fehlermeldung 5004. Die Datei befindet sich in der Datei-Sandbox. Es geht nur um den Griff, aber ich habe keine Ahnung, warum. Hier ist der Code:

Haben Sie versucht anzugeben, dass sich die Datei in einem gemeinsamen Ordner befindet?

Datei-Offen-Flags

Die Werte der Flags, die festlegen, wie die Datei behandelt werden soll. Flaggen sind wie folgt definiert:

Kennung

Wert

Beschreibung

DATEI_LESEN

1

Die Datei wird zum Lesen geöffnet. Dieses Flag wird beim Öffnen einer Datei (FileOpen()) verwendet. FILE_WRITE und/oder FILE_READ müssen gesetzt werden, wenn eine Datei geöffnet wird.

DATEI_SCHREIBEN

2

Datei wird zum Schreiben geöffnet. Dieses Flag wird verwendet, um eine Datei zu öffnen (FileOpen()). Wenn eine Datei geöffnet wird, müssen die Flags FILE_WRITE und/oder FILE_READ gesetzt sein.

FILE_BIN

4

Binärer Lese- und Schreibmodus (keine Konvertierung von oder nach String). Dieses Flag wird zum Öffnen von Dateien verwendet (FileOpen())

DATEI_CSV

8

Datei vom Typ csv (alle geschriebenen Elemente werden in eine Zeichenkette des entsprechenden Typs, Unicode oder Ansi, umgewandelt und durch ein Trennzeichen getrennt). Dieses Flag wird beim Öffnen einer Datei verwendet (FileOpen())

DATEI_TXT

16

Einfache Textdatei (wie csv, aber ohne Trennzeichen). Dieses Flag wird verwendet, wenn Dateien geöffnet werden (FileOpen())

FILE_ANSI

32

ANSI-Strings (Ein-Byte-Zeichen). Dieses Flag wird beim Öffnen von Dateien verwendet (FileOpen())

FILE_UNICODE

64

UNICODE-Strings (Zwei-Byte-Zeichen). Dieses Flag wird beim Öffnen von Dateien verwendet (FileOpen())

FILE_SHARE_READ

128

Gemeinsamer Lesezugriff durch mehrere Programme. Dieses Flag wird beim Öffnen einer Datei (FileOpen()) verwendet, ersetzt aber nicht die Notwendigkeit von FILE_WRITE und/oder FILE_READ beim Öffnen einer Datei.

FILE_SHARE_WRITE

256

Dieses Flag wird für den gemeinsamen Schreibzugriff durch mehrere Programme verwendet. Dieses Flag wird zum Öffnen von Dateien (FileOpen()) verwendet, ersetzt aber nicht FILE_WRITE und/oder FILE_READ beim Öffnen einer Datei.

DATEI_REWRITE

512

Die Datei kann mit FileCopy() und FileMove() überschrieben werden. Die Datei muss existieren oder beschreibbar sein. Andernfalls wird die Datei nicht geöffnet.

FILE_COMMON

4096

Speicherort der Datei im gemeinsamen Ordner aller Client-Terminals\Terminal\Common\Files . Dieses Flag wird beim Öffnen von Dateien (FileOpen()), beim Kopieren von Dateien (FileCopy(), FileMove()) und bei der Überprüfung der Existenz von Dateien (FileIsExist()) verwendet

Beim Öffnen einer Datei können ein oder mehrere Flags angegeben werden; diese Kombination wird als Kombination von Flags bezeichnet. Die Kombination der Merker wird mit dem logischen ODER-Zeichen (|) geschrieben, das zwischen den aufgezählten Merkern steht. Um beispielsweise eine CSV-Datei gleichzeitig zum Lesen und Schreiben zu öffnen, können Sie die Kombination FILE_READ|FILE_WRITE|FILE_CSV angeben.

 
Vinin:

Haben Sie versucht anzugeben, dass sich die Datei in einem gemeinsamen Ordner befindet?

Datei-Offen-Flags

Die Werte der Flags, die festlegen, wie die Datei geöffnet werden soll. Flaggen sind wie folgt definiert:

Kennung

Wert

Beschreibung

DATEI_LESEN

1

Die Datei wird zum Lesen geöffnet. Dieses Flag wird beim Öffnen einer Datei (FileOpen()) verwendet. FILE_WRITE und/oder FILE_READ müssen beim Öffnen der Datei gesetzt werden.

DATEI_SCHREIBEN

2

Datei wird zum Schreiben geöffnet. Dieses Flag wird beim Öffnen einer Datei (FileOpen()) verwendet. Das FILE_WRITE-Flag muss gesetzt sein und/oder das FILE_READ-Flag muss gesetzt sein, wenn eine Datei geöffnet wird.

FILE_BIN

4

Binärer Lese- und Schreibmodus (unkonvertiert in und aus String). Dieses Flag wird zum Öffnen von Dateien verwendet (FileOpen())

DATEI_CSV

8

csv-Datei (alle geschriebenen Elemente werden in eine Zeichenkette des entsprechenden Typs, Unicode oder Ansi, umgewandelt und durch ein Trennzeichen getrennt). Dieses Flag wird beim Öffnen von Dateien verwendet (FileOpen())

DATEI_TXT

16

Einfache Textdatei (gleicher Typ, aber Begrenzungszeichen werden ignoriert). Dieses Flag wird beim Öffnen einer Datei verwendet (FileOpen())

FILE_ANSI

32

Zeichenfolge vom Typ ANSI (Einzelbyte-Zeichen). Dieses Flag wird beim Öffnen von Dateien verwendet (FileOpen())

FILE_UNICODE

64

UNICODE-Strings (Zwei-Byte-Zeichen). Dieses Flag wird beim Öffnen von Dateien verwendet (FileOpen())

FILE_SHARE_READ

128

Gemeinsamer Lesezugriff zwischen mehreren Programmen. Dieses Flag wird beim Öffnen einer Datei (FileOpen()) verwendet, ersetzt aber nicht die Angabe von FILE_WRITE und/oder FILE_READ beim Öffnen einer Datei.

FILE_SHARE_WRITE

256

Dieses Flag ist für Schreibzugriffe, die von mehreren Programmen gemeinsam genutzt werden. Dieses Flag wird zum Öffnen von Dateien (FileOpen()) verwendet, ersetzt aber nicht die Notwendigkeit, FILE_WRITE- und/oder FILE_READ-Flags beim Öffnen einer Datei anzugeben.

DATEI_REWRITE

512

FileCopy() und FileMove() können verwendet werden, um eine Datei zu überschreiben. Die Datei muss existieren oder beschreibbar sein. Andernfalls wird die Datei nicht geöffnet.

FILE_COMMON

4096

Speicherort der Datei im gemeinsamen Ordner aller Client-Terminals \Terminal\Common\Files . Dieses Flag wird beim Öffnen von Dateien (FileOpen()), beim Kopieren von Dateien (FileCopy(), FileMove()) und bei der Überprüfung der Existenz von Dateien (FileIsExist()) verwendet.

Beim Öffnen einer Datei können ein oder mehrere Flags angegeben werden, diese Kombination wird als Kombination von Flags bezeichnet. Eine Kombination von Merkern wird mit dem logischen ODER (|) aufgezeichnet, das zwischen den aufgeführten Merkern steht. Um zum Beispiel eine CSV-Datei gleichzeitig zum Lesen und Schreiben zu öffnen, können Sie die KombinationFILE_READ|FILE_WRITE|FILE_CSV angeben.

Ich danke Ihnen! Die Antwort stellte sich jedoch als viel einfacher heraus. Alles wegen der Änderungen im neuen Gebäude. Es hat sich herausgestellt, dass die Funktion FileOpen jetzt den Typ uint statt wie in der vorherigen Version den Typ int angeben muss:
uint filehandle=FileOpen(filename,FILE_TXT||FILE_WRITE,"\r\n");

Und im Falle eines Fehlers gibt die Funktion nun 0 statt -1 zurück.

 

Skizziert einen einfachen Trailing Stop. bez_Level - Trailing-Startlevel in Pips. TrallStep - Nachlaufschritt. Magie - Nummer der Magie.

Das Problem ist, dass, wenn der EA mehrere Aufträge eröffnet, nur der erste Auftrag ausgelöst wird. Und wenn die erste Bestellung abgeschlossen ist, beginnt die zweite zu trillern. Ich erhalte keine Fehlermeldungen. Ich kann nicht versuchen, herauszufinden, was ich falsch gemacht habe. Ich danke Ihnen...

int lim=AuftragsGesamt()-1;

for(int i=lim; i>=0; i--)
{
if(bez_Level>0)
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderType()==OP_SELL)
{
{ if((OrderOpenPrice()-Ask)>(Point*bez_Level))
{
if((OrderStopLoss()>(Ask+Point*bez_Level)+(Point*TrallStep)) || (OrderStopLoss()==0)))
{
//--- Auftrag ändern und beenden
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*bez_Level,OrderTakeProfit(),0))
Print("Schleppender Fehler ",GetLastError());
}
}
}
if(Auftragsart()==OP_BUY)
{
if((Bid-OrderOpenPrice()>Point*bez_Level))
{
if(OrderStopLoss()<Bid-(Punkt*bez_Level)-(Punkt*TrallStep))
{
//--- Bestellung ändern
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*bez_Level,OrderTakeProfit(),0))
Print("Schleppender Fehler ",GetLastError())
}
}

}

}
}
}
 

Leute, was ist der Trick? Warum kommt es nicht aus Inita?

WARUM ES KEINEN EINTRAG AUF START????????? GIBT

int init()
 {
   if(init_data()==false)error=true;
   if(error==false)load_data();
   if(error==false)count_data();
   //if(error==true)Print("---------->>>>>>> ERORR!!! <<<<<<<<<--------------");
   setparam();
   Print ("Инит завершён успешно");
   return (0);
 }

int start()
{
  // if(iTime(Symbol(),0,0) == prevtime) return(0);    //ждем нового бара
 //  prevtime = iTime(Symbol(),0,0);                   //если появился новый бар , включаемся    
   Print (" Старт после нового бара"); 
...
      
Grund der Beschwerde: