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

 
trader781:

Ich verstehe nicht, wo es hingehört und warum es nicht (-1)

es gibt einen Eingabeparameter bool

void OnTick

{Analyse der Auftragseröffnung, Trailing Stop}

Trailing Stop aufheben

{entspricht den engen Bedingungen

wenn ja, decken wir alles ab

}

In der Tat, zurück; Es ist eine Leere

Ich weiß nicht, welche Logik Sie da haben. Wie soll ich denn erraten, was Sie da haben?
 
trader781:

um drei Punkte

1 externer Punkt, an dem wir festlegen, ob wir den zweiten oder mehrere Aufträge öffnen wollen

2) eine Bedingung, bei der wir den ersten Auftrag öffnen müssen

3) Bestellpunkt schließen

Ich kann Ihnen den Code schicken, aber er ist für alle gleich

Warum also verschmutzen Sie das Thema, wenn Sie keine Hilfe brauchen?

Sie werden keine nützlichen Nachrichten auf tausend nutzlosen Seiten finden

P.S. Oder ist es Ihr Ziel, Ihre Beiträge bis zum Anschlag zu füllen?
 
trader781:
Dann bitte ich um ein Diagramm des Schalters an diesen drei Punkten. Dann werde ich meine Beiträge löschen, wenn Sie sie für Unsinn halten.

Was ist dieser Punkt?

1 externer Punkt, an dem wir festlegen, ob wir den zweiten oder mehrere Aufträge öffnen wollen

2) eine Bedingung, bei der wir den ersten Auftrag öffnen müssen

3) Abschluss des Tagesordnungspunktes

Wissen Sie überhaupt, was Sie wollen?

Unter Punkt 2 kann ein Auftrag nicht eingestellt, nicht geschlossen und nur gelöscht werden. Im Allgemeinen ist alles, was Sie haben, irgendwie logisch inkohärent und vage, Sie müssen ein Stellvertreter sein.

 

Es gibt diesen Teil des Codes:

if(ObjectFind(0,nm)<0) {
    ObjectCreate(0,nm,OBJ_TEXT,0,0,0);
    ObjectSetString(0,nm,OBJPROP_PRICE, TIME(0)+Period()*60*3); // сдвиг вправо на 3 свечи
}

Frage:Periode() liefert einen gesunden Wert bis M30, ab H1 eine Menge von Ziffern, und die Markierung kann nicht mehr auf diese Weise verschoben werden.

Wie kann man nach N-Kerzenleuchtern unabhängig von der Periode verschieben? Ich muss doch nicht eine eigene Funktion schreiben, oder?

 
Vitaly Muzichenko:

Es gibt diesen Teil des Codes:

if(ObjectFind(0,nm)<0) {
    ObjectCreate(0,nm,OBJ_TEXT,0,0,0);
    ObjectSetString(0,nm,OBJPROP_PRICE, TIME(0)+Period()*60*3); // сдвиг вправо на 3 свечи
}

Frage:Periode() liefert einen gesunden Wert bis M30, ab H1 eine Menge von Ziffern, und die Markierung kann nicht mehr auf diese Weise verschoben werden.

Wie kann man nach N-Kerzenleuchtern unabhängig von der Periode verschieben? Ich muss doch nicht eine eigene Funktion schreiben, oder?

PeriodSeconds(PERIOD_CURRENT)*3
 
Artyom Trishkin:
PeriodSeconds(PERIOD_CURRENT)*3

Ich danke Ihnen!

Die Frage ist: Wie korrekt ist dieser Eintrag, der am Anfang des Programms steht, während im gesamten Programm viele Time[0] und Time[1] verwendet werden, die nicht jedes Mal aufgerufen werden müssen, sondern in eine Variable geschrieben werden. Es scheint keine Fehler außerhalb des Arrays zu geben, aber alles ist oberflächlich definiert:

datetime TM[], TIME0, TIME1;

//------------
void OnTimer()

ArraySetAsSeries(TM, true);
  if(CopyTime(_Symbol, PERIOD_CURRENT, 0, 2, TM)==-1) return;
   TIME0 = TM[0];
   TIME1 = TM[1];

Danke!

 
Vitaly Muzichenko:

Was ist dieser Punkt?

1 externer Punkt, an dem wir festlegen, ob wir den zweiten oder mehrere Aufträge öffnen wollen

2) eine Bedingung, bei der wir den ersten Auftrag öffnen müssen

3) Abschluss des Tagesordnungspunktes

Wissen Sie überhaupt, was Sie wollen?

Unter Punkt 2 kann ein Auftrag nicht eingestellt, nicht geschlossen und nur gelöscht werden. Im Allgemeinen sind Sie immer irgendwie logisch inkohärent und vage, Sie müssen ein Abgeordneter sein.

bitte. Hier ist der externe bool-Parameter OpenOrders=false;//+---open order

Ich brauche es, um Aufträge zu öffnen, sie zu schließen und dann einfach auf dem Diagramm zu bleiben, ohne Ressourcen zu verbrauchen.

im Moment ist es selbst gesägt (es funktioniert, ist aber für ein Plattenelement inakzeptabel)

Dateien:
 
trader781:

bitte. Hier ist der externe bool-Parameter OpenOrders=false;//+---open order

Ich brauche es, um eine Order zu öffnen, sie zu schließen und dann einfach auf dem Chart zu bleiben, ohne Ressourcen zu verbrauchen.

im Moment ist es selbst gesägt (es funktioniert, ist aber für ein Plattenelement inakzeptabel)

Ich hätte das getan. Hinzufügen von "Deaktiviert" zum Code

P.S. Ersetzen Sie Zeile 72 durch "if(! Disabled) return;". Ich denke, die Logik der Flagge ist klar.
Dateien:
 
Vitaly Muzichenko:

Ich würde wie folgt vorgehen. Fügen Sie "Deaktiviert" in den Code ein.

P.S. Ersetzen Sie Zeile 72 durch "if(! Disabled) return;". Ich denke, die Logik der Flagge ist klar.

Nein, das ist nicht klar. Wir kehren dorthin zurück, woher wir gekommen sind.

1) Deaktiviert=true

initialisieren auf true inite

Übergabe an Ontik if(!Disabled) return;

öffnen schließen

Disabled=false; exit. Alles ist in Ordnung.

2) Deaktiviert=false

ontik auf true initialisieren

Übergabe an ontic if(!Disabled) return;

öffnen schließen

Disabled=false; exit. Wo kann ich die nächste Bestellung aufgeben? Einige Varianten sollten dies ermöglichen.

Verstehen Sie jetzt, warum ich Sie gebeten habe, die Logik zu beschreiben?

Ich habe auch eine Option für 2 EAs.

 
trader781:

Nein, das verstehe ich nicht. Zurück dorthin, wo wir herkommen.

1) Deaktiviert=true

im inite auf true initialisieren

Übergabe an Ontik if(!Disabled) return;

öffnen schließen

Disabled=false; exit. Alles ist in Ordnung.

2) Deaktiviert=false

ontik auf true initialisieren

Übergabe an ontic if(!Disabled) return;

öffnen schließen

Disabled=false; exit. Wo kann ich die nächste Bestellung aufgeben? Einige Varianten sollten dies ermöglichen.

Verstehen Sie jetzt, warum ich Sie gebeten habe, die Logik zu beschreiben?

Ich habe auch eine Option für 2 EAs.

Das ist nicht klar. Wenn Sie den EA stoppen müssen, wird die vorgeschlagene Variante damit fertig, wenn es nicht notwendig ist, ihn zu stoppen, dann lassen Sie ihn handeln und schränken Sie ihn nicht in irgendeiner Weise ein. Wenn Sie nach dem Stopp auf Abruf handeln wollen, genügt es, die Zeit zu ändern, Disabled wird wahr und das Programm arbeitet weiter
Grund der Beschwerde: