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

 
lottamer:

bitte beraten...was zum Teufel...in seiner ursprünglichen Form (ohnePlaySound("alert.wav");) - funktioniert. Aber wenn Sie auf einen Link zusätzlich zu den Ziel-Flagge und einige Aktion (Musik spielen zum Beispiel) ... dann sind die Flaggen Druck 0000 und die Musik wird mit voller Geschwindigkeit gespielt! Bitte sagen Sie mir, wo der Fehler?

if(Stoch_1>Stoch_2) flag1=1 ;  
      {Print (flag1,flag2,flag3,flag4);
      
if(Stoch_1<Stoch_2 && flag1==1) flag2=1;
      {Print (flag1,flag2,flag3,flag4);

if ((Stoch_1>Stoch_2) && flag1==1 && flag2==1) flag3=1; 
      {Print (flag1,flag2,flag3,flag4)

Warum vergleichen Sie so viele Male hintereinander dasselbe?
 

if(Stoch_1>Stoch_2) { flag1=1 ; Print (flag1,flag2,flag3,flag4); }


if(Stoch_1<Stoch_2 && flag1==1) flag2=1 ; Print (flag1,flag2,flag3,flag4); }

if ((Stoch_1>Stoch_2) && flag1==1 && flag2==1) {flag3=1; Print (flag1,flag2,flag3,flag4);PlaySound("alert.wav");}


if(Stoch_1<Stoch_2 && flag1==1 && flag2==1 && flag3==1) flag4=1;
{Drucken (flag1,flag2,flag3,flag4);}
if(Stoch_1>Stoch_2 && flag1==1 && flag2==1 && flag3==1 && flag4==1)
{OrderSend (Symbol( ), OP_SELL, 0.01 ,Bid, 0, 0, 0, NULL, 450, 0, CLR_NONE);
Print ("OUT");}



flag1=0;
flag2=0;
flag3=0;
flag4=0;

Sie wissen, dass Sie lernen werden, und um des Lernens willen schreiben Sie etwas... Zumindest habe ich Ihre Klammern so gesetzt, dass sie meiner Meinung nach eine Rolle spielen.

 
Dimka-novitsek:

Guten Tag! Bitte helfen Sie mir bei der Auftragsänderung, d.h. dem Auftragsauswahlzyklus für seine Kondition. Ich finde zuerst einen Auftrag, der bei TakeProfit ausgelöst wurde, es ist ein spezifischer Auftrag mit einem Tacket-Ticket. Die Schleife scheitert also in etwa einem von zehn Fällen, was durch die Differenz der grünen und blauen Linien im Prüfgerät angezeigt wird. Und Visualisierung - Stop Loss bewegt sich manchmal nicht.

Generell: Hilfe, bitte!

Zustand

if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
1 .Выполняется, если в истории термина нет ордеров, и продолжать цикл в таком случае не имеет смысла.
2. Чтобы найти ордер, сработавший именно по тейкпрофиту надо сравнить значение ТП со значением цены закрытия ордера
3.  Если вам нужен не любой ордер,закрытый по ТП, надо найти последний.
4. Еси в if(nahodka){if (OrderSelect(tucket,SELECT_BY_TICKET)) используется значение tucket, Выбранное в предыдущем цикле, ордер нельзя модифицировать, потому, что он уже закрыт. 
 

1.ausgeführt, wenn keine Aufträge in der Terminal-Historie vorhanden sind und es in diesem Fall nicht sinnvoll ist, den Zyklus fortzusetzen.

Ich danke Ihnen!!! Das ist der Punkt, an dem sich alles abspielt. Ach du meine Güte! Wie konnte er sich überhaupt ab und zu ändern?

2. Um eine Order zu finden, die genau zum Take Profit ausgelöst wurde, sollten wir den TP-Wert mit dem Schlusskurs der Order vergleichen

Ich wähle zunächst eine bestimmte Reihenfolge in der Schleife der Historie aus und scheine sie dann auf diese Weise zu vergleichen.

 
Um den Bestand in einen Kommentar zu übersetzen, müssen Sie, anstatt den Code weiter einzufügen, am Ende der Zeile ;?
 

if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue; In meiner Schleife ist es so - wenn es keine Aufträge in der Terminal-Historie gibt, und es keinen Sinn macht, die Schleife in diesem Fall fortzusetzen, dann continue!

Es ist also so, nicht wahr?

Wow, ein Rätsel!!!

 
Am Ende der Zeichenfolge //comment-alles, was über die beiden Schrägstriche hinausgeht oder was der Compiler nicht liest.
 
Dimka-novitsek:

1.ausgeführt, wenn keine Aufträge in der Terminal-Historie vorhanden sind und es in diesem Fall nicht sinnvoll ist, den Zyklus fortzusetzen.

Ich danke Ihnen!!! Das ist der Punkt, an dem sich alles abspielt. Ach du meine Güte! Wie konnte er sich überhaupt ab und zu ändern?

2. Um eine Order zu finden, die genau zum Take Profit ausgelöst wurde, sollten wir den TP-Wert mit dem Schlusskurs der Order vergleichen

Ich wähle zunächst eine bestimmte Reihenfolge in der Schleife der Historie aus und scheine sie dann auf diese Weise zu vergleichen.


Wenn es sich um eine bestimmte Bestellung handelt, d. h. wenn Sie die Ticketnummer kennen, brauchen Sie keinen Zyklus, sondern wählen einfachOrderSelect(ticket,SELECT_BY_TICKET, MODE_HISTORY)
 
Ich danke Ihnen!!! Ich werde es ausprobieren!
 
Dimka-novitsek:

if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue; In meiner Schleife ist es so - wenn es keine Aufträge in der Begriffshistorie gibt, und es keinen Sinn macht, die Schleife in diesem Fall fortzusetzen, dann continue!

Es ist also so, nicht wahr?

Wow, ein Rätsel!!!


Dannbreak oderreturn.continue; -- der Zyklusfortsetzungsoperator.