Aprender a codificar pregunta (sangmane)

 

Publi

Resultados 1 al 9 de 9

Tema: Aprender a codificar pregunta (sangmane)

  1. #1
    El código fue proporcionado por cortesía de sangmane. Acumula ganancias para un intervalo individual definido de 24 horas:

    Código insertado extern int CumProfitStart = 00;
    Código insertado if(AllowTrade == True) TradeTaken = No ( DoubleToStr(cummulativeProfit(CumProfitStart),2) );
    Código insertado #91;color=negro#93;doble #91;/color#93; cummulativeProfit(int startHour) int totalHistory = OrdersHistoryTotal();/obtener el número de pedidos en segundo plano en el grupo de pedidos dual profit = 0;/establece el beneficio inicial = 0 datetime thistime = TimeCurrent();/ahora use TimeCurrent() en lugar de Time#91;0#93;, para evitar defectos lógicos cuando se ejecuta en un ciclo de 24 horas datetime startTime = StrToTime(TimeToStr(thistime,TIME_DATE) startHour :00);/construir startTime basado en startHour y el día, mes, año actual if(thistimelt;startTime) startTime = startTime-24*60*60;/comprobar si la hora actual está detrás de startTime, restar startTime por 24 horas para(int I = totalHistory-1; igt;=0; t --) OrderSelect(I, SELECT_BY_POS, MODE_HISTORY);/comprobar si la hora de cierre de la orden es posterior a la hora de inicio, salir del bucle if(OrderCloseTime() lt; startTime) break; beneficio = BeneficioPedido(); return(NormalizeDouble(beneficio,2));/acumular beneficio
    He intentado cambiar este código en particular, de la siguiente manera, para contar el número de transacciones en un período de 24 horas definido individualmente. Esto funciona bien las primeras 24 horas, cuenta los intercambios, borra el conteo a cero al comienzo del intervalo de 24 horas subsiguiente pero no acumula un conteo después de eso:

    Código insertado extern int CountTradesStart = 00;
    Comentario de código insertado... Número de transacciones ahora =, cummulativeTradeCount(CountTradesStart), \n,
    Código insertado #91;color=red#93;int#91;/color#93; cummulativeTradeCount(int startHour) int totalHistory = OrdersHistoryTotal();/obtener el número de pedidos en segundo plano en el grupo de pedidos int TradeCount = 0;/establecer el recuento inicial = 0 datetime thistime = TimeCurrent();/ahora use TimeCurrent() en lugar de Time#91;0#93;, para evitar defectos lógicos cuando se ejecuta en un ciclo de 24 horas datetime startTime = StrToTime(TimeToStr(thistime,TIME_DATE) startHour :00);/construir startTime basado en startHour y el día, mes, año actual if(thistimelt;startTime) startTime = startTime-24*60*60;/verifica si la hora actual está detrás de startTime, resta startTime por 24 horas #91;color=red#93;for(int k = totalHistory-1; kgt;=0; k--) #91;/color#93; OrderSelect(k, SELECT_BY_POS, MODE_HISTORY);/comprobar si la hora de cierre de la orden es posterior a la hora de inicio, salir del bucle if(OrderCloseTime() lt; startTime) break; should (OrderSymbol()==Symbol() OrderMagicNumber() == MagicNumber) TradeCount ; retorno (Número de comercio);/
    No puedo por mi vida determinar lo que está mal. ¡Cualquier ayuda será apreciada!

  2. #2
    Sangmane, ¡muchas gracias! Demuestras tu experiencia. PD No sabía que usar el identificador de otro miembro estaba en contra de las reglas. Lo hice para llamar tu atención porque sabía que podías ayudar. Disculpas.

  3. #3
    Necesita usar: Código PHP: <code><span style=”color: #000000”> <span style=”color: #0000BB”></span><span style=”color: #007700”>for( </span><span style=”color: #0000BB”>inti</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>historial total</span><span style=”color: #007700”>-</span><span style=”color: #0000BB”>1</span><span style=”color: #007700”>;</span> <span style=”color: #0000BB”>I</span><span style=”color: #007700”>gt;=</span><span style=”color: #0000BB”>0</span> <span style=”color: #007700”>;</span><span style=”color: #0000BB”>I</span><span style=”color: #007700”>--) </span> <span style=”color: #0000BB”></span> </span> </code> en lugar de Código PHP: <code><span style=”color: #000000”> <span style=”color: # 0000BB”></span><span style=”color: #007700”>para(</span><span style=”color: #0000BB”>inti</span><span style=”color: #007700” >=</span><span estilo=”color: #0000BB”>0</span><span estilo=”color: #007700”>;</span><span estilo=”color: #0000BB”>I </span><span estilo=”c olor: #007700”>lt;</span><span style=”color: #0000BB”>historial total</span><span style=”color: #007700”>;</span><span style=”color : #0000BB”>I</span><span style=”color: #007700”> ) </span><span style=”color: #0000BB”></span> </span> </code > como en el primer código. Editado para incluir: el cálculo debe comenzar desde la entrada más reciente en el grupo de fondo. En mi opinión, el primer pedido tiene un índice = 0. El grupo ha sido indexado según el tiempo de apertura del pedido (no el tiempo de cierre del pedido).

  4. #4
    Eknockers, estoy sorprendido de leer el título del hilo.
    es mejor que no uses la administración de miembros como parte del título del hilo, excepto que es tu identificador. Afortunadamente el contenido no es algo malo sobre mí.

  5. #5
    ¡Chico, no puedes ver el bosque por los árboles! Gracias, modificaré la prueba.

  6. #6
    Todavía no obtengo un recuento después de las primeras 24 horas (usando egy tester). Tengo este lugar para comenzar al comienzo de la sesión asiática. Se restablece a cero al comienzo de la sesión que es asiática, funciona durante las primeras 24 horas y cuenta después de eso. La función cummulativeProfit funciona, sin embargo, el trabajo cummulativeTradeCount (que es básicamente el mismo arreglo) funciona durante 24 horas y luego nada. ¿Cómo puede ser esto? A menos que sea algún tipo de falla en el probador de energía. He visto cosas raras como esta suceder antes.

  7. #7

    Cita Iniciado por ;
    El siguiente código ha sido proporcionado por cortesía de sangmane. Acumula ganancias para obtener un período de 24 horas definido por el usuario:
    No, no lo hace. Para operar con ganancias o variedad de operaciones en un período de 24 horas definido por el usuario, se necesita una hora de inicio y una hora de finalización. El código que ha publicado cuenta en la hora de inicio, si este período de inicio es posterior a la hora actual, las 24 horas son adicionales. A modo de ejemplo, mi período de tiempo de actividad actual es 09:15, si uso cumulativeProfit (10), dado que esta hora sigue la hora actual del servidor, se restan 24 horas dando 23 horas, 10 a.m. ayer a 9 a.m. hoy, si uso cumulativeProfit (5) el conteo va desde las 5 am hasta las 9 am.

  8. #8
    Parece que estás devolviendo un número entero convertido en un doble. MQL se trata de funcionar si espera que convierta el valor entero 26, tipo casts y terminará como cero minuciosamente. No entiendo por qué este código funcionará, excepto en el caso de TradeCount = 0. Cambie la declaración de la función por un número entero en lugar de un doble y vea si esto funciona. De lo contrario, no veo nada obviamente malo con el código.

  9. #9
    Hola, estoy buscando un EA que colocará una orden de COMPRA todos los miércoles al mediodía GMT en el EURUSD. ¿Alguien puede ayudarme con esta codificación y confirmar si se trata de un ejemplo válido? Gracias, BitBot.

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Cookies
Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede cambiar la configuración u obtener más información y política de cookies aquí.