Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 212

 
solnce600:

Vielen Dank für Ihre Hilfe, ich werde etwas Sauerstoff holen, und dann werde ich Ihren Rat entschlüsseln.

Vielleicht können Sie mir einen genaueren Rat geben oder ein Fragment meines Codes korrigieren.

Dann wird es sich in meinem Gehirn festsetzen und ich werde nicht die gleichen Fehler machen.

Vielen Dank.



Um irgendetwas zu reparieren, müssen Sie eine ToR schreiben, sind Sie dazu bereit?
 
ALXIMIKS:

Frage: Was ist der letzte abgeschlossene Auftrag in der Auftragshistorie, wenn OrderSelect ausgewählt ist?

1) Null "0";

2) Die letzte "OrderHystoryTotal -1"

3) Zufällig

4) Hängt davon ab, wann die Bestellung eröffnet wurde (was dann eher 1 oder 2 ist?)

Sind Sie absolut sicher, dass die Aufträge in der Liste so angeordnet sind? Was ist, wenn die Geschichte in einem unangenehmen Moment neu gemischt wird und die Aufträge in ihr anders zu verorten beginnen? Am zuverlässigsten ist es, den Extremfall durch die Zeit zu finden, nicht durch eine hypothetische Annahme in Ihrem Kopf...

Es ist eine Sache, ein Spielzeug für einen Tester zu bauen, aber es ist eine andere Sache, in der realen Welt zu funktionieren. Er soll sich daran gewöhnen, alle möglichen Fallstricke zu berücksichtigen, die "plötzlich" auftreten können...

 
ALXIMIKS:

Frage: Was ist der letzte abgeschlossene Auftrag in der Auftragshistorie, wenn OrderSelect ausgewählt ist?


https://www.mql5.com/ru/forum/131859/page4#434227
 
solnce600:

Ich wäre Ihnen sehr dankbar, wenn Sie den Begriff "an den Fingern" in Bezug auf mein Beispiel erklären könnten.

Hier ist meine Logik fehlerhaft. Ich verstehe nicht, worum es dabei geht.

Ich danke Ihnen.



if(Ihre_erste_Bedingung)

{

//Es werden sein

// ausführen

// alle

// diese

// Zeichenketten, nur wenn

// Ihre_erste_ Bedingung ist wahr

}

// diese Zeile wird auf jeden Fall ausgeführt



if(Ihre_zweite_Bedingung)

// diese Zeichenfolge wird nur ausgeführt, wenn Ihre_zweite_Bedingung wahr ist

// diese Zeichenkette wird in jedem Fall ausgeführt, auch wenn your_first_precondition false zurückgibt

// Diese Zeichenkette bleibt auch dann erhalten, wenn your_second_condition false zurückgibt.


 
Vinin:

Um irgendetwas zu reparieren, müssen Sie eine ToR schreiben, sind Sie dazu bereit?
Noch nicht.
 
artmedia70:

Sind Sie absolut sicher, dass die Aufträge auf diese Weise in die Liste eingetragen werden? Was ist, wenn zu einem unangenehmen Zeitpunkt die Karten neu gemischt werden und die Haftbefehle anders angeordnet werden? Am zuverlässigsten ist es, den letzten nach der Zeit zu finden, nicht nach einer hypothetischen Vermutung in Ihrem Kopf...

Es ist eine Sache, ein Spielzeug für einen Tester zu bauen, aber es ist eine ganz andere Sache, in der realen Welt zu funktionieren. Er soll sich daran gewöhnen, alle möglichen Dinge zu berücksichtigen, die "plötzlich" passieren können...


Diese Frage ist nicht ganz richtig ((

Es macht wenig Sinn, vor dem Öffnen jedes Mal alle abgeschlossenen Aufträge durchzugehen.

Was können wir tun? Nun, die Daten des letzten abgeschlossenen Auftrags sollten in einer Datei gespeichert und aktualisiert werden, wenn sich die Gesamtzahl der abgeschlossenen Aufträge ändert. (Dies stellt bereits eine Art von Wirtschaft dar).

Was ist, wenn es 1000 oder 5000 Aufträge in der Historie gibt? Wird die Auftragshistorie jemals bereinigt, oder wird sie immer gelöscht, und wenn ja, von wem?

Ich habe gefragt, welcher Teil von OrderSelect die letzten abgeschlossenen Aufträge enthält, da die Suche mit zunehmender Historie länger dauert,

Ich möchte nur die Suche eingrenzen.

 
digits:

Guten Tag.

Meine Strategie berücksichtigt den Spread, der durch eine Funktion definiert ist:

Da der Spread im Strategietester jedoch konstant ist, benötige ich einen Emulator für zufällige Spreads. Ich möchte die Veränderungen der Spanne im Tester im Bereich von 2 bis 3 Punkten (4 Ziffern) in 80 % der Fälle und mehr als 3 Punkte in 20 % der Fälle emulieren. Vielleicht haben Sie einige Ideen, wie man dies umsetzen kann, oder einige Links, wo diese Idee gelöst wurde.


Wahrscheinlich ist niemand an diesem Thema interessiert, aber um Ihrer Meinung willen werde ich eine Version veröffentlichen, bei der der Spread nur 2 oder 3 Pips beträgt.

double Spread_(){
   int compare = 0;
   int MaRand = 0;
   double sp = 0.0;
   double spread = 0.0;
     if (IsTesting() == TRUE){
         MathSrand(OrderTicket() + TimeLocal() / Bid);
         MaRand = MathRand();
         MaRand = MaRand % 2;
         if(MaRand == compare){
         sp = 2.0;
         }else{
         sp = 3.0;
       }
       spread = sp;
    }else{
       RefreshRates();
       spread = MathRound((Ask - Bid) / Point);
     }
   return(spread);
}  

 
digits:

Wahrscheinlich ist niemand an diesem Thema interessiert, aber um Ihrer Meinung willen werde ich eine Version veröffentlichen, bei der die Spanne nur 2 oder 3 Punkte beträgt.


Du solltest deinen Avatar ändern. Machen Sie etwas Neutrales daraus. Links sind untersagt.
 

Hallo Leute, kann jemand eine klare Antwort geben!!! Tech-Analyse+martin

Ich habe das ganze Netz durchforstet und keine eindeutige Antwort gefunden. Wenn jemand Informationen hat, lassen Sie es mich bitte wissen.

 
artmedia70:

if(Ihre_erste_Bedingung)

{

// wird es sein

// ausführen

// alle

// diese

// Zeichenketten, nur wenn

// Ihre_erste_ Bedingung ist wahr

}

// diese Zeile wird auf jeden Fall ausgeführt



if(Ihre_zweite_Bedingung)

// diese Zeichenfolge wird nur ausgeführt, wenn Ihre_zweite_Bedingung wahr ist

// diese Zeichenkette wird in jedem Fall ausgeführt, auch wenn your_first_precondition false zurückgibt

// diese Zeichenkette wird in jedem Fall ausgeführt, auch wenn your_second_condition false zurückgibt



Wenn ich verstehe, was meine erste und zweite Bedingung sind und welche Zeichenfolge immer ausgeführt wird, bin ich der Lösung dieses Rätsels schon sehr nahe.

DIES IST DIE ERSTE BEDINGUNG

wenn ((ot==0))
&&(Gebot==Preis)
&&(Open[1]-Close[1]>100*Point&&Open[1]-Close[1]<120*Point)
&&(High[1]-Open[1]>40*Point&&High[1]-Open[1]<60*Point)
&&(Close[1]-Low[1]>40*Point&&Close[1]-Low[1]<60*Point))

DIES IST DIE ZWEITE BEDINGUNG

if (isCloseLastPosByStop(Symbol(), OP_BUY, Magic, Lot))

DIES IST EINE ZEICHENKETTE, DIE IMMER AUSGEFÜHRT WIRD

zurück(0);

Oder?