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

 
evillive:
sich die alte Anzahl der Byes merken und sie mit der aktuellen Anzahl vergleichen, wie sonst?
Das ist genau das, was nicht funktioniert.
 
Leonid123456:
Das ist genau das, was ich nicht tun kann.
ist es nicht möglich, eine ganzzahlige Variable zu erstellen, ihr die Anzahl der Einkäufe zuzuweisen und dann die Einkäufe erneut zu zählen und mit dem Wert dieser Variablen zu vergleichen?
 
evillive:
eine ganzzahlige Variable zu erstellen, ihr die Anzahl der Käufe zuzuweisen und dann noch einmal die Käufe zu zählen und mit dem Wert dieser Variablen zu vergleichen, funktioniert nicht?
Ich danke Ihnen!
 
tuner:

An diesen Werten ist nichts auszusetzen, sie sind alle richtig, aber darum geht es hier nicht.

Das Problem mit dem Freitag ist insbesondere dann nicht relevant, wenn Ihre Ortszeit X Stunden länger ist als die Zeit Ihres Brokers.

Aber stellen Sie sich vor, dass es auf Ihrem lokalen Computer nicht +1, sondern -1 Stunde Unterschied zum Broker gibt.

Und es gibt diese einfache Bedingung:

In diesem Fall:

1. der Broker hat den ersten Tick des Freitags, z.B. den heutigen Tick, der eine Zeit von 2014.11.07 00:00 hat

2. die Anzahl der Sekunden, die vom01.01.1970 00:00 Uhr bis zum fraglichen Tick verstrichen sind, d. h.2014.11.07 00:00 Uhr

3. wir nehmen die Anzahl der Sekunden, die vom 01.01. 1970 00:00 bis zum06.11.2014 21:30 verstrichen sind(es handelt sich um das gestrige Datum, weil wir die Zeit des lokalen PCs nehmen, der zum Zeitpunkt des Tickens nicht Freitag, sondern Donnerstag ist, was der 6. Tag ist, oder um genauer zu sein, 2014.11.06 23:00, die Differenz von 1 Stunde)

Voila, die Anzahl der Sekunden in Punkt 2 ist größer als in Punkt 3.

Wenn die FunktionStringToTime() das Datum vom Server des Brokers übernimmt, würde alles wie geplant funktionieren, der Druck würde am Freitag erst erfolgen, wenn die Uhrzeit21:30 Uhr überschreitet.

Ja... Ich habe das Problem nicht sofort verstanden. Bei mir ist der lokale Speicher immer größer als der des Servers, so dass dieses Problem nicht auftritt. Der einzige Ausweg ist, den Tag zu berücksichtigen und nicht die verkürzte Zeitdarstellung zu verwenden.
 
AlexeyVik:
Ja... Ich habe das Problem nicht auf Anhieb verstanden. Mein lokaler Speicher ist immer größer als der des Servers, und ich bin noch nie auf ein solches Problem gestoßen. Der einzige Ausweg ist, den Tag zu berücksichtigen und keine verkürzte Zeitdarstellung zu verwenden.

Nun, ja, als Option, um die Funktion mit der richtigen Zeit zu füttern, zusammen mit dem Datum aus TimeCurrent() extrahiert, in diesem Fall sollte das Problem nicht zu sein scheinen

Übrigens ist meine Ortszeit immer größer als die Zeit des Brokers, aber trotzdem trat dieses Problem in der oben beschriebenen Weise letzten Freitag zur gleichen Zeit bei zwei verschiedenen Brokern auf (einer Demo, der zweite real). Warum dies geschah, ist immer noch ein Rätsel. Der Code wurde jedoch bereits durch einen anderen ersetzt, so dass dieses Problem nicht mehr auftreten sollte

 
tuner:

Nun, ja, als Option, um die Funktion mit der richtigen Zeit zu füttern, zusammen mit dem Datum aus TimeCurrent() extrahiert, in diesem Fall sollte das Problem nicht zu sein scheinen

Übrigens ist meine Ortszeit immer größer als die Zeit des Brokers, aber trotzdem trat dieses Problem in der oben beschriebenen Weise letzten Freitag zur gleichen Zeit bei zwei verschiedenen Brokern auf (ein Demo, der zweite real). Warum dies geschah, ist immer noch ein Rätsel. Der Code wurde jedoch bereits durch einen anderen ersetzt, so dass dieses Problem nicht mehr auftreten sollte

Ja, es gibt mehrere Varianten. Sie können zum Beispiel Freitagabend die Ortszeit statt der Serverzeit überprüfen. Aber wenn man in diesem Fall die Computerzeit verwechselt, kann man eine Menge Ärger bekommen.
 
evillive:
eine ganzzahlige Variable zu erstellen, ihr die Anzahl der Einkäufe zuzuweisen und dann erneut die Einkäufe zu zählen und mit dem Wert dieser Variablen zu vergleichen, ist nicht möglich?

Können Sie mir ein Beispiel für den Code geben?

Nach dem Vergleich muss die Variable neu geschrieben werden, sonst wird der gleiche Code unendlich oft ausgeführt. (Nehmen wir an, es war 6 und wurde 7, dann muss ich in die Variable schreiben, dass es nach dem Vergleich 7 wurde)

 
Leonid123456:

Können Sie mir ein Beispiel für den Code geben?

Nach dem Vergleich muss die Variable neu geschrieben werden, sonst wird der gleiche Code unendlich oft ausgeführt. (nehmen wir an, es waren 6 und jetzt sind es 7, dann sollten wir in die Variable schreiben, dass es nach dem Vergleich 7 sind).


Machen Sie sich keine Mühe, hier ist die Funktion von Kim, die ich verwende und die in allen Builds funktioniert:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество позиций.                                 |
//+----------------------------------------------------------------------------+
int NumberOfPositions(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), kp=0;
  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) kp++;
  } } } } }
  return(kp);
}
//+----------------------------------------------------------------------------+

Und das ist noch nicht alles:

  int BuyPos = NumberOfPositions(Symbol(),OP_BUY, Magic);
  int SellPos = NumberOfPositions(Symbol(),OP_SELL,Magic);

Alles, was Sie tun müssen, ist, entsprechend Ihren Zielen zu prüfen:

if(BuyPos >= n) 
 
borilunad:

Machen Sie sich keine Mühe, hier ist eine Kim-Funktion, die ich verwende und die in allen Builds funktioniert:

Und das ist noch nicht alles:

Alles, was Sie tun müssen, ist, entsprechend Ihren Zielen zu prüfen:

Herzlichen Dank!
 
borilunad:

Machen Sie sich keine Mühe, hier ist eine Kim-Funktion, die ich verwende und die in allen Builds funktioniert:

Und das ist noch nicht alles:

Alles, was Sie tun müssen, ist, entsprechend Ihren Zielen zu prüfen:

Eingesteckt. Funktioniert ohne Unterbrechung...

Ich konnte das Problem mit der letzten Methode in diesem Artikel lösen https://www.mql5.com/ru/articles/1399