Tutorial de codificación - Página 3
Tutorial de codificación

 

Publi

Página 3 de 355 PrimerPrimer 12345 ??ltimo??ltimo
Resultados 21 al 30 de 41

Tema: Tutorial de codificación

  1. #21
    initialize = esto se llama una vez que se inicia el EA. Aquí es normalmente donde colocaría el código que se necesita para ”iniciar” el EA. Establecer variables globales, por ejemplo. deinitalize = Esto es básicamente lo opuesto a init y se llama solo una vez al final de la ejecución del EA justo antes de que se descargue. Aquí es donde normalmente colocaría el código de limpieza. Quitar objetos, por ejemplo. start = Esta es la rutina principal en el EA y se llama repetidamente en cada marca del gráfico. Aquí es donde colocaría la mayor parte de su codificación con llamadas a las diversas subrutinas y funciones que podría escribir. Espero que ayude. LUx

  2.                         
    Publicidad
  3. #22

    Cita Iniciado por ;
    No dude en hacer cualquier pregunta
    Muchas gracias por abrir este hilo tomhliles. Estoy seguro de que este hilo nos ayuda a muchos de nosotros que tratamos de aprender a codificar MQL. Pero todavía estoy confundido con la función, ¿por qué usar void? Código insertado órdenes nulas () { compras = 0; vende=0; for(int i=OrdersTotal();igt;=0;i--) { OrderSelect(i, SELECT_BY_POS); if ( OrderType() == OP_BUY) {compras=compras 1;} if ( OrderType() == OP_SELL ){sells=sells 1;} } } ¿Por qué no int? Código insertado int orders() { buys=0; vende=0; for(int i=OrdersTotal();igt;=0;i--) { OrderSelect(i, SELECT_BY_POS); if ( OrderType() == OP_BUY) {buys=buys 1;} if ( OrderType() == OP_SELL ){sells=sells 1;} } } Editor de MQL Ayuda indicada Una función que no devuelve valores debe ser nula type La función orders() debe devolver los valores totales del pedido a la función start(), pero ¿por qué usar void que no devuelve ningún valor? Solo soy un codificador principiante y me confundo con esto, por favor, aconséjeme.

  4. #23
    No tengo una pregunta tomhliles, solo quiero felicitarlos por hacer este tutorial. También soy programador autodidacta. Ojalá cuando empecé me hubiera topado con un hilo como el que estás creando. Usted está brindando un servicio muy útil aquí para muchas personas. Gracias por ser un gran contribuyente a la comunidad. -

  5. #24
    eso es normal
    Cita Iniciado por ;
    Tom, soy nuevo programando en este lenguaje. Modifiqué un EA y cuando intento compilarlo hay un mensaje en la pestaña de errores que dice Compilando 'tp 100 40 D1[1].5_ca.mq4'... Ha estado en este estado durante horas, aunque a continuación dice 0 error(es), 0 advertencia(s). Quisiera saber si esto es normal... Gracias de antemano Carlos
    Cita Iniciado por ;
    Tom, soy nuevo programando en este lenguaje. Modifiqué un EA y cuando intento compilarlo hay un mensaje en la pestaña de errores que dice Compilando 'tp 100 40 D1[1].5_ca.mq4'... Ha estado en este estado durante horas, aunque a continuación dice 0 error(es), 0 advertencia(s). Quisiera saber si esto es normal... Gracias de antemano Carlos

  6. #25
    Tom, soy nuevo programando en este lenguaje. Modifiqué un EA y cuando intento compilarlo hay un mensaje en la pestaña de errores que dice Compilando 'tp 100 40 D1[1].5_ca.mq4'... Ha estado en este estado durante horas, aunque a continuación dice 0 error(es), 0 advertencia(s). Quisiera saber si esto es normal... Gracias de antemano Carlos

  7. #26
    1 Adjunto(s) Encontré algunos errores tontos que puede comparar con los suyos, hay un error tanto en el for como en la variable global eliminar justo debajo de orders(); en la función de inicio se corrigió en esta versión
    https://www.forosforex.com/attachmen...1357492230.mq4

  8. #27
    este ea ahora se puede usar para comerciar o probar el comercio manual en el probador, siéntase libre de hacer cualquier pregunta

  9. #28
    3 Adjunto(s) ahora necesitamos un script de venta también necesitamos un script de cierre es ilimitado los scripts que podemos hacer, desde órdenes pendientes, hasta usar un sl para calcular el tamaño del lote incluso podemos construir relaciones de riesgo a recompensa agreguemos un cierre mientras estaba haciendo la función de cierre, noté un error en mi ciclo for. Hice que antes viera el gt;= for(int i=OrdersTotal();igt;=0;i--) debería ser esto for(int i =OrdersTotal();igt;0;i--) ahora de vuelta al cierre en el inicio después de que las otras funciones agreguen esto if (GlobalVariableCheck(close))close_all(); ahora por encima de eso, después de orders() agregue esto if (GlobalVariableCheck(close)(buys sellsgt;0))GlobalVariableDel(close); aquí está la función de cierre Código insertado void close_all() { for(int i=OrdersTotal();igt;0;i--) { OrderSelect(i, SELECT_BY_POS); if ( OrderSymbol()==Symbol()) { if ( OrderType() == OP_SELL ) {OrderClose( OrderTicket(), OrderLots(), Ask, 0, Red );} if ( OrderType() == OP_BUY ) { OrderClose( OrderTicket(), OrderLots(), Bid, 0, Blue );} } } }
    https://www.forosforex.com/attachmen...9513512585.mq4
    https://www.forosforex.com/attachmen...1788211086.mq4
    https://www.forosforex.com/attachmen...3840008725.mq4

  10. #29
    2 Adjunto(s) ahora vamos a editar algunas cosas, para empezar, hagamos que el tamaño del lote se muestre en las propiedades ea en la parte superior, ponga este lote doble externo = 0.01; ahora en la función de envío de pedidos, reemplace 0.01 con lotes como este Código insertado if (signal==buy)OrderSend(Symbol(),OP_BUY,lots,Ask,3, NULL,NULL,NULL,NULL,0,CLR_NONE); if (signal==sell)OrderSend(Symbol(),OP_SELL,lots,Bid, 3,NULL,NULL,NULL,NULL,0,CLR_NONE); si desea ver flechas comerciales dibujadas en el gráfico, reemplace CLR_NONE con un nombre de color como este Código insertado if (signal==buy)OrderSend(Symbol(),OP_BUY,lots,Ask,3, NULL,NULL,NULL, NULO,0,Azul); if (signal==sell)OrderSend(Symbol(),OP_SELL,lots,Bid, 3,NULL,NULL,NULL,NULL,0,Red); no íbamos a poner un stop loss, o un beneficio de teke, la razón es que los corredores ecn no son compatibles con los que puede editar el sl, tp después de abrir la orden, estoy ansioso por probar este ea, así que creemos una función, para que una secuencia de comandos pueda decirle al ea que intercambie desde el principio, agregue esto justo debajo de orders(); señal_verificar(); aquí está la nueva función que hice Inserted Code void check_signal() { if (GlobalVariableCheck(buy))signal=buy; if (GlobalVariableCheck(vender))signal=vender; } ahora debemos editar la función trade(). Esto es lo que hice Inserted Code void trade() { int total_orders=buys sells; if (signal==buy)OrderSend(Symbol(),OP_BUY,lots,Ask,3, NULL,NULL,NULL,NULL,0,Blue); if (signal==sell)OrderSend(Symbol(),OP_SELL,lots,Bid, 3,NULL,NULL,NULL,NULL,0,Red); pedidos(); if ((compra venta)!=total_pedidos) { señal=ninguno; GlobalVariableDel(comprar); GlobalVariableDel(vender); } } ahora, todo lo que tenemos que hacer para que este ea abra una operación es crear una variable global con cualquier valor, siempre que el nombre coincida en el editor, en el menú de archivo, haga clic en nuevo, cree un script con el nombre mío, tutorial_buy_script en la función de inicio de ese script, ponga este GlobalVariableSet(buy,1); ahora podemos probar el ea funcionó perfectamente para mí ejecutar una prueba en modo visual, pausar la prueba, arrastrar el script al gráfico, reanudar la prueba el ea debería abrir una compra
    https://www.forosforex.com/attachmen...1909174765.mq4
    https://www.forosforex.com/attachmen...1562861386.mq4

  11. #30
    1 Adjunto(s) Acabo de tener una muy buena idea. Aquí está el nuevo plan. Vamos a hacer que este probador sea intercambiado, usando scripts, que usan variables globales, lo que significa que durante una prueba de modo visual, podemos arrastrar y soltar scripts en el gráfico para comerciaremos, terminaremos el ea, luego crearemos algunos scripts, le daremos una opción, para que podamos agregar una estrategia de negociación automatizada al ea, crearemos objetos en el gráfico, para que podamos alternar todo durante la prueba, el ea también funcionará en vivo. Vamos a crear la función de negociación en la parte inferior, pero antes de la función de pedidos, coloque este void trade() { } ahora, para que sea confiable, necesitamos manejar los errores y recotizaciones, agreguemos esto a la función int total_orders= compra vende; ahora tenemos este void trade() { int total_orders=buys sells; } esto es lo que he hecho Inserted Code void trade() { int total_orders=buys sells; if (señal==comprar)OrderSend(Symbol(),OP_BUY,0.01,As k,3,NULL,NULL,NULL,NULL,0,CLR_NONE); if (signal==sell)OrderSend(Symbol(),OP_SELL,0.01,Bid, 3,NULL,NULL,NULL,NULL,0,CLR_NONE); pedidos(); if ((compra venta)!=total_pedidos)signal=ninguno; } como puede ver, debemos obtener nuestro comercio, o el ea intentará para siempre cada tick hasta que lo hagamos ahora en el inicio, donde pones las órdenes (); poner comercio (); Justo debajo de ese aviso, también usé orders(); dentro del comercio (); funcionar de esa manera, después de que se suponía que debíamos comerciar, verificamos que lo hicimos, hay muchas formas de lograrlo, esta es mi forma preferida aquí está el código hasta ahora
    https://www.forosforex.com/attachmen...4810999079.mq4

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Uso de cookies
Utilizamos cookies propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Más información y política de cookies.
     

Aviso legal: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español. Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.