Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 676

 

Artyom Trishkin:

Parece que he trabajado demasiado...

Parece que... ))))))

Cuando se crea un EA siguiendo las instrucciones de la ayuda y los tutoriales de todo tipo, se crea exactamente la plantilla en cuestión. Así lo entendí yo. A continuación, se corrigen algunos lugares de esta plantilla. Personalmente no me gusta que OnDeinit() esté antes de OnTick() y lo muevo al final del código. Tampoco me gustan algunas cosas no esenciales .... En fin, tengo mis propios bichos en la cabeza...

 
Andrey Sokolov:

Es obvio, también me interesa la plantilla en sí

hace unos 5 años, exactamente era una plantilla en la carpeta metaeditora, antes de las reglas para mí, ahora excavado todo en el terminal de la carpeta - no han encontrado, pero debe estar en alguna parte, había un archivo de texto plano

ZS:

encontré mis antiguos terminales, no en la distribución - ya desplegados

antes había plantillas/indicadores/scripts/bibliotecas de expertos, todo estaba en el camino:

....experts\templates

y los archivos se encontraban allí:

Incluir.mqt

Biblioteca.mqt

Expert.mqt

Indicador.mqt

Script.mqt


He intentado copiar la carpeta de plantillas a la carpeta de MT4 instalada... no ha habido suerte (((

Archivos adjuntos:
templates.zip  7 kb
 
Igor Makanu:

hace unos 5 años había una plantilla en la carpeta del meta editor, yo la editaba por mi cuenta, ahora he buscado en la carpeta del terminal y no la he encontrado, pero debe estar en algún sitio, era solo un archivo de texto

ZS:

encontré mis antiguos terminales, no en la distribución - ya desplegados

antes había plantillas/indicadores/scripts/bibliotecas de expertos, todo estaba en el camino:

....experts\templates

y los archivos se encontraban allí:

Incluir.mqt

Biblioteca.mqt

Expert.mqt

Indicador.mqt

Script.mqt


He intentado copiar la carpeta de plantillas a la carpeta de MT4 instalada... no ha habido suerte (((

Hace tiempo que los MC abandonaron esas plantillas.

 
Igor Makanu:

hace unos 5 años había una plantilla en la carpeta del meta editor, yo la editaba por mi cuenta, ahora he buscado en la carpeta del terminal y no la he encontrado, pero debe estar en algún sitio, era un archivo de texto plano

ZS:

encontré mis antiguos terminales, no en la distribución - ya desplegados

antes había plantillas/indicadores/scripts/bibliotecas de expertos, todo estaba en el camino:

....experts\templates

y los archivos se encontraban allí:

Incluir.mqt

Biblioteca.mqt

Expert.mqt

Indicador.mqt

Script.mqt


He intentado copiar la carpeta de plantillas a la carpeta de MT4 instalada... Ay, nada (((

¡Por desgracia, de nuevo "por desgracia, no hay manera" - incluso dentro de MT4!

¡No entiendo lo que está pasando!

¡Igor!

Necesitas "actualizarte".

De lo contrario, ¡no sería algo bueno! ¡¡¡Dicen cosas diferentes de ti en el Foro!!!

 
Igor Makanu:

No importa lo que la gente diga de ti, lo que importa es lo que la gente dice de ti. (С)

Al citar los pensamientos de personas inteligentes (a diferencia de ti mismo) - ¡¡¡deberías hacer una referencia!!!

Según las reglas de las publicaciones debe ser así. Para distinguir a los tontos de los listos.

https://socratify.net/quotes/iuristy-bostona/171580

Aunque Mussolini dijo lo mismo.

Не важно, что о тебе говорят, главное, что о тебе говорят
  • socratify.net
Если хочешь узнать человека, не слушай, что о нём говорят другие, послушай, что он говорит о других. Не важно, что тебе скажут другие о начале твоего пути. Важно, что они скажут после того когда ты добьешься своей цели. Вы знаете, что такое обаяние? Умение почувствовать, как тебе говорят «да», хотя ты ни о чем не спрашивал. Настоящий друг — это...
 
neverness:

¡¡¡Cuando se citan los pensamientos de personas inteligentes (a diferencia de ti), deberías hacer una referencia!!!

Así es como se supone que debe ser según las reglas de la publicación. Para distinguir a los tontos de los listos.

¿Ya nos tuteamos? OK

Has elegido el foro equivocado para descargar tu bilis, como pediste: "Es divertido ver a un hombre que quiere ofenderte. Como un mono lanzando caca. Tú estás detrás del cristal y él tiene todas las patas en el ***" (internet)

 
Igor Makanu:

SELECT_BY_POS es para seleccionar una orden "por cola" en la lista de órdenes, y en su diseño:

Está tratando de seleccionar un pedido que es por cola de pedido # ... y está usando el ticket # aquí y sólo tiene 1 orden y el ticket # 10023444... ¿que? aquí se necesita un número de 1 a 2,3... bueno, cuantos pedidos tiene en el mercado ,... corrigió el número de 0,1,2 ... - La numeración empieza por 0 y llega hastaOrdersTotal()-1...

¡SELECT_BY_TICKET debería funcionar, pero sólo hasta el momento en que se tiene el número de ticket, es decir, la orden que se tiene en el mercado, y por encima se tiene una comprobación del envío de la orden, y si la orden no se envía, el ticket = -1 !

Y en definitiva, su diseño para trabajar con órdenes no es correcto. Si ha decidido estudiar MQL, aquí tiene ejemplos listos para trabajar con órdeneshttps://www.mql5.com/ru/forum/131859

Gracias por la ayuda. El caso es que la orden se abrió. Lo he comprobado. El billete fue asignado. Pero más adelante, al intentar seleccionarla, me aparece un mensaje de -1. A diferencia del ejemplo que has puesto, no estoy seleccionando un símbolo, etc. Tengo 1 orden, con un lote conocido, transacción, sin Stop Loss/Take Profit etc. Es en este diseño (se ha elegido por simplicidad) donde obtengo un error 4051 al utilizar el parámetro SELECT_BY_TICKET. Entiendo que utilizar SELECT_BY_POS en este caso no es correcto. Este fue un experimento para entender mejor cómo funciona el probador de estrategias. Este experimento demostró que el probador de estrategias no asigna los tickets asignados por el servidor cuando no puede contactar con él, sino que simplemente asigna números ordinales. No obstante, queda la duda de por qué se produce el error 4051. Además he probado a poner 0 en OrderSelect en combinación con SELECT_BY_POS como primer parámetro. La respuesta es la misma 4051.
 
ski1973:
Gracias por la ayuda. El caso es que la orden se abrió. Lo he comprobado. Se asignó un billete. Pero además me sale un mensaje de -1 al intentar seleccionarlo. A diferencia del ejemplo que has puesto, no estoy seleccionando un símbolo, etc. Tengo 1 orden, con un lote conocido, transacción, sin Stop Loss/Take Profit etc. Es en este diseño (elegido por simplicidad) donde obtengo un error 4051 al utilizar el parámetro SELECT_BY_TICKET. Entiendo que usar SELECT_BY_POS en este caso no es correcto. Se trata de un experimento para comprender mejor el funcionamiento del probador de estrategias. Este experimento demostró que el probador de estrategias no asigna los tickets asignados por el servidor cuando no puede contactar con él, sino que simplemente asigna números ordinales. Sin embargo, la pregunta sigue siendo por qué se produce el error 4051. Además he probado a poner 0 en OrderSelect en combinación con SELECT_BY_POS como primer parámetro. La respuesta es la misma 4051.

Si no me equivoco, el probador de estrategias genera entradas simplemente por cola de órdenes: 1,2,3...

por desgracia, tiene que buscar el error 4051 usted mismo, reimprimir todas las variables que pasa a OrderSelect

Si ya ha seleccionado una orden cerrada, la hora de cierre de la orden cerrada será >0,

Pero aún así, aconsejaría empezar a estudiar con códigos ya existentes (que funcionan), ¡a mí me resultó más fácil!

 
ski1973:
Gracias por su ayuda. El caso es que la orden se abrió. Lo he comprobado. El billete fue asignado. Pero al intentar seleccionarlo me sale un mensaje de -1. A diferencia del ejemplo que has puesto, no estoy seleccionando un símbolo, etc. Tengo 1 orden, con un lote conocido, transacción, sin Stop Loss/Take Profit etc. Es en este diseño (elegido por simplicidad) donde obtengo un error 4051 al utilizar el parámetro SELECT_BY_TICKET. Entiendo que usar SELECT_BY_POS en este caso no es correcto. Se trata de un experimento para comprender mejor el funcionamiento del probador de estrategias. Este experimento demostró que el probador de estrategias no asigna los tickets asignados por el servidor cuando no puede contactar con él, sino que simplemente asigna números ordinales. No obstante, queda la duda de por qué se produce el error 4051. Además he probado a poner 0 en OrderSelect en combinación con SELECT_BY_POS como primer parámetro. La respuesta es la misma 4051.

Tienes un problema en tu código.

double Lots=0.01;
int slippage=30;


void OnTick()
{
int numer=-10;//На каждом новом тике из за этого присвоения процедура Subr2 будет возвращать ошибку!!!
if(OrdersTotal()==0)numer=Subr1();
if(OrdersTotal()>0)Subr2(numer);
return;
}

int Subr1()
{
int result=-1;
int_result=OrderSend(_symbol,OP_BUY,Lots,slippage,0,0);
if(int_res<0){PrintFormat("OrderSend error = ",GetError());}
return int_result;
}
void Subr2(int order)
{
if(!OrderSelect(order,SELECT_BY_TICKET,MODE_TRADES)){PrintFormat("OrderSelect error %d",GetLastError());return;} else PrintFormat("Ok, OrderTicket = ",OrderTicket());
}
 
hola, ¿alguna información sobre si mql4 será soportado en el futuro, cuando parece que las ventas de mt4 se han detenido?