Poca ayuda con el conteo consecutivo de victorias/derrotas

 

Publi

Resultados 1 al 7 de 7

Tema: Poca ayuda con el conteo consecutivo de victorias/derrotas

  1. #1
    Hola chicos, me estoy metiendo seriamente en la programaci�n, sin embargo, tengo mucho m�s que aprender.

    Actualmente estoy tratando de implementar en un EA un conteo secuencial de p�rdidas/ganancias bajo otra condici�n:
    C�digo insertado/---------------------------------------------- ------- int externo = Max_Count;/El usuario define el mayor recuento de p�rdidas/ganancias para volver a empezar desde 0/--------------------------------- -------------------- aqu� es donde llegu� hasta ahora, cuenta correctamente las ganancias y p�rdidas, pero no puedo entender c�mo hacer que comience cuando se alcanza Max_Count :
    C�digo insertado int LossCount = 0, WinCount = 0for (int I = 0; I lt; OrdersHistoryTotal(); I ) if (! OrderSelect(I, SELECT_BY_POS, MODE_HISTORY)) continue; if (OrderMagicNumber() == MagicNumber OrderSymbol() == Symbol() OrderProfit()lt;0) LossCount ; N�mero de victorias=0; if (OrderMagicNumber() == MagicNumber OrderSymbol() == Symbol() OrderProfit()gt;0) LossCount=0; N�mero de victorias ;/------------------------------------------------ ----- #8203;�Gracias por la ayuda!

  2. #2
    Cita Iniciado por ;
    Digamos que llega a la mitad del historial de pedidos y logra su Max_Count. �Qu� necesitas que suceda ahora?
    Hola amigo, una vez que se alcanza Max_Count, me gustar�a que Count cuente solo hasta el Max_Count anterior para que se reinicie la p�rdida/ganancia de la cadena: Ejemplo de lo que quiero que suceda: T[0] = Comercio actual T[1] = �ltimo cierre comercio T[2] = anterior.... T[b] = �ltimo comercio utilizado para contar, tambi�n conocido como Count_Breaker.... T[I] = �ltimo comercio en la historia Max_Count funciona como un contador de cuenta: Caso 1: No Max_Count est� establecido, no preseleccionamos un T[b] porque queremos contar toda la cadena: Si T[1], T[2], T[3],..., T[12] fueran perdedores, pero T[13] ganador, luego LossCount==12; N�mero de victorias == 0; No hay requisito de contar hasta T[I] como factor decisivo T[b]==T[13]. Caso dos: Con Max_Count=6, configuramos T[b] actualmente igual a la sexta derrota o triunfo consecutivos, por lo tanto, todas las ganancias son, el conteo es igual a un m�ximo de 6: Si T[1], T[2], T[3],..., T[12] fueron perdedores (misma instancia), luego At T[12]:LossCount==1; En T[11]:LossCount==2; En T[10]:LossCount==3; En T[9]:LossCount==4; En T[8]:LossCount==5; En T[7]:LossCount==6; lt;lt;lt;lt;==== Max_Count se alcanza all�, �comience de nuevo desde LossCount==0! ===gt; T[7] fue un factor decisivo en T[6]:LossCount==1; En T[5]:LossCount==2; En T[4]:LossCount==3; En T[3]:LossCount==4; En T[2]:LossCount==5; En T[1]:LossCount==6;lt;lt;lt;lt;==== Max_Count se alcanza all�, �comience de nuevo desde LossCount==0! ===gt;T[1] fue un factor decisivo en T[0]:LossCount==1; Si T[0] vuelve a cerrar como p�rdida: Caso 1: En T[-1]LossCount==13; N�mero de victorias == 0; Caso dos: En T[-1]LossCount==2; N�mero de victorias == 0; espero ser comprensible

  3. #3
    Cita Iniciado por ;
    citar �Gracias por esas respuestas r�pidas chicos! Deber�a haber sido m�s claro: no estoy contando la cantidad general de p�rdidas y ganancias, sin embargo, uno de los antecedentes, Chainloss/wins, por lo tanto, LossCount ; N�mero de victorias=0; significa que si ha ocurrido una p�rdida, agregamos 1 al conteo de p�rdidas y luego reiniciamos el conteo de Chainwin. Su c�digo deber�a (OrderProfit() lt; 0) LossCount ; de lo contrario if(BeneficioPedido() gt; 0) WinCount ; solo continuar�a contando hasta alcanzar el m�ximo, que no es lo que necesito
    Problema: prob� ambas formas de dividir con when (LossCount WinCount gt; Max_Count)...
    Hola Edorenta, La serie de ganadores/perdedores consecutivos tiene mas sentido hoy lo entiendo. Pero todav�a estoy un poco confundido acerca de lo que quiere que ocurra cuando se alcanza Max_Count. Digamos que llega a la mitad del historial de pedidos y alcanza su Max_Count. �Qu� necesitas que suceda? Si desea comenzar de nuevo desde el principio, puede configurar I0 pero eso lo llevar� a un ciclo infinito (eso no es genial). �O simplemente desea recordar d�nde tuvo que ir la �ltima vez la pr�xima vez que llame al bucle? Si ese es el caso, puedes declararte con alcance internacional, o yo como una variable.

  4. #4
    Cita Iniciado por ;
    Hola, no estoy seguro exactamente de lo que est�s tratando de lograr, pero tambi�n estoy de acuerdo con que la l�gica se ve algo extra�a cuando reinicias el contador opuesto. Puede simplificar un poco su c�digo: no es necesario verificar OrderMagicNumber() y Symbol() para todas las declaraciones 'if'. No estoy seguro de lo que le gustar�a hacer cuando presione Max_Count: �interrumpir el ciclo o simplemente restablecer los contadores?
    Gracias por todas esas respuestas r�pidas chicos! Deber�a haber sido m�s claro: no estoy contando con la cantidad general de reducci�n y gana uno de la historia sino con Chainloss/wins, por lo tanto Inserted Code LossCount ; N�mero de victorias=0; significa que cuando ocurre una p�rdida, agregamos 1 a este conteo de reducci�n y reiniciamos el conteo de Chainwin. Su c�digo C�digo insertado if(OrderProfit() lt; 0) LossCount ; de lo contrario if(BeneficioPedido() gt; 0) WinCount ; solo continuar�a contando hasta alcanzar el m�ximo, que no es exactamente lo que necesito
    Problema He probado las dos formas de romper con when (LossCount WinCount gt; Max_Count) LossCount=WinCount=0; y otra manera m�s en la que ambos funcionan para dejar de contar, PERO comenzar de nuevo en el que el conteo se detuvo en lugar de volver a contar 0: C�digo insertado int LossCount, WinCount, History;/Pens� que tal vez podr�amos establecer la cantidad de pedidos para verificar en Max_Count de esa manera: if (Historylt;OrdersHistoryTotal()) Background =OrdersHistoryTotal(); de lo contrario Fondo = Max_Count;/Y luego recorre el historial hasta Max_Count: for (int I = 0; t lt;= Background; I ) { if(! OrderSelect(I, SELECT_BY_POS, MODE_HISTORY)) continue; if(OrderMagicNumber() ! = MagicNumber || OrderSymbol() ! = Symbol()) continue; if(BeneficioPedido() lt; 0) CuentaP�rdida ; WinCount=0 else if(OrderBeneficio() gt; 0) WinCount ; LossCount=0/No funciona Gracias por ser �til, este mundo necesita m�s gente como t�

  5. #5
    Cada nuevo pedido verificado restablece el contador opuesto a 0... Eso est� mal para m�...

  6. #6
    Hola Edorenta, no estoy seguro de lo que est�s tratando de lograr, pero tambi�n estoy de acuerdo con que la l�gica se ve algo extra�a una vez que reinicias el contador. Puede mejorar un poco su c�digo: no hay necesidad de verificar OrderMagicNumber() y Symbol() para todas las declaraciones 'if'. No estoy seguro de lo que quiere hacer cuando presiona Max_Count: �dividir el ciclo o simplemente restablecer los contadores? C�digo insertado int LossCount = 0, WinCount = 0; for(int I = 0; I lt; OrdersHistoryTotal(); I ) OrderSymbol() ! = S�mbolo()) continuar; if(BeneficioPedido() lt; 0) CuentaP�rdida ; de lo contrario if(BeneficioPedido() gt; 0) WinCount ; if(LossCount WinCount gt; Max_Count) LossCount=WinCount=0;/pone a cero los contadores/o.... If(LossCount WinCount gt; Max_Count) break;/rompe el ciclo/o... �algo completamente diferente?

  7. #7

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í.