[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 417

 

VladimirR:

Pero cuando se produce una salida del ciclo queda un "día extra". Y como resultado se imprimirá la respuesta incorrecta.


En para que usted necesita saber exactamente por qué razón se produjo la salida - día o TwoFarm. Entonces lo harás bien.
 
rustein:

Ayuda a arreglar si las órdenes se abren con SL, y si hay dos órdenes opuestas, para la segunda elimina SL.... pero esto no es necesario

¿Qué quieres?
 

Necesito que rastree todas las órdenes abiertas, pero por alguna razón si hay 2 órdenes abiertas, borra SL en la última inmediatamente después de la apertura...

Y debería descartar todas las órdenes cuando el valor del indicador es mayor que OrderOpenPrice() para la compra y menor para la venta.

 
rustein:

Necesito que rastree todas las órdenes abiertas, pero por alguna razón si hay 2 órdenes abiertas, borra SL en la última inmediatamente después de la apertura...

Y debería descartar todas las órdenes cuando el valor del indicador es mayor que OrderOpenPrice() para la compra y menor para la venta.


te olvidaste de añadir comprobaciones para Up y Dn (por analogía)
Up>0 && Up!=EMPTY_VALUE
 
sergeev:
te olvidaste de añadir comprobaciones para Up y Dn (por analogía)
...Gracias )
 
granit77:
Recorre todos los objetos del gráfico, encuentra un objeto llamado lbl, toma la cadena FXRanger: Risk:Reward=x.xxx, la analiza y convierte x.xxx en doble.
Por favor, explique qué significa "parsing" y si no es difícil, cómo organizar una enumeración de objetos. Puedo pedir, pero aún no he tratado con objetos.
 
DhP:

¿Dónde está el material de origen?
¿Qué he adjuntado? No hay nada más, este archivo se ha insertado en los indicadores y funciona
 
demlin:
¿Qué he pegado? No hay nada más, he pegado este archivo en los indicadores y funciona

No has adjuntado el archivo fuente con extensión mq4, sino un ejecutable compilado con extensión ex4.

 
demlin:
Por favor, explique qué significa "parsing" y, si no es difícil, cómo organizar la enumeración de objetos. Puedo manejar órdenes, pero aún no he tratado con objetos.
Creo que mientras buscamos entre los objetos, debemos encontrar la Etiqueta requerida y colocar su texto en una variable de cadena utilizando la función ObjectDescription().
A continuación, "parseamos" la cadena resultante, es decir, analizamos y extraemos la información que necesitamos. Utilizamos las funciones de cadena StringFind(), StringLen(), StringSubstr()
para encontrar la posición del carácter "=" en la cadena "FXRanger::Risk:Reward=x.ххх" y poner la parte de la cadena que le sigue (х.ххх) en otra variable de cadena. A continuación, utilice la función StrToDouble() para convertir la cadena en el número que busca.

   int obj_total=ObjectsTotal();
   string name;   
   string myname="lbl";
   string mytext;
   
   for(int i=obj_total+1;i>-1;i--){
     name=ObjectName(i);   
     if(StringFind( name,myname,0)>-1){
       mytext=ObjectDescription(name);  
     }
   }
//далее парсим строку mytext
P.S.
Este baile es necesario porque el indicador emite datos en objetos, no en buffers, y no se puede aplicar iCustom. Y si no tienes el código del indicador, no puedes cambiar nada dentro de él.
 

https://www.mql5.com/ru/code/10272

Buenas tardes. Por favor, ayúdenme a entender los topes del indicador adjunto. Como escribir en el código del experto las condiciones en la apertura, en el cambio de color...Gracias.

Razón de la queja: