Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Rogério agora tá uma bala. O problema agora é como faço pra zerar a variável resultado a cada novo dia?
Bem, faça a seu gosto mas basta colocar no OnTick() um teste.
int OnTick()
...
if (NovoDia()) resultado=0;
Comentário sobre o código.
Rogério agora tá uma bala. O problema agora é como faço pra zerar a variável resultado a cada novo dia?
ola , Existe varias formas de fazer isso , todas chegando ao resultado esperado ,..por tanto darei uma ideia que implementei.
todo ontick(), todos os programadores pegam o ultimo valor do preco, por tanto tenho a informacao do time do tick.
1 - Coloque ele dentro de uma Variavel MqlDatetime x;
2 - Crie uma variavel DIA, qdo ela for diferente , vc zera seu saldodiario, e atualiza a variavel DIA
if (DIA != x.day )
{
DIA=x.day;
SALDODIARIO=0;
}
Espero ter ajudado e boa sorte
Att
Sandro Lobo
Minha sugestão: transforme "resultado" em variável global.
Cabe o teste mas acredito que funcione. Tenho variáveis parecidas em meu código.
[ ]'s
Boa tarde!
Bacana a contabilização, muito importante, compartilhando, eu uso a seguinte estratégia:
- contabilizo no init
- contabilizo ao iniciar cada novo dia
- toda posição aberta eu acompanho pelo tickt para iniciar algumas ações caso preveja na estratégia (revisão entrada ajustando tp/sl, break even, trailing stop, saida por prazo ou sinal, etc), quando a posição é encerrada, chamo a função para contabilizar pelo ontick filtrando a estratégia da ordem encerrada.
- para toda entrada sempre tenho a sequencia atual (quantos gain ou loss seguidos)
Abraços
Daniel
Retornado true a posiação esta aberta, false é que ja fechou, assim aciono a contabilização.
Quando entro, coleto o ticket
Após a saída, zero o numero do tick da variável
Só executo o código quando a variável do tickt é diferente de zero.
Att.
Daniel
Retornado true a posiação esta aberta, false é que ja fechou, assim aciono a contabilização.
Quando entro, coleto o ticket
Após a saída, zero o numero do tick da variável
Só executo o código quando a variável do tickt é diferente de zero.
Att.
Daniel
Boa tarde... O código que não consigo verificar o novo dia é esse abaixo, eu tinha apagado ele. Eu percibi q esse código não contabiliza o primeiro deal do dia e também não sei como fazer com que zere a contagem a cada novo dia.
Boa tarde... O código que não consigo verificar o novo dia é esse abaixo, eu tinha apagado ele. Eu percibi q esse código não contabiliza o primeiro deal do dia e também não sei como fazer com que zere a contagem a cada novo dia.
Boa tarde,
Eu uso como expliquei acima, a contabilização no ontick.
Para verificar um novo dia, uso:
if(((di03_data_pregao.day != di03_data_b.day) || (di03_data_pregao.mon != di03_data_b.mon) || (di03_data_pregao.year != di03_data_b.year))
Na questão do período inicial, comparando como faço, tente montar a hora inicial parecido, faça um teste no seu código
Abraço
Daniel
Bem, faça a seu gosto mas basta colocar no OnTick() um teste.
int OnTick()
...
if (NovoDia()) resultado=0;
Comentário sobre o código.
ola , Existe varias formas de fazer isso , todas chegando ao resultado esperado ,..por tanto darei uma ideia que implementei.
todo ontick(), todos os programadores pegam o ultimo valor do preco, por tanto tenho a informacao do time do tick.
1 - Coloque ele dentro de uma Variavel MqlDatetime x;
2 - Crie uma variavel DIA, qdo ela for diferente , vc zera seu saldodiario, e atualiza a variavel DIA
if (DIA != x.day )
{
DIA=x.day;
SALDODIARIO=0;
}
Espero ter ajudado e boa sorte
Att
Sandro Lobo
Bom dia @northedan
já tem várias dicas aqui para testar novo dia e zerar o saldo diário. Qual é a sua dúvida?