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

 
Artyom Trishkin Sichtbarkeitskennzeichen für das Volumen in den Zeitrahmen. Ausblenden und Anzeigen erforderlich.

Ich habe ihnen vor einigen Tagen darüber geschrieben. Aber wer hört schon auf gute Ratschläge...?

 

Forum für Handel, automatisierte Handelssysteme und Strategietests

Alle Fragen von Neulingen zu MQL4 und MQL5, Tipps und Diskussionen zu Algorithmen und Codes

Mihail Matkovskij, 2021.12.03 22:27

Sie können ein Objekt aus dem Diagramm ausblenden und es dann wieder einblenden. Oder verwenden Sie CHARTEVENT_OBJECT_CLICK - das ist perfekt!


Ich glaube nicht, dass es nötig ist, sich weiter zu äußern...? :)
 
Mihail Matkovskij #:
Eine kompaktere Version:

Ich bin kein Programmierer und kenne keinen Stil (ich schreibe, was ich kann).

Mihail Matkovskij #:

Aber ich dachte, Sie sagten, dass Ihre Funktion vorgibt, universell zu sein...? Dann haben Sie ein sehr wichtiges Detail vergessen:

const - ich weiß nicht, woran es liegt, aber es funktioniert wunderbar ohne sie.


Mihail Matkovskij #:

Sind Sie zu faul, ein einfaches Skript zu schreiben, um das zu überprüfen? Gut. Ich habe es für dich getan:

Seltsam...

diese Funktion erzeugt false bei "-n".

Ich bin weder Programmierer noch Lehrer. Ich bin hier, um zu fragen und zu antworten (wenn ich es weiß). Ich versuche nicht, meine Muschi zur Schau zu stellen.

Wenn Sie Ihren Wert beweisen wollen, müssen Sie lernen, Fehler zuzugeben oder sie zu korrigieren.

 
Mihail Matkovskij #:

Ich habe ihnen vor einigen Tagen darüber geschrieben. Aber wer hört schon auf einen guten Rat...?

Auch ich habe festgestellt, dass den aktiveren unter ihnen eher zugehört wird. In diesem Fall Makar. Infolgedessen ist das einfachste Problem seit mehreren Tagen nicht mehr gelöst worden.

 
Alexey Viktorov #:

Auch ich habe festgestellt, dass die aktiveren Beiträge häufiger gehört werden. In diesem Fall Makar. Das hat dazu geführt, dass die einfachste Aufgabe mehrere Tage lang nicht gelöst wurde.

Alexej, das Problem ist längst gelöst, der Mann wollte verstehen, warum diese spezielle Option nicht funktioniert.
 
MakarFX #:


const - Ich weiß nicht, woran es liegt, aber es funktioniert auch ohne sie.

const ist es eine Garantie dafür, dass sich der Wert innerhalb der Funktion nicht ändert

Seltsam...

es ist die Funktion, die falsche Ergebnisse liefert

Ich glaube, ich habe jetzt alles geklärt. Was ist los?

Ich bin kein Programmierer und ich bin kein Lehrer. Ich frage und antworte (wenn ich es weiß). Ich versuche nicht, meine Muschi zur Schau zu stellen.

Wenn Sie Ihren Wert unter Beweis stellen wollen, sollten Sie lernen, Ihre Fehler zuzugeben oder sie zu korrigieren.

Ich beantworte auch Fragen. Und ich versuche zu vermitteln, wie ein gut geschriebener Code aussehen sollte. Und du sprichst mit mir über mein Ego? Ich glaube, Sie und Nerd Trader missverstehen mich. Ich habe oben bereits gesagt, dass für mich die Bedeutung der Programmierkenntnisse zählt, nicht meine Bedeutung!

Im Prinzip kann Ihnen niemand etwas beibringen, wenn Sie es nicht wollen. Aber der Code, der für Sie geschrieben wurde, Ihnen aber nicht gefällt, nicht passt oder Sie ihn nicht verstehen, wird wahrscheinlich für andere Forumsmitglieder nützlich sein. Wenn Ihnen der Code also nicht gefällt, verwenden Sie ihn nicht. Verwenden Sie die, die Sie mögen.

 
MakarFX #:
Alexej, das Problem ist längst gelöst, der Mann wollte verstehen, warum diese spezielle Variante nicht funktioniert.

Alles funktioniert einwandfrei, und sie machen sich hier einen Reim darauf, anstatt die richtige Version mit der falschen zu vergleichen. :)

 
законопослушный гражданин #:

eindeutig

Bitte teilen Sie mir mit, ob ich es richtig verstehe, dass die Funktion das Los des letzten abgeschlossenen Auftrags zurückgibt, aber die Abrechnung am Anfang der Liste aller abgeschlossenen Aufträge beginnt

double GetLotSize()
  {
   double Ls=0;
   datetime t=0;
   int i=OrdersHistoryTotal();
   for(int pos=0; pos<i; pos++)
     {
      if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY))
        {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if(t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();}
              }
           }
        }
     }
   return Ls;
  }

und wenn ich es so mache, wird es dann vom Ende der Liste an gezählt?

double GetLotSize()
  {
   double Ls=0;
   datetime t=0;
   int i=OrdersHistoryTotal();
   for(int pos=0; pos>=i; pos--)
     {
      if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY))
        {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if(t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();}
              }
           }
        }
     }
   return Ls;
  }
 
законопослушный гражданин #:

Könnten Sie mir bitte sagen, ob ich es richtig verstehe, dass die Funktion das Los des letzten abgeschlossenen Auftrags zurückgibt, aber die Abrechnung am Anfang der Liste aller abgeschlossenen Aufträge beginnt

Wenn ich es also so mache, wird es vom Ende der Liste an gezählt?

Ja
 
законопослушный гражданин #:

Könnten Sie mir bitte sagen, ob ich es richtig verstehe, dass die Funktion das Los des letzten abgeschlossenen Auftrags zurückgibt, aber die Abrechnung am Anfang der Liste aller abgeschlossenen Aufträge beginnt

Wenn ich es so mache, wird der Countdown vom Ende der Liste aus gestartet?

Die zweite Variante wird nicht funktionieren. Um die Zählung vom Ende der Liste aus vorzunehmen, müssen wir Folgendes tun:

double GetLotSize()
  {
   double Ls=0;
   datetime t=0;
   int total = OrdersHistoryTotal();
   for(int i = total - 1; i >= 0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
        {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if(t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();}
              }
           }
        }
     }
   return Ls;
  }
Grund der Beschwerde: