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!
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]);
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
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!