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
Gostaria de esclarecer o termo "último comércio".
É o último negócio dentro do dia atual? Ou para os últimos N dias?
O último acordo em 24 horas - você não precisa voltar mais atrás na história.
a última transação em 24 horas - não há necessidade de ir mais longe na história.
É assim que funciona:
O indicador usa o código para criar, mover e excluir uma linha vertical da ajudaOBJ_VLINE. (só a criação de linhas funciona no indicador até agora). O nome da linha é definido no parâmetro de entrada"Vertical line name".
Alinha vertical é criada em OnOnit():
Para minimizar a carga, nós interrogamos o histórico uma vez por minuto. Para este fim, vamos declarar a variávelExtLastMove na área das variáveis globais de nosso programa (neste caso, no indicador)
- esta variável armazenará a hora do último acesso ao histórico comercial.
Então em OnCalculate(), subtraímos o tempo armazenadoExtLastMove do tempo atual (tempo da última cotação usando qualquer símboloTimeCurrent) e se a diferença for inferior a 60 segundos, saímos.
se a diferença for maior, então registramos um novo tempo emExtLastMove.
O histórico comercial é acessado usando LastProfitForPeriod().
Duas datas são usadas aqui: de e para. A data "Até" é definida para o futuro (a hora atual mais um dia), adata "De" é obtida pela subtração de 24 horas da hora atual
É tudo por agora, é muito texto...
Eu não entendo apenas, por que precisamos_datar igual ao futuro? Pode estar à altura do momento atual? Parece que não podemos determinar o resultado do acordo no futuro :) Ou será que precisamos deste dia no futuro para traçar a linha no tempo futuro?
Outra pergunta sobre o loop.
Até onde eu entendo, carregamos um array com dados sobre negócios e fazemos um loop através do array desde o negócio zero até o último negócio, comparando o tempo com o último escrito e sobregravando a variável last_time, se o negócio_time for mais tarde. Ou talvez o contrário seja verdade - a matriz pode ser pesquisada a partir do final? Na verdade, o último elemento da matriz será a última transação fechada para a qual precisamos de dados?
Talvez eu cometa alguns erros lógicos - por favor, não julgue de forma muito dura :)
Precisamos disso dessa maneira. Para ter garantia "de" e para o tempo atual.
Ou talvez seja possível pesquisar a matriz a partir do final?
Se a tarefa é encontrar o último acordo, então a matriz deve passar e procurar precisamente o tempo - caso algo aconteça ou a lógica interna do núcleo seja alterada e os acordos serão reiniciados em momentos diferentes.
Esta é a maneira de fazer isso. Para ter a garantia de "de" e para a hora atual.
Se a tarefa é encontrar o último acordo, então o Array deve passar e procurar a hora exata - caso algo aconteça ou a lógica interna do kernel mude e os acordos sejam descartados aleatoriamente.
Ok, entendi. Em princípio, dada a limitação do histórico de 24 horas, não haverá claramente nenhuma carga significativa ao passar pelos dados :)
OK, entendi. Em princípio, dado o limite de 24 horas de história, não haverá claramente nenhuma carga de trabalho significativa quando se analisarem os dados :)
Portanto, o toque final é mover a linha de acordo com o lucro obtido.
Você se lembra quais são as regras da mudança?
É correto ou estou confundindo algo?
Aqui está uma explicação de porque o parâmetro "antes" deve ser feito no futuro:
Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial
Erros, bugs, perguntas
Renat Fatkhullin, 2016.11.04 12:43
Nunca faça TimeCurrent() como uma data final, faça TimeCurrent()+86400 para garantir que todas as negociações finais sejam capturadas.
TimeCurrent não é a última vez exata, mas o "último tempo conhecido do servidor durante as atualizações", que não é 100% exato. Especialmente no início.