[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 128

 
hoz:

Sie können 0(Null) eingeben, denn normalerweise brauchen Sie nicht zu verfallen. Aber Sie haben es wahrscheinlich als Vorsichtsmaßnahme, damit Sie nicht zu diesem Punkt zurückkehren müssen.
In der Standardfunktion ist sie also 0, während in der Präsentation angegeben werden muss, dass die nachfolgenden Parameter (Farbe) funktionieren sollen. Ich verwende die Ablauffrist überhaupt nicht in der Schwebephase, ich lösche nur nach Bedingung.
 

Meine Herren Programmierer,


Bitte helfen Sie mir zu verstehen.

Ich habe diesen Code https://www.mql5.com/ru/code/8811 für den virtuellen Handel als Funktion in meinen Indikator eingefügt.

Es arbeitet in Echtzeit und ermöglicht den virtuellen Handel in beliebiger Komplexität.

Kann ich es als Auslöser für die Historie verwenden, indem ich den Balken gehe, oder muss ich einen neuen Code schreiben?


Mein Dank.

 
abdul1:

Meine Herren Programmierer,

Bitte helfen Sie mir zu verstehen.

Ich habe diesen Code https://www.mql5.com/ru/code/8811 für den virtuellen Handel als Funktion in meinen Indikator eingefügt.

Es arbeitet in Echtzeit und ermöglicht den virtuellen Handel in beliebiger Komplexität.

Kann ich es als Auslöser für die Historie verwenden, indem ich den Balken gehe, oder muss ich einen neuen Code schreiben?

Mein Dank.

Es ist besser, die Codebasis des Autors zu erfragen, von der Sie es heruntergeladen haben.
 

borilunad, haben Sie zum Beispiel, wenn die Funktion hat sowohl B.U. und TPAAL, den Zyklus und die Auswahl der Aufträge, wie ich es verstehe, ist in der Funktion starten und wird auf Ticken ausgelöst?

Ich versuche herauszufinden, wie ich all dies kombinieren kann, und mein Gehirn hat bereits begonnen, mein Gehirn zu überlasten, ich brauche die B.T., um nur zu funktionieren, wenn der Stoppkurs unter der Mindestschwelle liegt, d.h. Eröffnungskurs+ Mindestumsatz. Ich habe diese Variable priceBU. Und dann hat sich die Geschichte weiterentwickelt. Ich versuche es gleich mit einer separaten Funktion zum Üben, das ist für mich leichter zu verstehen. Ich kümmere mich um Ihre, sobald alles funktioniert.

Am Anfang habe ich das geschrieben:

int start()
{
   int g;
   for (g = OrdersTotal() - 1; g >= 0; g--)
   {
       if (!OrderSelect(g,SELECT_BY_POS)) continue;
       if (i_magic != -1) if (OrderMagicNumber() != i_magic) continue;
       if (OrderSymbol() != Symbol()) continue;
       
      if (OrderStopLoss() <= priceBU)
      {
          MovingStopLossToBU();
      }
      {
          ticket = OrderTicket();
          TrailingStop("", -1, -1);
      }
   }

Habe ich es richtig gemacht, oder sollte ich es anders machen? Es scheint alles richtig zu funktionieren, aber irgendwie ist es einfach geschrieben, ohne jegliche Bedingungen...

 
hoz:

borilunad, haben Sie zum Beispiel, wenn die Funktion hat sowohl B.U. und TPAAL, den Zyklus und die Auswahl der Aufträge, wie ich es verstehe, ist in der Funktion starten und wird durch ein Ticken ausgelöst?

Ich versuche herauszufinden, wie ich all dies kombinieren kann, und mein Gehirn hat bereits begonnen, mein Gehirn zu überlasten, ich brauche die B.T., um nur zu funktionieren, wenn der Stoppkurs unter der Mindestschwelle liegt, d.h. Eröffnungskurs + Mindestumsatz. Ich habe diese Variable priceBU. Und dann hat sich die Geschichte weiterentwickelt. Ich versuche es gleich mit einer separaten Funktion zum Üben, das ist für mich leichter zu verstehen. Ich kümmere mich um Ihre, sobald alles funktioniert.

Am Anfang habe ich das geschrieben:

Habe ich es richtig gemacht, oder sollte ich es anders machen? Es scheint alles richtig zu funktionieren, aber irgendwie ist es einfach geschrieben, ohne jegliche Bedingungen...

Genau, die Funktion muss aufgerufen werden, wenn die Bedingungen erfüllt sind, und die Bedingungen müssen dem Markt angemessen sein, die Abstände zum Preis einhalten und immer die notwendige Abweichung von der Spanne und anderen (ich habe vorher) haben, was vor Verletzungen und Fehlern aufgrund spontaner Preisbewegungen schützen wird. Und natürlich das Ticken! Warum also die Funktion bei jedem Tick aufrufen, deshalb sollten die Bedingungen zu Beginn festgelegt werden. Vor allem auf der Real, wird Ihre nicht "scheinbar", aber sicherlich nicht funktionieren, werden wir Fehler eine nach der anderen erhalten. Und ich bezweifle, dass es auch auf der Demo funktionieren wird. Und was sehe ich in der Demo? - Schauen Sie sich mein Trawl an, Sie müssen auch in B/S übersetzen und SL und TP setzen, und das gleiche für Sell tun, und setzen Sie alles in eine Schleife der Aufzählung und Positionsauswahl, und Sie werden einen gut funktionierenden Block aller Änderungen haben, der nur eine Funktion aufruft, und keinen Ärger. ;)
 
hoz:



Nun, ich habe einen Test dafür:

Wenn Haltestelle - neue Haltestelle (in B.U.) nicht Null ist... dann ändern wir... Wenn nicht, ändern wir nichts. Deshalb ist mir auch nicht klar, wie das passiert. Immerhin verstehe ich, dass ich die Gleichstellung von früherer und neuer Haltestelle überprüfen muss, und ich habe es getan.

if (ND(OrderStopLoss()) - ND(priceBU * pt) != 0.0) - wir brauchen es so, if ND(...) - das ist Normalisierung.

 
borilunad:
Genau, die Funktion muss aufgerufen werden, wenn die Bedingungen erfüllt sind, und die Bedingungen müssen dem Markt angemessen sein, den Abstand zum Preis respektieren und immer die notwendige Lücke haben (meine prev), was Verletzungen und Fehler aufgrund spontaner Preisbewegungen verhindert. Und natürlich das Ticken! Warum sollte die Funktion also bei jedem Tick aufgerufen werden, daher sollten die Bedingungen zu Beginn festgelegt werden. Vor allem auf der Real, wird Ihre nicht "scheinbar", aber sicherlich nicht funktionieren, werden wir Fehler eine nach der anderen erhalten. Und ich bezweifle, dass es auch auf der Demo funktionieren wird. Und was sehe ich in der Demo? - Schauen Sie sich mein Trawl an, Sie müssen auch in B/S übersetzen und SL und TP setzen, und das gleiche für Sell tun, und setzen Sie alles in eine Schleife der Aufzählung und Positionsauswahl, und Sie werden einen gut funktionierenden Block aller Änderungen haben, der nur eine Funktion aufruft, und keinen Ärger. ;)


Wow. Es ist, als ob ich wiedergeboren worden wäre. Vorher war es einfacher, und jetzt überlege ich, wie ich es anders machen kann. Ich habe am Anfang eine Schleife gemacht. Jetzt werde ich alles neu schreiben müssen...

Eine seltsame Sache. Sie sagen, dass es nicht funktionieren wird. Aber so viele Experten, wie ich gesehen habe, wird alles durch separate Funktionen aufgerufen und funktioniert... Ich stimme zu, dass es mehr Ressourcen verbraucht, aber... warum es zu einer Häufung von Fehlern kommt, ist mir ein Rätsel.

Das ist mir ein Rätsel, denn ich habe schon so viele Scoops gesehen, und er ist genauso geschrieben wie meiner. Aber ich habe noch nie eine Schleife und eine Auswahl am Anfang gesehen, und dann ist alles daran gekettet... Ich habe noch nie gesehen...

 
hoz:


Wow. Es ist, als wäre ich wiedergeboren worden. Früher war es einfacher, aber jetzt frage ich mich, wie ich überhaupt etwas neu machen soll. Ich habe am Anfang eine Schleife gemacht. Jetzt muss ich alles neu schreiben.

Eine seltsame Sache. Sie sagen, dass es nicht funktionieren wird. Aber so viele Experten, wie ich gesehen habe, wird alles mit separaten Funktionen aufgerufen und funktioniert... Ich stimme zu, dass es mehr Ressourcen verschlingt, aber... warum es zu einer Häufung von Fehlern kommt, ist mir ein Rätsel.

Das ist mir ein Rätsel, denn ich habe schon so viele Scoops gesehen, und er ist genauso geschrieben wie meiner. Ich habe noch nie einen Zyklus und eine Wahl am Anfang gesehen, und dann klammert sich alles an ihn...

Codebase hat viele verschiedene Lösungen und unterschiedliche Niveaus. Ich habe mit Modifikationen begonnen und bin allmählich zu dieser Konstruktion gekommen, die keineswegs neu ist, aber für mich bequem ist. Ich verfüge über eine Vielzahl von Funktionen, die ohne Änderungen möglich sind. Für die Eröffnung eines Auftrags und/oder einer Position gibt es ebenfalls eine Funktion. Stattdessen führe ich vor dem Öffnen eine Vielzahl von Prüfungen durch, auch mit Funktionen außerhalb des Starts. Um eine Position zu schließen, verwende ich viele Bedingungen mit noch mehr Funktionen für verschiedene Prüfungen.

Genau diese Funktion verwende ich für Modifikationen, aber Modifikationen sind anders und erfordern andere Bedingungen, Kontrollen und Schutzmaßnahmen. Ich kann nicht alles in eine Funktion packen, und es macht keinen Sinn. Ich greife darauf zu, wenn alle Bedingungen erfüllt sind und alles berechnet wurde, und ich gebe ihm nur den letzten Schritt. Wenn etwas falsch ist, wird es nicht gesendet, zurückgeschickt, die Daten werden erneut geprüft und erneut versucht, und nur der exakte Preis und die exakten Daten werden an das DC gesendet, das sofort akzeptiert und eingestellt wird. Das Wichtigste ist, die Maklerfirma nicht unnötig zu belästigen.

Noch einmal: Wir empfehlen, nur zwei Zeilen mit Bedingungen auszuprobieren, um einen neuen Wert für SL im Schleppnetz festzulegen, und Sie werden verstehen, dass wir hier sehr gründlich sein müssen. Übrigens wandert dieser von mir entwickelte Block mit leichten Modifikationen von einem TS zum anderen. Alles andere, insbesondere der Abschluss, muss je nach gewähltem TS-Algorithmus neu durchgeführt werden. Und schließlich bestehe ich auf nichts, ich teile nur mit, was ich ausprobiert und getestet habe, und schließe nicht aus, dass Ihnen jemand etwas anbietet, das für Sie akzeptabler ist. Probieren Sie also aus, probieren Sie aus, probieren Sie aus, aber setzen Sie niemals wahllos auf Real, ein halbfertiges Produkt.

Warum erzähle ich Ihnen das? Weil jeder Anfänger hier eine schnelle Lösung finden und "Kohle" machen will. Dies sollte ein Geschenk für eine gut gemachte Arbeit sein. Und wer der Kindheit noch nicht entwachsen ist, keinen Spaß an der Arbeit hat und nur spielen will, dem wird der Markt nicht verzeihen.

Gute Nacht! Und morgen, mit klarem Kopf, wieder an die Arbeit!

 
Valerius:


Es scheint keine Experten zu geben, die diese sehr einfache Frage beantworten können, nur zwei Programmierer, die sich treffen und das war's... Was ist dann der Zweck dieses Forums?

 
Valerius:


Es scheint keine Experten zu geben, die diese sehr einfache Frage beantworten können, nur zwei Programmierer, die sich treffen und das war's... Was ist dann der Zweck dieses Forums?

Ihre Frage wurde bereits hundertmal beantwortet: Wenn Sie zwei Bruchzahlen vergleichen, normalisieren Sie beide vor dem Vergleich.