[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 361

 

Diubakin:
1. Здраствуйте, подскажите пожалуйста, есть ли возможность доступа к исторической тиковой информации в МТ4, средствами MQL4? То есть что-то вроде "тик-серии"?

2. Ist es möglich, MA auf Basis von Ticks zu programmieren, aber nicht auf Basis von Zeitrahmen (Zeitreihen)? Es tut mir leid, wenn ich mich nicht richtig ausgedrückt habe. Kurz gesagt, ich brauche eine Zeckengeschichte...


1. Lesen Sie Artikel über die Funktionsweise des Strategietesters(führen Sie eine Suche durch).

2. eine solche Möglichkeit besteht - aber hier spielt die Wahl des Unternehmens, in dem man arbeitet, seine Geschäftsbedingungen usw., eine sehr wichtige Rolle. Hierfür benötigen Sie eine Tick-Historie, die Sie dann in MT4 "herunterladen"... Viele weitere Dinge - dies ist keine vollständige Liste von Fragen, die gelöst werden müssen...

Siehe ganz am Ende der Website Code-Basis - ein Expert Advisor (von Composter) - Speichern... - ich erinnere mich nicht an den genauen Namen - wie man die Tick-Historie eines Quote-Anbieter (CA) zu schreiben.

 
Vielen Dank für die Hilfe, wenn ich richtig verstanden habe, dann in MT4 die vollwertige Arbeit mit Ticks ist ein ernstes Problem, das heißt, um in der Lage sein, alle Möglichkeiten (Indikatoren, Experten, Skripte) als auf Zeitrahmen zu verwenden und daher bei der Programmierung auf der Grundlage von Tick-Informationen gibt es viele zusätzliche Aufgaben, die sehr schwierig für einen Anfänger sind. War es für die Entwickler wirklich so schwierig, ein vollständiges Werk mit Zeckeninformationen zu erstellen?
 

Diubakin:
1. Спасибо за помощь, если я правильно понял, то в МТ4 полноценная работа с тиками - это серьёзная проблем, то есть чтоб можно было использовать все возможности(индикаторы, эксперты, скрипты) как на таймфреймовых графиках и соответственно при программировании на основе тиковой информации возникает масса дополнительных задач, которые начинающему решить будет очень сложно.

2. War es für die Entwickler sehr schwierig, eine vollwertige Arbeit mit Zeckeninformationen zu leisten?


1. Es hängt von Ihrer Grundausbildung ab - welche Programmiersprachen Sie beherrschen, Ihre Fähigkeit, Lernmaterial zu lernen, zu verarbeiten und anzuwenden, und viele andere Dinge... Wenn alles in Ordnung ist, der Wunsch und das Bestreben besteht, in diese Richtung zu studieren, dann ist es sicher nicht schwer und möglich, all dieses Vergnügen zu verstehen und in der Praxis anzuwenden. Wenn überhaupt..., dann ist es sehr schwierig, wenn nicht unmöglich, es selbst zu tun, die Möglichkeit, ich meine nicht durch einen Joba...

2. Hier sollten Sie die Entwickler selbst fragen.

 
pension:
Entschuldigung, wie hätte ich den Code schreiben sollen, um die Leerzeichen beizubehalten, aber es ist beängstigend, ihn selbst anzuschauen? Im Entwurf im Texteditor war alles in Ordnung.

Drücken Sie hier im Editor die Tastenkombination Strg+Alt+M - fügen Sie den Code über die Zwischenablage in dieses Fenster ein, drücken Sie dann unten auf "Einfügen" und fahren Sie mit Ihrem Array fort.
 
Liebe Fachleute. Nachfolgend finden Sie einen Ausschnitt aus dem Expert Advisor, der an verschiedenen Stellen und für verschiedene Zwecke wiederholt wird.
Frage. Warum schreiben Expert Advisors den B-Operator (Grundbedingung auf S. 4) nach dem A-Operator? Oder ich verstehe etwas nicht, oder es geht nur um Rückversicherungspräzision,
oder sie sind sich einiger Fallstricke bewusst? Was könnte dann Unerwartetes passieren?
Ich habe noch einen anderen Vorschlag: Es ist ein Element der Strukturierung des Programms, um das Verständnis seiner Logik zu verbessern, aber wenn eine solche Technik häufig verwendet wird, dann

die Leistung des Programms beeinträchtigt wird. Erläutern Sie bitte, was der Zweck des Schreibens von Seite 4 ist.

for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {                                       //стр.1
       OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);                                   //стр.2
       if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber)  continue;  //стр.3 Оп-р А.
       if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)             //стр.4 Оп-р Б.
                   if (OrderType() == OP_BUY || OrderType() == OP_SELL)                //стр.5 Пример нужного оператора
                                                 Profit += OrderProfit();              //стр.6 Пример нужного действия
        }                                                                              //стр.7
 
Vinin:

Das ist schwer zu sagen, wenn man nicht viel über die wirkliche Sache weiß. Aber in erster Näherung kann man mit Sicherheit 50 % sagen. Ich meine eine Wiederholung des Ergebnisses.

Ich verstehe, danke!
 
pension:
Frage. Warum schreiben Experten Operator B (Hauptbedingung Seite 4) nach Operator A?

die continue-Anweisung beendet die aktuelle Iteration der for-Schleife, wenn der aktuelle Instrumentenname nicht gleich ist oder der Magier nicht gleich ist, d.h. unterhalb der continue-Anweisung wird der Code erst bei "unserem Auftrag" ausgeführt, die zweite if-Anweisung prüft die gleichzeitige Ausführung von Bedingungen

Ein bisschen schwerfälliger Code, schauen Sie sich den https://www.mql5.com/ru/forum/131859 Zweig an , dort gibt es eine Menge klug geschriebener Funktionen

 

Es gibt (ich schreibe gerade) einen Indikator, der bei Bedarf Tastendrücke über keybd_event(...) simuliert. Der Indikator muss auf mehreren Charts stehen. Wenn also ein anderes Diagramm, auch ohne Indikator, geöffnet ist, während das Diagramm mit Indikator ausgeblendet ist, wird der Druck an dieses andere, aktive Fenster gesendet und nicht an das geschlossene Fenster mit Indikator. Und wenn Sie den Indikator auf mehreren Charts laufen lassen, wird es...!!!

Die Frage ist, Woher weiß der Indikator das? dass sein Diagramm inaktiv ist, um zumindest dieses Senden zu blockieren, oder sollte es, wenn es sendet, diesen Push an sein eigenes, inaktives Fenster senden?

 
pension:
Liebe Fachleute. Nachfolgend finden Sie einen Ausschnitt aus dem Expert Advisor, der an verschiedenen Stellen und für verschiedene Zwecke wiederholt wird.
Frage. Warum schreiben Expert Advisors den B-Operator (Grundbedingung auf S. 4) nach dem A-Operator? Entweder verstehe ich etwas nicht, oder es handelt sich nur um eine Rückversicherungs-Verfeinerung,
oder sind sie sich etwaiger Fallstricke bewusst? Was könnte dann das Unvorhergesehene sein?
Ich habe noch einen anderen Vorschlag: Es ist ein Element der Strukturierung des Programms, um das Verständnis seiner Logik zu verbessern, aber wenn eine solche Technik oft verwendet wird

die Leistung des Programms beeinträchtigt wird. Erläutern Sie bitte, was der Zweck des Schreibens von Seite 4 ist.



Am besten überprüfen Sie die Funktionsweise dieser Eule selbst mit Seite 4, ohne Seite 4... im Tester, auf der Demo - spielt keine Rolle... Zwei Varianten - lassen Sie sie parallel zur gleichen Zeit am gleichen Instrument arbeiten... Stellen Sie dann die Muster dieser beiden Varianten hier ein. Es scheint einfach eine Überversicherung zu sein... Denn wenn wir die Bedingung A erfüllt haben, können wir sicher zur Zeile №5 - Rückversicherung - übergehen...
 

Ich bin völlig verwirrt über die Optimierung.

Die Aufgabe besteht darin, zu sehen, wie der EA in einem bestimmten Zeitraum funktionieren wird, das Ergebnis ist noch nicht wichtig.

Wir haben ein Anfangssaldo von 10000 $. Ein zu optimierender Parameter. Ich habe die einschränkende Bedingung festgelegt, dass das Mindestguthaben 1000 $ beträgt. Tester sucht und sagt "keine Ergebnisse". Gut. Ich beginne mit dem Testen und sehe, dass der maximale Drawdown 532$ und der Endsaldo 9378$ beträgt. D.h. der Saldo für die Periode ist immer mehr als $1000, aber der Tester zeigt dies während der Optimierung nicht an. Und warum? Eine Suche in den Foren zeigt, dass es dieses Problem nicht gibt, was bedeutet, dass ich die Bedeutung von "Mindestguthaben" nicht richtig verstehe...

Grund der Beschwerde: