Errores, fallos, preguntas - página 1521
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Al mismo tiempo, la ayuda de la función IsStopped dice que la operación del programa se termina forzosamente después de 3 segundos si hay un comando para terminar el programa mql.
Y si se sustituye while(true) por while(!IsStopped()), el indicador se completa con éxito cuando se elimina del gráfico.
Todo está claro. Hemos hecho una indulgencia para el borrado normal.
Cuando el terminal se cierre, será duro. No más de 3 segundos.
Y no estoy seguro de que vayamos a escribir esto en la documentación, 1. para no darnos el gusto de escribir indicadores tan imprudentes (¿lo has escrito para comprobarlo?) 2. Así como se afloja, así se aprieta.
Una causa divertida del Error Interno del Compilador (función utilizada en el indicador):
...El remedio es obvio, pero estoy de acuerdo: un fallo muy divertido. :)))
Te escribí un mensaje privado.
Dmitri Custurov:
Здравствуйте. Не получается написать код, который открывал бы позицию через n-количество баров после открытия предыдущей позиции. Пробовал использовать Time[i], iBarShift, iTime. Все безуспешно. В программировании новичок. Поиск ничего не дал.
Aquí está el código:
if ((OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)&&(Signal==1))Timer=Time[0];}
TimerNull=iBarShift(NULL,0,Timer,false);
if ((TimerNull>=n)&&(z==1))
{int send2=OrderSend(Symbol(), OP_SELL, Volume_, Bid, 0, 0, 0, NULL, 2, 0, Red);
z=2;}
También probé de esta manera:
Timer=Time[0];}
TimerNull=Tiempo[0];
if ((TimerNull>=(Timer+2700))&&(z==1)) //como ejemplo aquí puse 2700 segundos en lugar de n, lo que en las pruebas significó 3 velas de 15 minutos) {int send2=OrderSend(Symbol(), OP_SELL, Volume_, Bid, 0, 0, 0, NULL, 2, 0, Red);
z=2;}
Y también así:
Timer=Time[0];}
TimerNull=Tiempo[0];
if ((CurrentTime()>=(Timer+2700))&&(z==1))
{int send2=OrderSend(Symbol(), OP_SELL, Volume_, Bid, 0, 0, 0, NULL, 2, 0, Red); //En este caso cuando quité 2700 la segunda operación se abrió justo después de la primera en la misma barra, tiene sentido. E incluso cuando puse cualquier valor hasta 600 en lugar de 2700, el segundo acuerdo se abrió en la misma barra. Con un valor superior a 600 la segunda operación nunca se abrió. No puedo entender cuál es el problema. Les agradecería mucho su ayuda.
Los parámetros Timer y TimerNull están en formato datetime.
en su ejemplo no hay enumeración de, por ejemplo, posiciones
if ((OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)&&(Signal==1))
por lo que siempre selecciona la posición 0.
Todo tiene sentido. Hizo una indulgencia para el borrado normal.
Cuando cierres el terminal, será difícil. No más de 3 segundos.
Y no estoy seguro de que vayamos a escribir esto en la documentación, 1. para no darnos el gusto de escribir indicadores tan imprudentes (¿lo has escrito para comprobarlo?) 2. Así como se afloja, así se aprieta.
Así que aprieta ya, o arregla la referencia. No complacer no es una conversación seria. Lo que los programadores esperan de usted no es "mimo", sino un software claro y bien documentado.
Por supuesto, este código no tiene otro objetivo que el de la demostración, que tú mismo has pedido. Y es bastante inofensivo, inofensivo para conseguirlo, si se quita el Sueño y se sustituye el Comentario por la Impresión. No hay protección contra el spam de gigabytes de impresión en el registro ni en Quartet ni en Quartet 5.
Aquí está el código:
if ((OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)&&(Signal==1))Timer=Time[0];}
TimerNull=iBarShift(NULL,0,Timer,false);
if ((TimerNull>=n)&&(z==1))
{int send2=OrderSend(Symbol(), OP_SELL, Volume_, Bid, 0, 0, 0, NULL, 2, 0, Red);
z=2;}
También probé de esta manera:
Timer=Time[0];}
TimerNull=Tiempo[0];
if ((TimerNull>=(Timer+2700))&&(z==1)) //como ejemplo aquí puse 2700 segundos en lugar de n, lo que en las pruebas significó 3 velas de 15 minutos) {int send2=OrderSend(Symbol(), OP_SELL, Volume_, Bid, 0, 0, 0, NULL, 2, 0, Red);
z=2;}
Y también así:
Timer=Time[0];}
TimerNull=Tiempo[0];
if ((CurrentTime()>=(Timer+2700))&&(z==1))
{int send2=OrderSend(Symbol(), OP_SELL, Volume_, Bid, 0, 0, 0, NULL, 2, 0, Red); //En este caso cuando quité 2700 la segunda operación se abrió justo después de la primera en la misma barra, tiene sentido. E incluso cuando puse cualquier valor hasta 600 en lugar de 2700, el segundo acuerdo se abrió en la misma barra. Con un valor superior a 600 la segunda operación nunca se abrió. No puedo entender cuál es el problema. Les agradecería mucho su ayuda.
Los parámetros Timer y TimerNull están en formato datetime.
Esta es una de las posibles implementaciones. Este EA debe abrir una orden después del número de barras especificado. Y aprender a insertar correctamente el código EA, el botón SRC en la barra de mensajes.
111
La pregunta es probablemente para los desarrolladores de sitios web o los administradores de servicios Freelance
---
Solía ser: 568 trabajos completados, 75% personal
Se han añadido 13 trabajos (todos personales) y se han convertido en: 581 completados, 75% personales
---
Por lo tanto, la pregunta: descifrar por favor, ¿qué significa el 75%?