Errores, fallos, preguntas - página 2350

 

Hola

Me he perdido algo o ahora es posible enviar órdenes bylimit por encima del precio actual y que se ejecuten inmediatamente. ¿Como en un sistema bursátil real?

¿Como limitar el deslizamiento?

 

No puedo entenderlo, así que por favor dame una pista. Hay una adquisición de tiempo

int GetHandle() { return(0); }

bool SelectHandle( int ) { return(true); }
  
int NewHandle = 0;  
int PrevHandle = GetHandle();    

datetime time = SelectHandle(NewHandle) ? TimeCurrent() : 0;  
SelectHandle(PrevHandle);


Cómo escribir una macro que haga lo mismo

time = MACROS(NewHandle, TimeCurrent()); // Макрос


El problema es que PrevHandle no se crea en la macro.

 

Hola a todos.

Terminal build 1960 (igual en beta 1966). Las funciones CopyTicks, CopyTicksRange funcionan correctamente en el indicador, ejecutándose en el terminal, pero en el probador, el mismo indicador en estas funciones muestra el resultado -1 y el error 4014. Desarrolladores, ¿por qué?

 
fxsaber:

Cómo escribir una macro que haga lo mismo

¿Qué tiene de malo una función?
 
Alexey Navoykov:
¿Qué pasa con la función?

Porque en lugar de TimeCurrent, puede ser cualquier función.

 
fxsaber:

El hecho de que en lugar de TimeCurrent, puede ser cualquier función en absoluto.

Pues bien, si sólo se utiliza una variable global.
 
fxsaber:

Cómo escribir una macro que haga lo mismo

El problema es que no se puede crear PrevHandle en la macro.

Creo que el gran problema es que no existe el operador coma, sin él es improbable conseguir dicha macro.

 
Típico síndrome de los genios no reconocidos... Hablar de cosas altas y no ser capaz de resolver el problema más simple...
Piensa en ello... durante una semana
Pista: El hecho de que la solución en MQL ya exista es una pista en sí misma.
 
pavlick_:

En mi opinión, el gran problema es que no existe el operador coma, sin él es poco probable que se consiga dicha macro.

Podrías hacer esto:

int MACROS_helper_int;
#define  MACROS(NEW_HANDLE_, FN_)  (MACROS_helper_int=GetHandle())*0+(SelectHandle(NEW_HANDLE_) ? FN_ : 0);  \
                                  SelectHandle(MACROS_helper_int);

Pero crujiente, no se puede poner en algún lugar en una condición, sólo a través de =.

SZY: y utilizar cuidadosamente en después de si, mientras, etc.

if(true)
   MACROS(...);

Probablemente no usaría uno.

 
A100:
Típico síndrome de los genios no reconocidos... Hablar de cosas altas y no ser capaz de resolver el problema más simple...
Piensa en ello... durante una semana
Una pista: el hecho de que la solución en MQL ya exista es una pista en sí misma.

Pues venga, tú, maestro, sorprende a la plebe con una solución brillante.

Razón de la queja: