Solo "Caratteristiche utili di KimIV". - pagina 10

 
borilunad:

Non è difficile aumentare di uno!

Cosa vuoi dire?
 

Funzione ModifyOrder()

Ecco l'inizio del codice:

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();

Inizialmente, i parametri formali della funzione appaiono così:

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

Se dovessimo scrivere in modo chiaro e sistematico, sarebbe più facile per comodità assegnare -1 a ciascuno dei parametri formali, cioè sarebbe così:

pp=-1, sl=0 tp=0

La domanda sorge spontanea: perché confondere così tanto il codice confrontando uno dei parametri formali con zero e l'altro con -1? Avremmo anche potuto inserire -73...

 
hoz:

Funzione ModifyOrder()

Ecco l'inizio del codice:

Inizialmente, i parametri formali della funzione appaiono così:

Se dovessimo scrivere in modo chiaro e sistematico, sarebbe più facile per comodità assegnare -1 a ciascuno dei parametri formali, cioè sarebbe così:

La domanda sorge spontanea: perché confondere così tanto il codice confrontando uno dei parametri formali con zero e l'altro con -1? Avremmo anche potuto inserire -73...


Chiedete all'autore in persona, e aggiungete uno per 5 cifre dopo la virgola!
 

Non puoi (non ha senso) modificare un ordine con prezzo aperto == 0, ma dovresti essere in grado di impostare zero stoploss e take, quindi se ti metti in testa di farlo (pensare), tutto va a posto.

ZS. sì, le funzioni sono state scritte quando c'erano le quattro cifre, ma questo non invalida la loro rilevanza.

 
borilunad:

Chiedete all'autore in persona, e aggiungete un uno per 5 cifre dopo la virgola!


Con il numero di cifre dopo il punto decimale è più facile farlo:

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

Non puoi (non ha senso) modificare un ordine con prezzo aperto == 0, ma dovresti essere in grado di impostare zero stoploss e takeout, quindi se ti metti in testa di farlo (pensare), tutto va a posto.

ZS. sì, le funzioni sono state scritte quando c'erano le quattro cifre, ma questo non invalida la loro rilevanza.


Dovresti essere in grado di modificare stoploss e takeprofit a zero, ma stoploss o takeprofit non dovrebbero essere inferiori a 0 e nemmeno il prezzo di apertura, quindi -1 e 0 è solo un parametro formale, e puoi usarlo sotto qualsiasi numero intero, come ho capito.
 
jurist70:

Caro, dove nella linea.


Per tutte le coppie eccetto le coppie di yen, il punto è il cambiamento della quarta cifra delle quotazioni. Per le coppie di yen, è nella seconda cifra. Con l'introduzione della precisione delle citazioni a 0,1 punti, sono apparse le citazioni a 5 e 3 cifre.

 
hoz:

Funzione ModifyOrder()

Ecco l'inizio del codice:

Inizialmente, i parametri formali della funzione appaiono così:

Se dovessimo scrivere in modo chiaro e sistematico, sarebbe più facile per comodità assegnare -1 a ciascuno dei parametri formali, cioè sarebbe così:

La domanda sorge spontanea: perché confondere così tanto il codice confrontando uno dei parametri formali con zero e l'altro con -1? Avremmo anche potuto inserire -73.

pp= -1 è un qualsiasi prezzo di apertura

if (pp<=0) pp=OrderOpenPrice(); questo è un prezzo di apertura specifico

 
pako:

pp= -1 è qualsiasi prezzo aperto

if (pp<=0) pp=OrderOpenPrice(); questo è il prezzo di apertura specificato


Avresti dovuto leggere la domanda prima di rispondere. Ho chiesto perché i parametri formali hanno valori predefiniti diversi. Penso che il punto sia che se chiamiamo la funzione senza dichiarare sl e tp, questi saranno di default a 0. Cioè non cambieranno.

Non riesco a pensare a nessun altro modo per farlo.

 
hoz:


Avresti dovuto leggere la domanda prima di rispondere. Stavo chiedendo perché i parametri formali hanno valori predefiniti diversi. Penso che il punto sia che se chiamiamo la funzione senza dichiarare sl e tp, saranno di default a 0. Cioè non cambieranno.

Non riesco a pensare a nessun altro modo per farlo.


In questo caso == 0, stop e take saranno cancellati. In realtà, non riesco a capire perché tutto questo trambusto? Non si tratta di funzioni standard del linguaggio, ma di wrapper scritti da un programmatore, se non ne siete soddisfatti, allora scrivete i vostri, o cambiateli come meglio credete, e usateli.