ALGUEM ME AJUDA POR FAVOOOOOR

 

BOA NOITE. 

ESTOU DESENVOLVENDO UM CÓDIGO PARA SOMAR TODAS AS POSIÇÕES DOS TRADES JÁ REALIZADOS ATÉ QUE SEJA ALCANÇADO UM VALOR. ENTÃO ZERAR A CONTAGEM E RECOMEÇAR TUDO NOVAMENTE.


ESTOU UTILIZANDO O LOOP FOR PARA A CONTAGEM 

        int total_deals=HistoryDealsTotal();

   ulong ticket=0;

   double lucro=0;

   string simbolo;

   int entry;

   int magic;

   double res = 0;

   for(int i=0; i<total_deals; i++)

     {

      ticket = HistoryDealGetTicket(i);

      simbolo = HistoryDealGetString(ticket,DEAL_SYMBOL);

      entry = HistoryDealGetInteger(ticket,DEAL_ENTRY);

      magic = HistoryDealGetInteger(ticket,DEAL_MAGIC);

      lucro = HistoryDealGetDouble(ticket,DEAL_PROFIT);

     

      if(ticket>0)

        {

         if(((simbolo==Inp_Ativo01)||(simbolo==Inp_Ativo02)) && ((entry==DEAL_ENTRY_OUT) || (entry==DEAL_ENTRY_OUT_BY)))

           {

            res +=lucro;

           }

        }

     }

 A PERGUNTA É, COMO POSSO FAZER PARA QUE QUANDO A SOMA DOS LUCROS DER UM RESULTADO, ESSE LOOP PARAR E COMEÇAR A CONTAR NOVAMENTE ????? ALGUÉM PODE ME AJUDAR!

 
DanielSilva:

BOA NOITE. 

ESTOU DESENVOLVENDO UM CÓDIGO PARA SOMAR TODAS AS POSIÇÕES DOS TRADES JÁ REALIZADOS ATÉ QUE SEJA ALCANÇADO UM VALOR. ENTÃO ZERAR A CONTAGEM E RECOMEÇAR TUDO NOVAMENTE.


ESTOU UTILIZANDO O LOOP FOR PARA A CONTAGEM 

        int total_deals=HistoryDealsTotal();

   ulong ticket=0;

   double lucro=0;

   string simbolo;

   int entry;

   int magic;

   double res = 0;

   for(int i=0; i<total_deals; i++)

     {

      ticket = HistoryDealGetTicket(i);

      simbolo = HistoryDealGetString(ticket,DEAL_SYMBOL);

      entry = HistoryDealGetInteger(ticket,DEAL_ENTRY);

      magic = HistoryDealGetInteger(ticket,DEAL_MAGIC);

      lucro = HistoryDealGetDouble(ticket,DEAL_PROFIT);

     

      if(ticket>0)

        {

         if(((simbolo==Inp_Ativo01)||(simbolo==Inp_Ativo02)) && ((entry==DEAL_ENTRY_OUT) || (entry==DEAL_ENTRY_OUT_BY)))

           {

            res +=lucro;

           }

        }

     }

 A PERGUNTA É, COMO POSSO FAZER PARA QUE QUANDO A SOMA DOS LUCROS DER UM RESULTADO, ESSE LOOP PARAR E COMEÇAR A CONTAR NOVAMENTE ????? ALGUÉM PODE ME AJUDAR!

Você postou a mesma coisa em 3 topicos diferentes e na mesma hora... A sugestão é você apagar as postagens duplicadas para ajudar o fórum a ficar mais limpo. Dai depois que você ajudar o fórum creio que rapidinho alguém vai lhe ajudar.
 
DanielSilva:

BOA NOITE. 

ESTOU DESENVOLVENDO UM CÓDIGO PARA SOMAR TODAS AS POSIÇÕES DOS TRADES JÁ REALIZADOS ATÉ QUE SEJA ALCANÇADO UM VALOR. ENTÃO ZERAR A CONTAGEM E RECOMEÇAR TUDO NOVAMENTE.


ESTOU UTILIZANDO O LOOP FOR PARA A CONTAGEM 

        int total_deals=HistoryDealsTotal();

   ulong ticket=0;

   double lucro=0;

   string simbolo;

   int entry;

   int magic;

   double res = 0;

   for(int i=0; i<total_deals; i++)

     {

      ticket = HistoryDealGetTicket(i);

      simbolo = HistoryDealGetString(ticket,DEAL_SYMBOL);

      entry = HistoryDealGetInteger(ticket,DEAL_ENTRY);

      magic = HistoryDealGetInteger(ticket,DEAL_MAGIC);

      lucro = HistoryDealGetDouble(ticket,DEAL_PROFIT);

     

      if(ticket>0)

        {

         if(((simbolo==Inp_Ativo01)||(simbolo==Inp_Ativo02)) && ((entry==DEAL_ENTRY_OUT) || (entry==DEAL_ENTRY_OUT_BY)))

           {

            res +=lucro;

           }

        }

     }

 A PERGUNTA É, COMO POSSO FAZER PARA QUE QUANDO A SOMA DOS LUCROS DER UM RESULTADO, ESSE LOOP PARAR E COMEÇAR A CONTAR NOVAMENTE ????? ALGUÉM PODE ME AJUDAR!

Daniel, 

Neste seu exemplo eu colocaria uma Array para armazenar cada lucro e mais uma variável que seria o valor base para a virada do "começar a contar novamente". Exemplo: 

Eu colocaria do lado de fora do seu "for" uma variável:

int VariavelLimiteLucro=1000;  //Valor base para o meu FOR entender quando completou o LUCRO atual e deverá iniciar uma nova contagem
int ArrayMeusLucros[]; //Criação da Array

e então dentro do seu FOR criaria a instrução para zerar e armazenar na array, exemplo:

if(res>=VariavelLimiteLucro)
{
        ArrayMeusLucros[i]=res;
        res=0;
}

e por fim para você posteriormente consultar os valores, basta você utilizar a Array. Exemplo se quiser verificar como ele tem armazenado olhar na Expert:

ArrayPrint(ArrayMeusLucros);
Print("Agora somente o valor armazenado na posição zero da minha Array: ",ArrayMeusLucros[0]);
Razão: