[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 445

 

Ich bin nur neugierig - wenn die Bestellung nicht aufgegeben wird, muss es sich um einen Fehler handeln? Und Sie können es wahrscheinlich nicht lesen und korrigieren?

/*einen Auftrag mit einem Take- und Stop-Wert von Null erteilen und ihn dann korrigieren, so als ob sie ESP-Ausführung eingeführt hätten*/

 
FAQ:

Ich bin nur neugierig - wenn die Bestellung nicht aufgegeben wird, muss es sich um einen Fehler handeln? Und Sie können sie wahrscheinlich nicht lesen und korrigieren?

/*Erteilen Sie einen Auftrag mit Null-Take und Stop und korrigieren Sie ihn dann.

Ich versuche nicht, das zu tun, aber die Protokolle sind sauber!

"Wenn es sich um eine Frage des Anhaltenshandelt, ist es nur eine Versicherungsoption.

 
vall:

Das ist es ja - die Stämme sind sauber!

"Wenn es um Anschläge geht, ist eseine Versicherungsoption für den Notfall.

Sie geben eine Order ohne Stopps und Übernahmen auf und beobachten, ob sie geöffnet wird oder nicht!

Das Setzen von Stopps und Take's in Ihrem Brokerhaus ist bei dieser Art von Handelskonto NUR durch Änderung der zuvor gesetzten Nullwerte möglich.

 
Roman.:

Geben Sie eine Order ohne Stopps und Übernahmen auf und beobachten Sie, ob sie geöffnet wird oder nicht!

Das Setzen von Stopps und Take's in Ihrem DC ist bei dieser Art von Handelskonto NUR möglich, indem Sie die zuvor festgelegten Nullwerte ändern.


Vielen Dank, das hilft.

Es stellt sich heraus, dass man ein Konto mit 0 eröffnen und dann durch die Einführung von Stopps ändern muss?

 
vall:

Vielen Dank, das hilft.

Sie müssen also ein Konto bei 0 eröffnen und es dann durch Eingabe von Stopps ändern?

Ich müsste einen Auftrag mit Nullwerten für diese Parameter eröffnen und sie dann ändern, indem ich den offenen Auftrag modifiziere.

 
Roman.:

einen Auftrag mit Nullwerten für diese Parameter eröffnen und sie dann ändern, indem Sie den offenen Auftrag ändern.


Danke, sind die Stops auf die Genauigkeit der Chart-Symbole eingestellt, d.h. 0,00001 oder auf die Genauigkeit von 0,0001?
 

Die Protokolle sind sauber, weil niemand die Fehlererkennung und Fehlerbehandlung für Sie übernimmt.

Спасибо, стопы устанавливаются в точностью до символов графика, т.е. 0,00001 или с точностью до 0,0001?

MarketInfo liegt in Ihren Händen.

 
Vinin:

Niemand ist bereit, sich mit Ihrer Frage zu befassen. Allerdings hätten Sie Ihre Frage schon vor langer Zeit beantworten können, wenn Sie gewollt hätten.
Das ist es, was ich glaube... Glauben Sie mir, manchmal reicht der Wille allein nicht aus, um Ihre eigene Frage zu beantworten.
 

Guten Tag... Frage zu den Funktionen FileIsEnding und FileIsLineEnding. Um zu verstehen, wie die Funktionen FileIsEnding und FileIsLineEnding funktionieren, habe ich das folgende Skript geschrieben:

//+------------------------------------------------------------------------------------------+
//+------------------------------------------------------------------------------------------+
//|                         script program start function                                    |
//+------------------------------------------------------------------------------------------+
#property show_inputs                                                    //выводим перед запуском скрипта окно свойств
extern int  position=0;                                                  //внешняя переменная: смещение файлового указателя ОТ НАЧАЛА ФАЙЛА (в БАЙТАХ)
//---------------------------------------------------------------------------------------- 1 -
int start()                                                              //функция start
  {                                                                      //начало start
   double Timestart=GetTickCount();                                      //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта 
   string name="Копия Запись чисел в файл.csv";                          //имя создаваемого файла
   bool h;                                                               //переменная: значение функции FileIsEnding
   bool h_l;                                                             //переменная: значение функции FileIsLineEnding
   int error;                                                            //переменная: ошибка
   int handle=FileOpen(name,FILE_CSV|FILE_WRITE,';');                    //открываем заданный файл n записываем туда данные
   int запись=FileWrite(handle,DoubleToStr(1.3584,4));                   //записываем цены OHLC в файл csv (в преобразованном виде, т.е в виде текста)
   FileClose(handle);                                                    //закрываем файл
//---------------------------------------------------------------------------------------- 2 -
   handle=FileOpen(name,FILE_CSV|FILE_READ,';');                         //открываем заданный файл
   bool pos=FileSeek(handle,position,SEEK_SET);                          //смещаем от начала вправо указатель файла
   double чтение=FileReadNumber(handle);                                 //считываем число из текущей позиции (уже измененной функцией FileSeek) файлового указателя
   int size=FileSize(handle);                                            //вычисляем размер заданного файла
   h=FileIsEnding(handle);                                               //устанавливаем текущее значение переменной h
   h_l=FileIsLineEnding(handle);                                         //устанавливаем текущее значение переменной h_l
   error=GetLastError();                                                 //значение ошибки, производимой функцией FileIsEnding
   if(error!=0)Alert("Текущая ошибка ",error);                           //если код текущей ошибки не равен 0, то получаем номер текущей ошибки
   FileClose(handle);                                                    //закрываем файл
//----------------------------------------------------------------------------------------- 3 -
   Comment("Размер файла ",name," составил ",size," байт",
           "\nФункция FileSeek вернула: ",pos,
           "\nФункция FileReadNumber(handle) вернула: ",чтение,
           "\nФункция FileIsLineEnding(handle) вернула: ",h_l,
           "\nФункция FileIsEnding(handle) вернула: ",h,
           "\nСкрипт выполнялся всего ",GetTickCount()-Timestart," миллисекунд, из них: ",MathFloor((GetTickCount()-Timestart)/1000)," секунд ",((GetTickCount()-Timestart)/1000-MathFloor((GetTickCount()-Timestart)/1000))*1000," миллисекунд");//печать сообщения на экран
//----------------------------------------------------------------------------------------- 4 -
   return(0);                                                             //выход из start
  }                                                                       //конец start
//-------------------------------------- КОНЕЦ START -------------------------------------- 5 -

In Block 1-2 habe ich die Zahl 1,3584 (die von der Funktion DoubleToStr in Text umgewandelt wird) geöffnet und in die Datei geschrieben.

In Block 3-4 habe ich die Datei geöffnet und die dort geschriebene Zahl gelesen.

Der beabsichtigte Zweck der externen Variablen int position ist es, zu verstehen, wie die Funktionen FileIsEnding und FileIsLineEnding funktionieren und was ein Dateizeiger ist, indem man den Dateizeiger mit der Funktion FileTell verschiebt.

Das MQL4.community Buch sagt, dass der Dateizeiger ein Analogon des Textcursors ist.

ABER, wenn man das Skript mehrmals ausführt und jedes Mal die externe Variable postiton auf 1 setzt (d.h. den Dateizeiger um 1 Byte nach rechts an den Anfang der Datei verschiebt), gibt die Funktion Comment eine Reihe von Meldungen aus, z.B:

Bei postiton=7 würde die Nachricht wie folgt aussehen:


Bei postiton=8 würde die Nachricht wie folgt aussehen:


Da String-Konstanten 8 Bytes im PC-Speicher belegen und nur eine umgewandelte Zahl in der Datei vorhanden ist, führt das Verschieben des Dateizeigers um 8 Bytes nach rechts zu einem 4099-Fehler (was bedeutet, dass das Ende der Datei erreicht wurde). Ich weiß auch, dass die Funktion FileIsEnding aus demselben Grund (Dateiende erreicht) 1 (true) zurückgibt. Aber ich verstehe nicht, warum die Funktion FileIsLineEnding 0 zurückgibt (false, was bedeutet, dass der Dateizeiger das Ende der Zeile nicht erreicht hat). Ausgehend von der Analogie im MQL-Buch (ein Dateizeiger ist in etwa dasselbe wie ein Textcursor) habe ich mir überlegt, dass das Ende der Datei auch das Ende der Zeichenkette ist. Aber wenn man bedenkt, dass FileIsEnding und FileIsLineEnding unterschiedliche Werte haben, wenn der Dateizeiger das Ende der Datei erreicht, bin ich ratlos, WAS ein Dateizeiger ist

Frage:

1. Was ist ein Dateizeiger?

2. Warum fallen das Ende einer Zeile und das Ende einer Datei nicht zusammen (wenn ein Dateizeiger das Ende einer Datei erreicht)?

P.S. Um das Forum nicht zu überladen, danke ich Ihnen im Voraus für die Antwort

 
7777877:

1. Was ist ein Dateizeiger?

2. Warum fallen das Zeilenende und das Dateiende nicht zusammen (wenn der Dateizeiger das Dateiende erreicht)?

P.S. Um das Forum nicht zu überladen, danke ich Ihnen im Voraus für Ihre Antwort

1. der Dateizeiger ist eigentlich ein Cursor, wenn Sie tippen

2. wer hat Ihnen gesagt, dass sie übereinstimmen sollten? Es gibt den String-Terminator "\n" und das Dateiendezeichen "EOF"; dies sind unterschiedliche Zeichen. Sie sind wie das Satzendezeichen (Punkt) und das Absatzendezeichen ("Zeilenumbruchzeichen"). Am Anfang steht ein Punkt, der das Ende der Zeile darstellt. Dann kommt das Ende des Absatzes.