Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1246

 
Alexey Viktorov:

Womit tippen Sie so viele Codezeilen ein? Hier ist einer meiner letzten EAs, der mit einer Reihe von Wertpapieren auf FORTS arbeitet

So viele Wertpapiere in dieser Liste aufgeführt werden, so viele werden auch gehandelt. Und dieser EA mit Kontrolle von zwei Handelszeitrahmen, mit Trailing und natürlich mit Analyse, nur 326 Zeilen.

Wenn Sie Switch verwenden möchten, müssen Sie nicht in jeder Variante eine Positionseröffnung hinzufügen. Es genügt, den Namen des Symbols, die Art der Handelsoperation und den

Meiner Meinung nach wäre es aber besser, das Ganze in eine benutzerdefinierte Funktion zu packen.

Ich danke Ihnen. Aber es ist nicht so, dass es intolerant ist, es ist nur so, dass es meine erste Version des Schreibens war und meiner Meinung nach vielseitiger ist. Sie könnten alle Arten von Analysemethoden hinzufügen und nicht in jeder Reihenfolge eine Öffnung schreiben, nur weil es nicht notwendig wäre, und sich auf die Analyse und neue Funktionen konzentrieren, anstatt das Gleiche zu schreiben. Ich weiß nicht, wie ich es in 300+ Zeilen gepackt habe, ich bin in dieser Sprache nicht so fortgeschritten. Am Ende habe ich alles in jede Funktion geschrieben und bin auf 1050 Zeilen gekommen, ohne alles andere zu berücksichtigen, wie z. B. Losberechnung, Nachlauf usw. Der Expert Advisor kann unter Berücksichtigung der Eröffnungsbedingungen nur 7 Paare gleichzeitig eröffnen, und das ist im Prinzip alles. Dann will ich eine neue Funktion schreiben und muss das Öffnen von Aufträgen wieder und wieder vorschreiben, anstatt sie einmal zu schreiben und zu benutzen. Der Trailing-Stop funktioniert immer und verändert alle offenen Aufträge, aber er wird nur einmal geschrieben, warum also nicht eine Funktion für offene Aufträge schreiben und sie für jede Art von Analyse verwenden. Das ist für mich noch nicht klar.
 
Denis Diakonov:
Ich danke Ihnen. Aber es ist nicht so intolerant, es ist nur so, dass dies meine erste Variante des Schreibens war und meiner Meinung nach universeller ist. Wir könnten alle Arten von Analysemethoden hinzufügen und nicht für jede eine Auftragseröffnung schreiben, weil es nicht nötig wäre, und uns auf die Analyse und neue Funktionen konzentrieren, anstatt immer das Gleiche zu schreiben. Ich weiß nicht, wie ich es in 300+ Zeilen gepackt habe, ich bin in dieser Sprache nicht so fortgeschritten. Am Ende habe ich alles in jede Funktion geschrieben und bin auf 1050 Zeilen gekommen, ohne alles andere zu berücksichtigen, wie z. B. Losberechnung, Nachlauf usw. Der Expert Advisor kann unter Berücksichtigung der Eröffnungsbedingungen nur 7 Paare gleichzeitig eröffnen, und das ist im Prinzip alles. Dann will ich eine neue Funktion schreiben und muss das Öffnen von Aufträgen wieder und wieder vorschreiben, anstatt sie einmal zu schreiben und zu benutzen. Der Trailing-Stop funktioniert ständig und ändert alle offenen Aufträge, aber er wird nur einmal geschrieben. Warum also nicht eine Funktion für offene Aufträge schreiben und sie für jede Art von Analyse verwenden? Das ist für mich noch nicht klar.

Wenn Sie mehr als ein Symbol im Einsatz haben, ist es am effektivsten, mit einer benutzerdefinierten Funktion zu arbeiten. In meiner Variante analysiert die Funktion für jedes Symbol die Eröffnung aus dem Array, und wenn die Analysefunktion den Wert "true" zurückgibt, ruft sie die Funktion zur Eröffnung eines Auftrags auf. Eine Funktion analysiert die Situation für alle Symbole nacheinander und eröffnet Aufträge für das Symbol mit einem Signal. Es spielt keine Rolle, wie viele Symbole sich in dem Feld befinden. Wir haben ein Signal erhalten, einen Auftrag eröffnet, sind zum Array der Symbole zurückgekehrt und prüfen das nächste. Und so weiter...

 
Alexey Viktorov:

Wenn Sie mehr als ein Symbol im Einsatz haben, ist es am effektivsten, mit einer benutzerdefinierten Funktion zu arbeiten. In meiner Variante analysiert die Funktion für jedes Symbol die Eröffnung aus dem Array, und wenn die Analysefunktion den Wert "true" zurückgibt, ruft sie die Funktion zur Eröffnung eines Auftrags auf. Eine Funktion analysiert die Situation für alle Symbole nacheinander und eröffnet Aufträge für das Symbol mit einem Signal. Es spielt keine Rolle, wie viele Symbole sich in dem Feld befinden. Wir haben ein Signal erhalten, einen Auftrag eröffnet, sind zum Array der Symbole zurückgekehrt und prüfen das nächste. Und so weiter...

Dies ist eine gute Option.
Auf diese Weise wird es noch bequemer und der Code ist kompakter, außerdem wird die Möglichkeit, die Funktion der Auftragseröffnung aufzurufen, für jede Art der Marktanalyse hinzugefügt. Das Ziel war es, einen Weg zu finden, um nicht ständig den gleichen Code zu schreiben, und deshalb ist Ihr Vorschlag beachtenswert! Ich danke Ihnen!
 
Denis Diakonov:
Das ist ein guter Witz.
Auf diese Weise wird es noch bequemer und der Code wird kompakter, außerdem wird die Möglichkeit eröffnet, die Ordereröffnungsfunktion für jede zusätzliche Art der Marktanalyse aufzurufen. Das Ziel war es, einen Weg zu finden, um zu vermeiden, ständig den gleichen Code zu schreiben, und deshalb ist Ihr Vorschlag beachtenswert! Ich danke Ihnen!

Alexey erzählt dir Standardkram...

 
Artyom Trishkin:

Alexej erzählt Ihnen das übliche Zeug...

Standard ist, dass es für jeden Tag einen eigenen Code gibt. )))))

 
Artyom Trishkin:

Alexej erzählt Ihnen das übliche Zeug...

Nun, ich bin jetzt in der dritten Woche mit dieser Sprache.

Seit 2008, aber ich versuche erst jetzt, etwas zu schreiben.

 

Hallo @Artyom Trishkin ,

Ich habe Schwierigkeiten, die Logik zu verstehen. Bitte helfen Sie mir dabei? Hier ist ein Link zu meinem Thema: https://www.mql5.com/ru/forum/350570

Ich hoffe, später von Ihnen zu hören.

 

Berechnung des Medianpreises in einem bestimmten Intervall mit einer bestimmten Anzahl von Näherungen.

Hallo Es gibt eine Reihe von Werten.

Die Aufgabe besteht darin, eine Funktion zu schreiben.

Eingabeparameter:

- das Array enthält die Anzahl der erforderlichen Elemente zur Berechnung des Medians - bufInBar[]

- Array-Größe -bufInBar[] - Anzahl

- Anzahl der Median-Annäherungen - fokus

void medianaL0(const int &bufInBar[], int count, int fokus)

Das heißt, es gibt eine Klasse

bufInBar[i] - используется для загрузки нужного элемента при расчете медианы 

BP[bufInBar[i]].CenaPerioda; - по этому значению рассчитывается медиана
BP[bufInBar[i]].Period; 

Am Ausgang :

BP[bufInBar[i]].Mediana; 

Wird in aufsteigender Reihenfolge ausgefüllt, z. B. von 0 bis 10.

Das heißt, wennfokus=10 in der Bedingung, dann in dem Intervall i<count, zehn Werte

BP[bufInBar[i]].Mediana;

wird 1 bis 10 sein.

Zum Beispiel

BP[3256].Mediana=0;
BP[6256].Mediana=1;
BP[9256].Mediana=2;
...

Bereit, 12 $ vom Konto zu überweisen

 
Mikhail Toptunov:

Berechnung des Medianpreises in einem bestimmten Intervall mit einer bestimmten Anzahl von Näherungen.


Bereit zur Überweisung vom Konto $12

Sie wissen, dass für etwas wie dieseshttps://www.mql5.com/ru/job

und hier - wenn Sie angefangen haben, es selbst zu machen, es aber nicht geklappt hat oder nicht klar ist

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • www.mql5.com
Доработать существующий советник, чтобы он осуществлял выходы из сделок по виртуальному тейк-профиту на основе слежения за мультитаймфрейменным боллинжер бендз. Советник должен следовать за линиями боллинжера и выходить по указанному алгоритму Здравствуйте, нужно создать Программу для сравнения данных и отображения их. Данные надо будет брать с...