Solo "Características útiles de KimIV". - página 10

 
borilunad:

No es difícil aumentar en uno.

¿Qué quieres decir?
 

Función ModifyOrder()

Aquí está el comienzo del código:

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

Inicialmente, los parámetros formales de la función tienen este aspecto:

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

Si escribiéramos de forma clara y sistemática, sería más fácil por comodidad asignar -1 a cada uno de los parámetros formales, es decir, que sería así:

pp=-1, sl=0 tp=0

La pregunta que surge es: ¿por qué confundir tanto el código comparando uno de los parámetros formales con cero y el otro con -1? También podríamos haber introducido -73...

 
hoz:

Función ModifyOrder()

Aquí está el comienzo del código:

Inicialmente, los parámetros formales de la función tienen este aspecto:

Si escribiéramos de forma clara y sistemática, sería más fácil por comodidad asignar -1 a cada uno de los parámetros formales, es decir, que sería así:

La pregunta que surge es: ¿por qué confundir tanto el código comparando uno de los parámetros formales con cero y el otro con -1? También podríamos haber introducido -73...


Pregunte al autor en persona, y añada un uno por cinco dígitos después del punto decimal.
 

No puedes (no tiene sentido) modificar una orden con precio de apertura == 0, pero deberías poder poner el stoploss y el takeout a cero, así que si te lo propones (piensa), todo encaja.

ZS. Sí, las funciones se escribieron cuando aún existían los cuatro dígitos, pero esto no invalida su relevancia.

 
borilunad:

Pregunte al autor en persona, y añada un uno por 5 dígitos después del punto decimal.


Con el número de dígitos después del punto decimal es más fácil hacerlo:

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

No se puede (no tiene sentido) modificar una orden con precio abierto == 0, pero sí se debería poder poner el stoploss y el take a cero, así que si te lo propones (piensa), todo cae en su sitio.

ZS. Sí, las funciones se escribieron cuando existían los cuatro dígitos, pero esto no invalida su relevancia.


Deberías poder modificar el stoploss y el takeprofit a cero, pero el stoploss o el takeprofit no deberían ser menores de 0 y tampoco el precio de apertura, por lo que -1 y 0 es sólo un parámetro formal, y puedes usarlo bajo cualquier entero, según tengo entendido.
 
jurist70:

Querida, donde en la línea.


Para todos los pares, excepto los de yenes, el punto es el cambio en el cuarto dígito de las cotizaciones. En el caso de los pares de yenes, está en el segundo dígito. Con la introducción de la precisión de las cotizaciones a 0,1 puntos, aparecieron cotizaciones de 5 y 3 dígitos.

 
hoz:

Función ModifyOrder()

Aquí está el comienzo del código:

Inicialmente, los parámetros formales de la función tienen este aspecto:

Si escribiéramos de forma clara y sistemática, sería más fácil por comodidad asignar -1 a cada uno de los parámetros formales, es decir, que sería así:

La pregunta que surge es: ¿por qué confundir tanto el código comparando uno de los parámetros formales con cero y el otro con -1? También podríamos haber introducido -73.

pp= -1 es cualquier precio de apertura

if (pp<=0) pp=OrderOpenPrice(); este es un precio de apertura específico

 
pako:

pp= -1 es cualquier precio abierto

if (pp<=0) pp=OrderOpenPrice(); este es el precio de apertura especificado


Deberías haber leído la pregunta antes de responderla. He preguntado por qué los parámetros formales tienen diferentes valores por defecto. Creo que la cuestión es que si llamamos a la función sin declarar sl y tp, se pondrán por defecto a 0. Es decir, no cambiarán.

No se me ocurre otra forma de hacerlo.

 
hoz:


Deberías haber leído la pregunta antes de responderla. Preguntaba por qué los parámetros formales tienen valores por defecto diferentes. Creo que la cuestión es que si llamamos a la función sin declarar sl y tp, se pondrán por defecto a 0. Es decir, no cambiarán.

No se me ocurre otra forma de hacerlo.


En este caso == 0, la parada y la toma se borrarán. En realidad, no puedo entender a qué viene todo este alboroto. No se trata de funciones estándar del lenguaje, sino de wrappers escritos por un programador, si no estás satisfecho con ellos, entonces escribe los tuyos propios, o cámbialos a tu gusto, y úsalos.