Nur "Nützliche Funktionen von KimIV". - Seite 10

 
borilunad:

Es ist nicht schwer, die Zahl um eins zu erhöhen!

Wie meinen Sie das?
 

Funktion ModifyOrder()

Hier ist der Anfang des Codes:

void ModifyOrder(double pp=-1, double sl=0, double tp=0, color cl=CLR_NONE) {
  bool   fm;
  double op, pa, pb, os, ot;
  int    dg=MarketInfo(OrderSymbol(), MODE_DIGITS), er, it;
 
  if (pp<=0) pp=OrderOpenPrice();
  if (sl<0 ) sl=OrderStopLoss();
  if (tp<0 ) tp=OrderTakeProfit();

Zu Beginn sehen die formalen Parameter der Funktion wie folgt aus:

pp=-1, но sl=0 и tp=0

Wenn wir klar und systematisch schreiben würden, wäre es der Einfachheit halber einfacher, jedem der formalen Parameter -1 zuzuordnen, d.h. dass es so aussehen würde:

pp=-1, sl=0 tp=0

Es stellt sich die Frage, warum man den Code so sehr verwirrt, indem man einen der formalen Parameter mit Null und den anderen mit -1 vergleicht. Wir hätten auch -73 eingeben können...

 
hoz:

Funktion ModifyOrder()

Hier ist der Anfang des Codes:

Zu Beginn sehen die formalen Parameter der Funktion wie folgt aus:

Wenn wir klar und systematisch schreiben würden, wäre es der Einfachheit halber einfacher, jedem der formalen Parameter -1 zuzuweisen, d.h. es würde so aussehen:

Es stellt sich die Frage, warum man den Code so sehr verwirrt, indem man einen der formalen Parameter mit Null und den anderen mit -1 vergleicht. Wir hätten auch -73 eingeben können...


Fragen Sie den Autor persönlich, und fügen Sie bei fünf Stellen hinter dem Komma eine Eins hinzu!
 

Sie können einen Auftrag mit einem Eröffnungskurs == 0 nicht ändern (das hat keinen Sinn), aber Sie sollten in der Lage sein, Stoploss und Takeout auf Null zu setzen, wenn Sie sich also etwas einfallen lassen (denken), passt alles.

ZS. Ja, die Funktionen wurden geschrieben, als es die vier Ziffern noch gab, aber das macht ihre Relevanz nicht ungültig.

 
borilunad:

Fragen Sie den Autor persönlich, und fügen Sie eine Eins für 5 Stellen hinter dem Komma hinzu!


Mit der Anzahl der Nachkommastellen ist dies leichter möglich:

if(Digits==3 || Digits==5) pt=10*Point;
 
FAQ:

Sie können einen Auftrag mit einem Eröffnungskurs == 0 nicht ändern (das hat keinen Sinn), aber Sie sollten in der Lage sein, Stoploss und Takeout auf Null zu setzen, wenn Sie sich also etwas einfallen lassen (denken), passt alles.

ZS. Ja, die Funktionen wurden geschrieben, als es die vier Ziffern noch gab, aber das macht ihre Relevanz nicht ungültig.


Sie sollten in der Lage sein, Stoploss und Takeprofit auf Null zu ändern, aber Stoploss oder Takeprofit sollten nicht kleiner als 0 sein, und auch der Eröffnungskurs sollte nicht kleiner sein, also ist -1 und 0 nur ein formaler Parameter, und Sie können ihn unter jeder ganzen Zahl verwenden, wie ich es verstehe.
 
jurist70:

Lieber, wo in der Schlange.


Für alle Paare außer den Yen-Paaren ist der Punkt die Veränderung der 4. Stelle der Notierungen. Bei den Yen-Paaren steht sie in der zweiten Ziffer. Mit der Einführung der Notierungsgenauigkeit auf 0,1 Punkt erschienen 5- und 3-stellige Notierungen.

 
hoz:

Funktion ModifyOrder()

Hier ist der Anfang des Codes:

Zu Beginn sehen die formalen Parameter der Funktion wie folgt aus:

Wenn wir klar und systematisch schreiben würden, wäre es der Einfachheit halber einfacher, jedem der formalen Parameter -1 zuzuordnen, d.h. dass es so aussehen würde:

Es stellt sich die Frage, warum man den Code so sehr verwirrt, indem man einen der formalen Parameter mit Null und den anderen mit -1 vergleicht. Wir hätten auch -73 eingeben können.

pp= -1 ist ein beliebiger Eröffnungspreis

if (pp<=0) pp=OrderOpenPrice(); dies ist ein bestimmter Eröffnungspreis

 
pako:

pp= -1 ist ein beliebiger offener Preis

if (pp<=0) pp=OrderOpenPrice(); dies ist der angegebene Eröffnungspreis


Sie hätten die Frage lesen sollen, bevor Sie sie beantworten. Ich habe gefragt, warum die formalen Parameter unterschiedliche Standardwerte haben. Ich denke, der Punkt ist, dass, wenn wir die Funktion aufrufen, ohne sl und tp zu deklarieren, diese standardmäßig auf 0 gesetzt werden, d.h. sich nicht ändern.

Ich kann mir keinen anderen Weg vorstellen, das zu tun.

 
hoz:


Sie hätten die Frage lesen sollen, bevor Sie sie beantworten. Ich habe gefragt, warum die formalen Parameter unterschiedliche Standardwerte haben. Ich denke, der Punkt ist, dass, wenn wir die Funktion aufrufen, ohne sl und tp zu deklarieren, diese standardmäßig auf 0 gesetzt werden, d.h. sie werden sich nicht ändern.

Ich kann mir keinen anderen Weg vorstellen, das zu tun.


In diesem Fall == 0, werden stop und take gelöscht. Eigentlich verstehe ich nicht, was diese ganze Aufregung soll? Es sind keine Standard-Sprachfunktionen, sondern Wrapper, die von einem Programmierer geschrieben wurden. Wenn Sie damit nicht zufrieden sind, schreiben Sie Ihre eigenen, oder ändern Sie sie nach Ihrem Gutdünken, und verwenden Sie sie.
Grund der Beschwerde: