[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 224

 
ArgentumZ:
Lo he leído, sé lo de las distancias de congelación, etc., pero no entiendo cómo se relaciona un stop loss cero con todas estas restricciones. Si ves un error, dímelo. He leído detenidamente los manuales antes de escribir aquí. No lo haría si no fuera necesario.
Algunas empresas de corretaje le permiten establecer SL y TP cuando usted coloca una orden, algunos no lo hacen. Tienes que probarlo manualmente. Lo mismo se aplica a la congelación y a la distancia mínima de parada (el TP también es una parada).
 
snail09:
Algunos centros de distribución permiten fijar el SL y el TP al hacer un pedido, otros no. Pruébalo con las manos. Lo mismo se aplica a la congelación y a la distancia mínima de parada (el TP también es una parada).
El caso es que no necesito poner con stops en este momento - quiero poner cero TakeProfit y StopLoss. Lo que es interesante, BuyStop se establece, SellStop y SellLimit no se establecen y me da el error anterior.
 
Resuelto el problema de los topes cero. Sin embargo, no entendí cómo: qué comenté, copié, puse 0 explícitos en lugar de variables, etc. De todos modos, en algún momento todo funcionó))) Gracias a todos los que han respondido y dejado comentarios.
 
ArgentumZ:
Resuelto el problema de los topes cero. Sin embargo, no entendí cómo: qué comenté, copié, puse 0 explícitos en lugar de variables, etc. De todos modos, en algún momento todo funcionó))) Gracias a todos los que han respondido y dejado comentarios.
Pregunte a la función MarketInfo antes de sus operaciones, creo que le ayudará. Haz un cebado y mira los códigos de error, las descripciones de los mismos están en el ...
 
ArgentumZ:
¡Los he leído, sé lo de las distancias de congelación y demás, pero no entiendo cómo se relaciona un stop loss cero con todas estas limitaciones! Si ves un error, dímelo. He leído detenidamente los manuales antes de escribir aquí. No los escribiría si no tuviera que hacerlo.

He visto el error en el hecho de que su BUY_STOP y SELL_STOP están ajustados al mismo precio. Si ha puesto el TP y el SL a cero, pero el error 130 permanece, ¡no debe tratarse de ellos!

Sólo BUY_STOP y SELL_LIMIT, o a la inversa (según el caso concreto) BUY_LIMIT y SELL_STOP pueden fijarse al mismo precio. ¡Pero en absoluto BUY_STOP y SELL_STOP! :)))

Pero no has leído muy bien los manuales...

 
Zzumer:

Es decir, ¿el probador contiene un historial incompleto cuando se inicia?

Ahora, por cierto, el experto funciona correctamente.

Es una pena, pero es así. Si necesita más barras para probar el EA, tiene que entrar en los archivos de cotización (perezoso y largo...) o saltarse parte del tiempo de prueba (fácil y sencillo).
 

Una función casera elimina, en el caso de una brecha de nivel, los objetos horizontales TREDLINE. Funciona correctamente pero es muy costoso.

Con un gran número de objetos (más de 5000), suspende completamente la MT. Dos días de carga de la CPU sin ningún resultado.

¿Qué opciones son más óptimas para sustituir la condición?

 if( PrLevel<High[iHighest(NULL,0,MODE_HIGH,shift,1)]) {ObjectDelete(nm);return(0);} }
Archivos adjuntos:
 
Operr:

Una función casera elimina, en el caso de una brecha de nivel, los objetos horizontales TREDLINE. Funciona correctamente pero es muy costoso.

Con un gran número de objetos (más de 5000) suspende completamente la MT. Dos días de carga de la CPU sin resultados.

¿Cómo puede sustituirse la condición de forma más óptima?

Calcular iHighest() al principio del código (al inicio), guardar el índice de la barra en una variable. Al abrir una nueva barra, se incrementa esta variable y se comprueba si la barra anterior no es la nueva "más alta". También no olvide comprobar si la variable > número de barras buscadas, entonces la función iHighest( ) debe iniciarse de nuevo. Este algoritmo funcionará mucho más rápido, pero aún está lejos de ser óptimo. :))

 
MaxZ:

He visto el error en el hecho de que su BUY_STOP y SELL_STOP están fijados en el mismo precio. Si ha puesto el TP y el SL a cero, pero el error 130 permanece, ¡no debe tratarse de ellos!

Sólo BUY_STOP y SELL_LIMIT, o a la inversa (según el caso concreto) BUY_LIMIT y SELL_STOP pueden fijarse al mismo precio. ¡Pero en absoluto BUY_STOP y SELL_STOP! :)))

No has leído muy bien los manuales...

Lo he hecho. Ahora he mirado lo que he puesto en el foro. Pero "leer los manuales" no tiene nada que ver con esto, simplemente copié la lista de parámetros y luego corregí los correctos. Y me olvidé de corregir el precio en Sell Stop. Es buyPrice en ambas órdenes y sellPrice en Sell. Si me lo hubieras dicho de una vez, habría sido muy útil, pero he tardado mucho en encontrar un error por mi falta de atención.
 
ArgentumZ:
Sí, lo sé. Ahora he mirado lo que he puesto en el foro. Pero la "lectura de manuales" no tiene nada que ver con esto: simplemente copié la lista de parámetros y luego corregí los que necesitaba. Y me olvidé de corregir el precio en Sell Stop. Es buyPrice en ambas órdenes y sellPrice en Sell. Si me lo hubieran dicho de una vez, habría sido muy útil, pero he tardado mucho en encontrar un error por mi falta de atención.

Siento no ser telépata... Si hubiera sabido que era un descuido, lo habría señalado enseguida. Pensé que no entendías la teoría.

Sin embargo, su falta de atención fue larga... :D

Razón de la queja: