[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 545

 
artmedia70 schrieb(a) >>
Geschätzte Gurus! >> Bitte beraten Sie in der Wildnis stecken Dummies, wie die Verfolgung von Aufträgen und Ereignisse auf mehrere Währungspaare und mehrere Zeitrahmen gleichzeitig in einem EA zu organisieren. Die Auftragsbuchhaltung in einem großen Programm und die Ereignisverfolgung geben mir keine klaren Antworten auf meine Fragen. Ich habe in den riesigen Weiten dieser wunderbaren Ressource keine Antworten gefunden. Ich habe nie daran gedacht, dass eine einfache Aufgabe (einfach in meinem Herzen) einen Kessel so lange und unwiderruflich zum Stillstand bringen und ihn in die Wand nageln kann, dass er nicht mehr herauskommt... :)
Ich verstehe, dass ich die Überprüfung von Aufträgen in einer Schleife organisieren sollte, aber ich kann nicht herausfinden, wie ich den Überblick über geöffnete Positionen behalte und Aufträge gleichzeitig für verschiedene Währungspaare und verschiedene Zeitrahmen setzen kann. Verdammt, ich stecke schon seit einem Monat in dieser Situation fest. Ich habe einen Expert Advisor aus dem Lehrbuch erstellt, der nur auf einem Paar und einem Zeitrahmen handelt, aber er passt natürlich nicht zu meinem TS und erfüllt nicht die Anforderungen, die ich für die Implementierung eines Handelssystems brauche.
Bereits ein Hilferuf... Hilf mir, es zu verstehen. Wenn nur ein Hinweis, wo ich darüber lesen kann (nur bitte nicht zurück zum Tutorial schicken) und vorzugsweise mit Beispielen (was kann ein Anfänger ohne Beispiele tun - fühlen ist immer besser als schauen...).

Ich wäre jedem dankbar, der in irgendeiner Weise auf einen Hilferuf reagiert.

Überlegen Sie sich einen Code für sich selbst,

die alle Unterschiede zwischen den Aufträgen als int-Variable kodieren und einem Magier zuweisen würde,

Wenn Sie einen Magier befragen, werden Sie genau wissen, welche Reihenfolge Sie haben.

 
Sagen Sie mir, sollte der EA die grafischen Objekte im Tester in einem separaten Fenster zeichnen, nicht im Preisfenster? Aus irgendeinem Grund funktioniert es nicht, wenn bei der Erstellung eines Objekts die Null durch eine Eins ersetzt wird.
 
GVA63 >>:

Можeт вопрос покажeтся странным, но отвeт найти нe могу:

почeму при работe в "автматe", при одном и том-жe SL, ТP рeзультат сдeлок разный ? (разница до 3х пунктов). Буду благодарeн, eсли хотябы ссылку дадитe на соотв.

Vielleicht ein Ausrutscher?

Was verstehen Sie unter "automatischem" Betrieb? Was meinen Sie mit "automatisch"?

 
Necron >>:
Добрый день. Подскажите пожалуйста как сделать панель на графике, на которую можно было бы поместить несколько графических объектов. Притом координаты объектов должны изменяться при перемещении панели в соответствии с координатами панели. Где-то видел в кодебазе пример такой, но не могу найти. Благодарен за помощь
Das war's, Problem gelöst. Beispiel hier -> https://www.mql5.com/ru/code/9403
 

Bei der Methode "Checkpoints" werden die Kurse des nächstkleineren Zeitraums berücksichtigt.

Wenn wir auf 1 Stunde optimieren und die Historie nur für H1 und M5 heruntergeladen wird -> wird M5 verwendet oder ignoriert?

 
Vielen Dank an alle, die meine vorherige Frage beantwortet haben.
Nun eine Frage wie diese:
kann ich die folgende Konstruktion beim Aufruf von MarketInfo verwenden:

______________________________________________________________________

for (int ln=1; ln<=Instr_Count; ln++) // Durchsuchen des Arrays der Schachtinstrumente
{
for (int mode=1; mode<=9; mode++) // Durchlaufen der Modi MarketInfo der Schachtinstrumente,
{ // gleich dem aktuellen Wert ln
Level_old=Mas_Ord_Old[0][ln][mode]; // Wert aus Array Mas_Ord_Old [0][Instrumentensymbol] übernehmen.][MODE=mode]
Level_new=MarketInfo(Instrument[ln] ,mode+10); // Nehmen Sie den gleichen Wert aus dem DC
// Hier Instrument[ln] entsprechend dem Array der Instrumentennamen.
// den Namen durch den Wert von ln zurückgeben, dann
// 10 zum Wert von mode addieren und MODE_XXX waschen)

if (Level_old!=Level_new) // Wenn sich die Daten der Maklerfirma geändert haben
{
Level_old=Level_new; // neuen Wert von Level_new in Level_old speichern,
Mas_Ord_New[0][ln][mode]=Level_new; // in Array Mas_Ord_New speichern
Inform(10,Level_new); // Änderungen an Makler melden
// Diese Funktion sollte auch für informativere Meldungen verbessert werden...
}
} // Wenn sich die Gleichstromdaten in diesem Modus nicht geändert haben, wiederholen Sie
// die Schleife mit dem nächsten Modus. Bis zu Modus=9

} // Wir haben alle MODE für das angegebene Währungspaar überprüft, fahren Sie mit dem nächsten fort

..................

Instrument[ln] ist ein Array vom Typ String mit den Namen der Währungspaare:

Instrument[1] = "EURUSD";
Instrument[2] = "USDCHF";
Instrument[3] = "GBPUSD";
Instrument[4] = "USDJPY";
Instrument[5] = "AUDUSD";
Instrument[6] = "USDCAD";
Instrument[7] = "EURCHF";
Instrument[8] = "EURGBP";
Instrument[9] = "EURJPY";
Instrument[10]= "EURCAD";
Instrument[11]= "EURAUD";
Instrument[12]= "GBPCHF";
Instrument[13]= "GBPJPY";
Instrument[14]= "CHFJPY";
Instrument[15]= "AUDCAD";

__________________________________________________________________________

?????????????????????????????????????????????
Ich danke Ihnen im Voraus... :)

 

Ich habe mich nicht mit der Logik Ihres Zyklus befasst. Aber ein kurzer Blick auf das, was ich Ihnen mit einer roten Linie unterstrichen habe, fiel mir auf. Wenn sich die DC-Daten nicht geändert haben, wiederholen Sie den Vorgang. Was aber, wenn sie es getan haben? Was sollte der Expert Advisor tun, wenn er sich nicht verändert hat? Wo ist der Befehl?

Wenn der Programmierer zu Bett geht, stellt er zwei Gläser neben das Bett. Eine - mit Wasser - für den Fall, dass der Programmierer durstig wird. Die andere ist leer - für den Fall, dass der Programmierer nicht trinken möchte.

Das war nur ein Scherz, aber in der Programmierung muss man oft mit beiden Zweigen des dichotomen Divisionsbaums umgehen.

P.S.

Übrigens, artmedia70, beachten Sie, wie Klammern und Einzüge in Ihrem Code in meinem Screenshot angeordnet sind. Der Code ist auf diese Weise viel besser lesbar. Sie dient nur zu Ihrer Information.

 

Eine Konstruktion wie:

if(A>B)
{
  // какие-то действия
}

ist zwar korrekt, aber weniger praktisch als das Typkonstrukt:

if(A>B){
  // какие-то действия
}

Die öffnende geschweifte Klammer im ersten Fall fügt dem Code eine zusätzliche Zeile hinzu, während im zweiten Fall eine zusätzliche Zeile ausgeschlossen wird. Eine schließende geschweifte Klammer im zweiten Fall zeigt an, auf welchen Befehl sie sich bezieht, da sie sich direkt unter dem ersten Zeichen dieses Befehls befindet. So ist die öffnende Klammer im zweiten Fall genauso leicht zu finden wie im ersten. Aber was ist der Vorteil des zweiten Weges? Das Weglassen unnötiger Zeilen bedeutet, dass mehr Code auf dem Bildschirm zu sehen ist und das Auge mehr Informationen erfasst. Dadurch ist es einfacher, durch den Code zu navigieren, was mehr Komfort beim Programmieren bedeutet.

 
Ich habe eine weitere Frage. Es gibt einen Indikator (im Anhang), der den Eröffnungskurs anzeigt, und es ist möglich, einen Offset relativ zur Eröffnungszeit in Stunden und zusätzlich in Minuten einzustellen. Können Sie mir bitte sagen, wie man den Pegel nur zum Zeitpunkt der Schließung des Tagesbalken gezeichnet wird? Ich bin so verwirrt :(
Dateien:
 
drknn >>:

Конструкция типа:

является правильной, но менее удобна чем конструкция типа:

Musterentwurf.

if(A>B)
{
  // какие-то действия
}

Das ist richtig. Aber ein Konstrukt wie

if(A>B){
  // какие-то действия
}

ist obsolet. Die Zeile in Beispiel (1) ist nicht überflüssig und dient dazu, den Beginn eines logischen Codeblocks eindeutig zu kennzeichnen. Wir leben im 21. Jahrhundert - Platzsparen ist lächerlich.

Wenn es Ihnen passt, machen Sie weiter, aber zwingen Sie andere nicht, es falsch zu schreiben.

ABER! Was ist der Vorteil der zweiten Schreibweise? Das Vermeiden unnötiger Zeilen bedeutet, dass mehr Code in mehr Zeilen passt und mehr Informationen für das Auge sichtbar sind. Das Ergebnis ist eine einfachere Navigation im Code und damit eine komfortablere Programmierung.

Das ist Unsinn.

Grund der Beschwerde: