[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 419

 

ilunga Ich brauche mehr Hilfe. Hier stimmt etwas nicht. Es wird nur die neue Zeit gedruckt, aber es gibt keinen neuen ZigZag.

2012.10.08 12:23:49 2012.09.14 05:12 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:11
2012.10.08 12:23:49 2012.09.14 05:11 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:10
2012.10.08 12:23:49 2012.09.14 05:10 MTF PRINT EURUSD,M1: newTime100005 2012.09.14 05:05
2012.10.08 12:23:49 2012.09.14 05:10 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:09
2012.10.08 12:23:48 2012.09.14 05:09 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:08
2012.10.08 12:23:4814 05:08 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:07
2012.10.08 12:23:48 2012.09.14 05:07 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:06
2012.10.08 12:23:48 2012.09.14 05:06 MTF PRINT EURUSD,M1: newTime100005 2012.09.14 05:00
2012.10.08 2012 12:23:48 2012.09.14 05:06 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:03
2012.10.08 12:23:48 2012.09.14 05:03 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:02
2012.10.08 12:23:48 2012.09.14 05:02 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:01
2012.10.08 12:23:48 2012.09.14 05:01 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:00
2012.10.08 12:23:48 2012.09.14 05:00 MTF PRINT EURUSD,M1: newTime1000060 2012.09.14 04:00
2012.10.08 12:23:48 2012.09.14 05:00 MTF PRINT EURUSD,M1: newTime1000030 2012.09.14 04:30
2012.10.08 12:23:48 2012.09.14 05:00 MTF PRINT EURUSD,M1: newTime1000015 2012.09.14 04:45
2012.10.08 12:23:48 2012.09.14 05:00 MTF PRINT EURUSD,M1: newTime1000005 2012.09.14 04:55
2012.10.08 12:23:4814 05:00 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 04:59
2012.10.08 12:23:48 2012.09.14 04:59 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 04:58
2012.10.08 12:23:48 2012.09.14 04:58 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 04:55
2012.10.08 2012 12:23:48 2012.09.14 04:55 MTF PRINT EURUSD,M1: newTime1000005 2012.09.14 04:50
2012.10.08 12:23:48 2012.09.14 04:55 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 04:54
2012.10.08 12:23:48 2012.09.14 04:54 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 04:53

Vollständiger Code.

//Код непоместился. Слишком длинный. Он в прицепе.
Dateien:
mtfeprint.mq4  19 kb
 
hronik1967:
Wenn dieses Kauderwelsch von Neulingen geschrieben wird!!!, dann muss ich wohl ein Trader-Embryo sein. Er hat eine einfache Frage gestellt und sie völlig ignoriert. Ich bin wahrscheinlich nicht würdig, hier zu sein. Ich bin dessen nicht würdig. Vielleicht wird jemand aufmerksam. Ich frage noch einmal, ich habe einen Forex Cieaner Expert Advisor für EURUSD heruntergeladen und aufgesetzt, ich habe in einem 30-Minuten-Intervall gehandelt, aber ich sehe keine Trades. Ich habe vorher Ilan 1.6 auf GBRUSD gesetzt, dort ist alles normal. Was habe ich nicht getan? IST DA DRAUSSEN JEMAND, DER ES MIR SAGEN KANN!!!

Viele Menschen kennen einen solchen Berater nicht. Sie wollen nicht danach suchen und sie herunterladen. Es gibt noch weitere Fragen zu dem Kodex.
 
hronik1967:
Wenn das obige Kauderwelsch von Neulingen geschrieben wird!!!, dann muss ich der Keim eines Händlers sein. Er hat eine einfache Frage gestellt und sie völlig ignoriert. Ich bin wahrscheinlich nicht würdig, hier zu sein. Ich bin dessen nicht würdig. Vielleicht wird jemand aufmerksam. Ich frage noch einmal, ich habe einen Forex Cieaner Expert Advisor für EURUSD heruntergeladen und aufgesetzt, ich habe in einem 30-Minuten-Intervall gehandelt, aber ich sehe keine Trades. Ich habe vorher Ilan 1.6 auf GBRUSD gesetzt, da ist alles normal. Was habe ich nicht getan? WENN ES JEMANDEN GIBT, DER MIR DAS SAGEN KANN, BITTE!
Das Auto ist auf der Straße, geht nicht. Leute, helft mir, was ist daran falsch? Das ist ungefähr der Umfang Ihrer EA-Frage.
Sie bekommen keine Antwort, denn es gibt mindestens zwei Dutzend Gründe unterschiedlichster Art. Ein fremder Expert Advisor auf einem fremden Terminal eines Händlers mit unbekannter Qualifikation.
 

Hilfe.

Ich meinte (zwei Beiträge weiter oben), ob das Journal gedruckt wird oder nicht.

Print("newZZ_240=",Curr_zz240) wird nicht gedruckt;

Print("newTime",mn240, ",TimeToStr(CurrTime240)) prints;

Das bedeutet, dass mit NewZigZag H4 etwas nicht stimmt. Ich verstehe nicht, wie oder was. Es scheint so zu sein, aber es gibt keinen Ausdruck.

Ich habe viele verschiedene Studien über ZZ durchgeführt. Ich habe bei verschiedenen TFs unterschiedliche Ergebnisse erzielt. Jetzt will ich alles auf die Reihe bekommen. Ich habe eine Menge Berechnungen, und wenn ich sie nach Ticks oder neuen Balken durchführe, wird mein Computer stark belastet. Es genügt, die Daten zu verarbeiten, wenn ein neues ZZ-Extremum erscheint.

Dateien:
mtfqprint.mq4  19 kb
 
Danke an gince und granit77 für die Antworten. Sie scheinen vorzuschlagen, dass ein Spezialist zu dem Haus gerufen werden sollte... Das habe ich mir auch gedacht, aber man kann es nicht mit den Fingern erklären.
 
FAQ:

Ein Feature - eine kleine Ungereimtheit, die jedoch nicht stört und manchmal sogar undokumentierte Möglichkeiten bietet, wie OrderClosePrice() - wenn Sie einen Auftrag mit diesem Parameter im Schlusskurs schließen, wird er geschlossen, ohne dass Sie sich die Mühe machen müssen, den Preis nach Auftragsart zu bestimmen.

Bug - Fehler im Programm (unverbesserliche Eigenschaft)

Servidec - ein Ort, an dem Benutzer Briefe mit gefundenen Fehlern schreiben. Es befindet sich im fünften Forum in Ihrem Profil (eine zusätzliche Registrierung ist erforderlich)

Großer Dank schoen))))
 

Guten Tag. Meine Frage lautet wie folgt. Im MQL4-Buch, das unter MQL4.community zu finden ist, wird im Abschnitt "Standardfunktionen" des Abschnitts "Stringfunktionen und Datenumwandlungsfunktionen" das folgende Beispiel für den Expert Advisor strings.mq4 gegeben (vollständig aus dem Buch übernommen)

//--------------------------------------------------------------------
// strings.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------- 1 --
extern int Quant_Bars=100;             // Количество баров
datetime   Time_On;
string     Prefix    ="Paint_";
//--------------------------------------------------------------- 2 --
int init()                             // Спец. функция init()
  {
   int Ind_Bar;                        // Индекс бара
   Time_On=Time [Quant_Bars];          // Время первого раскрашенного
   for(Ind_Bar=Quant_Bars-1; Ind_Bar>=0; Ind_Bar--)// Цикл по барам
     {
      Create(Ind_Bar,1);               // Нарисуем тонкую линию
      Create(Ind_Bar,2);               // Нарисуем толстую линию
     }
   WindowRedraw();                     // Перерисовка изображения 
   return;                             // Выход из init()
  }
//--------------------------------------------------------------- 3 --
int start()                            // Спец. функция start
  {
   datetime T1, T2;                    // 1 и 2 координаты времени
   int Error,Ind_Bar;                  // Код ошибки и индекс бара
   double P1, P2;                      // 1 и 2 координата цены
   color Col;                          // Цвет созданного объекта
//--------------------------------------------------------------- 4 --
   for(int Line=1; Line<=2; Line++)    // Цикл по видам линий
     {
      string Nom_Lin =Line + "_";      // Строка с номером линии
      //    string Nom_Lin  = DoubleToStr(Line,0)+"_";// Можно и так
      for(Ind_Bar=0; ;Ind_Bar++)       // Цикл по барам
        {
//--------------------------------------------------------------- 5 --
         datetime T_Bar= Time[Ind_Bar];// Время открытия бара
         if (T_Bar < Time_On) break;   // Заграничные не раскрашиваем
         string Str_Time=TimeToStr(T_Bar);       // Строка со временем
         string His_Name=Prefix+Nom_Lin+Str_Time;// Имя объекта
//--------------------------------------------------------------- 6 --
         T1=ObjectGet(His_Name,OBJPROP_TIME1);// Запрос коорд. t1
         Error=GetLastError();         // Получение кода ошибки
         if (Error==4202)              // Если объекта нет :(
           {
            Create(Ind_Bar,Line);      // Вызов ф-ии создания объекта
            continue;                  // На следующую итерацию
           }
//--------------------------------------------------------------- 7 --
         T2 =ObjectGet(His_Name,OBJPROP_TIME2); // Запрос коорд. t2
         P1 =ObjectGet(His_Name,OBJPROP_PRICE1);// Запрос коорд. p1
         P2 =ObjectGet(His_Name,OBJPROP_PRICE2);// Запрос коорд. p1
         Col=ObjectGet(His_Name,OBJPROP_COLOR); // Запрос цвета
         if(T1!=T_Bar || T2!=T_Bar || // Не те координаты или цвет:
            (Line==1 && (P1!=High[Ind_Bar] || P2!=  Low[Ind_Bar])) ||
            (Line==2 && (P1!=Open[Ind_Bar] || P2!=Close[Ind_Bar])) ||
            (Open[Ind_Bar] Close[Ind_Bar] && Col!=Red)  ||
            (Open[Ind_Bar]==Close[Ind_Bar] && Col!=Green)  )
           {
            ObjectDelete(His_Name);    // Удаляем объект
            Create(Ind_Bar,Line);      // Создаём правильный объект
           }
//--------------------------------------------------------------- 8 --
        }
     }
   WindowRedraw();                     // Перерисовка изображения 
   return;                             // Выход из start()
  }
//--------------------------------------------------------------- 9 --
int deinit()                           // Спец. функция deinit()
  {
   string Name_Del[1];                 // Объявление массива
   int Quant_Del=0;                    // Количество удаляемых объектов
   int Quant_Objects=ObjectsTotal();   // Cтолько всего ВСЕХ объектов
   ArrayResize(Name_Del,Quant_Objects);// Необходимый размер массива
   for(int k=0; k<=Quant_Del; i++)     // Удаляем объекты с именами,.. 
      ObjectDelete(Name_Del[i]);       // .. имеющимися в массиве
   return;                             // Выход из deinit()
  }
//-------------------------------------------------------------- 10 --
int Create(int Ind_Bar, int Line)      // Пользовательская функция..
  {                                    // ..создания объекта
   color Color;                        // Цвет объекта
   datetime T_Bar=Time [Ind_Bar];      // Время открытия бара
   double   O_Bar=Open [Ind_Bar];      // Цена открытия бара
   double   C_Bar=Close[Ind_Bar];      // Цена закрытия бара
   double   H_Bar=High [Ind_Bar];      // Максимальная цена бара
   double   L_Bar=Low  [Ind_Bar];      // Минимальная цена бара
 
   string Nom_Lin =Line + "_";         // Строка - номер линии
   // string Nom_Lin  = DoubleToStr(Line,0)+"_";// Можно и так
   string Str_Time=TimeToStr(T_Bar);   // Строка - время откр.     
   string His_Name=Prefix+Nom_Lin+Str_Time;// Имя созаваемого объект
   if (O_Bar < C_Bar) Color=Blue;      // Выбор цвета в зависимости..
   if (O_Bar >C_Bar) Color=Red;        // .. от характеристик бара
   if (O_Bar ==C_Bar) Color=Green;
 
   switch(Line)                        // Тонкая или толстая линия
     {
      case 1:                          // Тонкая линия
         ObjectCreate(His_Name,OBJ_TREND,0,T_Bar,H_Bar,T_Bar,L_Bar);
         break;                        // Выход из switch
      case 2:                          // Толстая линия
         ObjectCreate(His_Name,OBJ_TREND,0,T_Bar,O_Bar,T_Bar,C_Bar);
         ObjectSet(   His_Name, OBJPROP_WIDTH, 3);// Стиль     
     }
   ObjectSet(    His_Name, OBJPROP_COLOR, Color); // Цвет
   ObjectSet(    His_Name, OBJPROP_RAY,   false); // Луч
   ObjectSetText(His_Name,"Объект создан экспертом",10);// Описание
   return;                             // Выход из польз. ф-ии
  }
//-------------------------------------------------------------- 11 –
 

... Fortsetzung...

Am Ende des Unterabschnitts StringSubstr Function steht in Klammern der folgende Satz: "Separat müssen wir beachten, dass wirin der ersten for-Schleife (meine Anmerkung: es muss deinit() sein, da es keine andere Möglichkeit gibt, Objekte zu löschen) keine Objekte löschen können, da sich nach jedem Löschen die Gesamtzahl der Objekte und ihre Nummerierung ändern und einige Objektnamen übersprungen werden". In dem zitierten EA gibt es jedoch überhaupt keine zweite for-Schleife . Außerdem wird die in der Funktion deinit() vor der for-Schleife definierte Variable Quant_Del mit Null initialisiert, während die Variable i vor der for-Schleife nirgends definiert wurde.

   for(int k=0; k<=Quant_Del; i++)     // Удаляем объекты с именами,.. 
         ObjectDelete(Name_Del[i]);       // .. имеющимися в массиве

Es stellt sich heraus, dass der oben genannte Experte einfach mehrere Programmzeilen ausgelassen hat.

Die erste Frage lautet also: Handelt es sich wirklich um eine triviale Auslassung einiger Zeilen oder ist das Programm so kompliziert, dass ein Anfänger seine Bedeutung nicht ohne fremde Hilfe verstehen kann?

Außerdem... Im selben Kapitel desselben Abschnitts befindet sich vor dem zitierten Text ein Link zu demselben Expert Advisor (in der angehängten Datei), der, wenn er angeklickt wird, denselben Expert Advisor in MetaElitor öffnet. Aber der Text dieses Expert Advisors ist anders: die deinit()-Funktion sieht hier wie folgt aus

//--------------------------------------------------------------- 9 --
int deinit()                           // Спец. функция deinit()
  {
   string Name_Del[1];                 // Объявление массива
   int Quant_Del=0;                    // Количество удаляемых объекто
   int Quant_Objects=ObjectsTotal();   // Cтолько всего ВСЕХ объектов
   ArrayResize(Name_Del,Quant_Objects);// Необходимый размер массива
   for(int k=0; k<Quant_Objects; k++)  // По количеству объектов 
     {
      string Obj_Name=ObjectName(k);   // Запрашиваем имя объекта
      string Head=StringSubstr(Obj_Name,0,6);// Извлекаем первые 6 сим
      if (Head==Prefix)                // Найден объект, ..
        {                              // .. начинающийся с Paint_
         Quant_Del=Quant_Del+1;        // Колич имён к удалению
         Name_Del[Quant_Del-1]=Obj_Name;//Запоминаем имя удаляемого
        }
     }
   for(int i=0; i<=Quant_Del; i++)     // Удаляем объекты с именами,.. 
      ObjectDelete(Name_Del[i]);       // .. имеющимися в массиве
   return;                             // Выход из deinit()
  }
//-------------------------------------------------------------- 10 --

Dann, wenn "kombinieren" der Satz "Bitte beachten Sie, dass Sie in der ersten for-Schleife keine Objekte löschen können, da sich in diesem Fall die Gesamtzahl der Objekte und ihre Nummerierung nach jedem Löschen ändert und einige Objektnamen daher übersprungen werden" AND Text deinit() Funktion der letzten Variante habe ich die 2. Frage:

Frage. Warum kann ich nicht Objekte in der ersten for-Schleife löschen, indem ich die Funktion ObjectDelete(Obj_Name) in die if-Anweisung einfüge...? Etwa so:

int deinit()                           // Спец. функция deinit()
  {
   int Quant_Objects=ObjectsTotal();   // Cтолько всего ВСЕХ объектов
   for(int k=0; k<Quant_Objects; k++)  // По количеству объектов 
     {
      string Obj_Name=ObjectName(k);   // Запрашиваем имя объекта
      string Head=StringSubstr(Obj_Name,0,6);// Извлекаем первые 6 сим
      if (Head==Prefix)                // Если найден объект, …
        {                              // ... начинающийся с Paint_,
         ObjectDelete(Obj_Name);       // … то его и удаляем
        }                              //конец if
     }                                 //конец for
   return;                             // Выход из deinit()
  }                                    //конец deinit
//-------------------------------------------------------------- 10 --

Warum nach jeder Löschung "... Die Gesamtzahl der Objekte wird sich ändern"...? Da in diesem Fall die Variable Quant_Objects, die die Gesamtzahl der Objekte bestimmt, ihren Wert gleich ObjectsTotal() erhält, FORWARD the for loop?

P.S. Vielen Dank im Voraus für die Antwort, um das Forum nicht zu überladen.



Dateien:
strings.mq4  7 kb
 

Leute, ein bisschen off topic, aber trotzdem...

Ist es möglich, Computer/Laptops mit 32 und 64 Bit Win7 über das LAN zu "befreundet"?
Ich habe drei Laptops und einen Desktop (alle zu Hause) auf zwei Win7-Laptops (64-Bit) und sie werden auf dem 32-Bit Win7 Ultimate-Desktop im Netzwerk überhaupt nicht angezeigt. Und davon würde ich gerne die ganze Menge verwalten...

Irgendwelche Optionen?

 
moskitman:

Leute, ein bisschen off topic, aber trotzdem...

Ist es möglich, Computer/Laptops mit 32 und 64 Bit Win7 über LAN zu "befreunden"?
Ich habe drei Laptops und einen Desktop (alle zu Hause) auf zwei Win7-Laptops (64-Bit) und sie werden auf dem 32-Bit Win7 Ultimate-Desktop im Netzwerk überhaupt nicht angezeigt. Und davon würde ich gerne die ganze Menge verwalten...

Irgendwelche Optionen?

In einem Netzwerk spielt es keine Rolle, wie groß der Computer oder das System ist. Irgendetwas stimmt mit den Einstellungen nicht.