HistoryDealsTotal()
Sempre vai pegar o total de ordens que foram encerradas, o que faço nela é selecionar os dias para não puxar o historico completo, eu ví que isso vc está fazendo, selecionando somente um dia.. eu faço de outra maneira.
datetime DataFinal=StringToTime(TimeToString(TimeCurrent(), TIME_DATE) + " " + "23:59"); datetime DataInicial = StringToTime(TimeToString(TimeCurrent(), TIME_DATE) + " " + "00:01"); HistorySelect(DataInicial,DataFinal); for(int i = 0; i <= HistoryDealsTotal(); i++) {
Acho que sua dúvida é essa, correto?
Essa função
Sempre vai pegar o total de ordens que foram encerradas, o que faço nela é selecionar os dias para não puxar o historico completo, eu ví que isso vc está fazendo, selecionando somente um dia.. eu faço de outra maneira.
Acho que sua dúvida é essa, correto?
Não é isso... a questão é vc ter dois robôs EA diferente, cada um tem um total diferente, não pode misturar.
eu tentei separar pelo HistoryDealGetInteger(ticket, DEAL_MAGIC) == magicNum ... porém mesmo assim ele só mostra o total geral de tudo que fez operações no MT5, e na verdade o que eu preciso é do total de cada EA separados individualmente, pois eu colguei cada um com o maginNum diferente.
Entende??
Exemplo:
EA 01 - Roda no Indice M1 opera cruzamento de Medias
MaginNum = 01 --- Total de Operações Hoje = 01
EA 02 - Roda no Indice M1 opera rompimento
MaginNum = 02 --- Total de Operações Hoje = 05
Agora se eu Chamar a função HistoryDealsTotal ele retorna a soma do total de todos os EAs, nesse caso seria = 06, mas eu quero que cada EA mostra o seu numero total correspondente individualmente.
Result de HistoryDealsTotal() = 06
O que eu preciso é do total de cada EA
TotalEA 01 = 01
TotalEA 02 = 05
entendi, cara isso é muito louco, eu lembro que apanhei na mesma coisa que vc na epoca e percebi que só daria fazendo mais detalhado, se fizesse tudo na mesma linha simplesmente nao dava certo, não sei porque, então por fim o meu ficou assim...veja se funciona
for(int i = 0; i <= HistoryDealsTotal(); i++) { ulong magic = 0; Ticket = HistoryDealGetTicket(i); if(Ticket > 0) { magic = HistoryDealGetInteger(Ticket,DEAL_MAGIC); if(magicNumber == magic) { ProfitHistory = HistoryDealGetDouble(Ticket,DEAL_PROFIT); LoteHistory = HistoryDealGetDouble(Ticket,DEAL_VOLUME); if(LoteHistory*valorPonto != 0) { ProfitSoma = ProfitSoma + ProfitHistory; Pontos_History = ((ProfitHistory)/(LoteHistory*valorPonto)) + Pontos_History; } } } }
Mas para vc encontrar na raça o problema, o melhor seria ir mandando print em cada variavel para saber o que está sendo retornado, foi isso que fiz e verifiquei que na epoca nao vinha o magic number correto
- 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
Pessoal criei uma função para print mostrando o números de Operações Positivas, Operações Totais e o Saldo, eu estou usando o parâmetro HistoryDealsTotal(); porém essa variável retorna o numero de ordens totais no geral, e eu quero somente as ordens totais finalizadas de um determinado Numero Magico = magicNum... isso é para diferenciar as ordem de cada EA separadamente.
Vejam o código de execução:
///-- HistoryDealsTotal() ///-- está pegando o total geral, Porque ?? Pois ele está abaixo do if .
Deste já Agradeço.