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
Em contraste com o manipulador de carraças, o temporizador será executado após um certo período de tempo, definido pelo período.
No processamento com temporizador pesado, é claro que é melhor desactivá-lo por um tempo por escorregamento ou primeiro tique (há muitas variantes), mas se o processamento com temporizador não for muito pesado e o período for suficientemente longo, o temporizador pode ser desactivado.
Também no processamento do temporizador pode fornecer uma verificação sobre se é ou não um dia útil.
Se necessário, pode agendar cálculos pesados para o fim-de-semana (por exemplo, auto-optimizaçãoda EA) e executar este processo a partir do temporizador. No final dos cálculos (ou no início dos cálculos), o temporizador pode ser correctamente desactivado.
Quanto aos testes no testador através da função OnTimer() do Expert Advisor multi-moeda. Suponhamos que o temporizador é ajustado a um intervalo de 10 segundos. Vai fazer tic-tac todos os fins-de-semana durante o período de testes? Penso que era isso que Vladimir queria dizer. Assim, se indicarmos ao temporizador que o sábado e o domingo são ignorados, os testes serão muito mais rápidos.
1. Tentei desligar o temporizador aos fins-de-semana quando os cálculos não eram muito complicados, não senti grande diferença (embora houvesse diferenças, claro), agora decidi não desligar o temporizador por enquanto.
2. Sim, se o temporizador estiver definido, não faz diferença no testador ou no modo normal de disparo ocorrerá até que o temporizador seja desligado. Se estamos a falar de um testador, então com um intervalo de 10 segundos, ele tropeçará durante todo o período de teste - a cada 10 segundos.
Ao parar o temporizador durante o fim-de-semana, há várias soluções:
а. Encerrar o temporizador com a escrita do estado a uma variável. Ao primeiro tique pela ferramenta principal (ou por um sinal de "espião") o temporizador pode ser reiniciado. Este método tem desvantagens relacionadas com a probabilidade de carrapato ou atraso de carrapato no mercado ilíquido. A falta de ligação ao servidor comercial também pode ser causada por uma falta de ligação ao servidor comercial.
б. Travões deslizantes, durante um certo período de tempo. O bom é que o período é especificado com precisão, o mau é que neste método, não só o temporizador, mas todo o Expert Advisor ficará inactivo até à X hora.
Embora, todas as posições e ordens serão processadas no testador.
в. É possível realizar uma pausa, aumentando o período de temporização. É conveniente saber com antecedência quando o temporizador tem de "acordar" e o trabalho do perito não é interrompido. Desconfortável pelo facto de ter de manter um registo do temporizador em estado de funcionamento ou em modo de espera.
в. Dividir o enchimento do temporizador em dois grupos, o primeiro é executado o tempo todo (por exemplo, determinando o estado de ligação), e o segundo de acordo com as condições (dias úteis, ligação presente, negociação é permitida, etc.).
Se necessário, cálculos pesados podem ser programados para o fim-de-semana (por exemplo, auto-optimizaçãoda EA) e executar este processo a partir do temporizador. No final (ou no início) dos cálculos, o temporizador pode ser correctamente desactivado.
Olá! Tive uma ideia semelhante ontem, mas não tive tempo de escrever um post com perguntas sobre o assunto:
1.Será possível fazer isto? Como isto pode parecer no código, particularmente nas operações de abertura e fecho, ou apenas a sua localização e cálculos-cálculos, isto é, no fim-de-semana no temporizador vai para uma função definida, que rebobina ciclicamente a história, e determina os melhores parâmetros... Para isto não são necessários tiquetaques em linha, e a função irá apenas rodar no ciclo...
2. há em qualquer parte do mundo para ler sobre o assunto, em qualquer ramo?
3.Se aplicado ao campeonato, não será carregado no carro? Esta é provavelmente uma questão para os organizadores.
Em seguida, calcular tudo no Expert Advisor num prazo adequado, e imprimir o resultado em OnTester(). Não é necessário negociar. Tem algum problema?
Muito obrigado
Tenho outra pergunta, como é quefecho uma posição por tempo, se o preço não chegou nem a tomar nem a parar de perder?
Li as bibliotecas sobre como trabalhar com encomendas... Liguei-o... O programa está a jurar que não tem tal procedimento...
Assim, a minha pergunta é que tipo de código deve ser para fechar a encomenda após um certo tempo (por exemplo 1 dia)
AccountInfoDouble(ACCOUNT_BALANCE) != AccountInfoDouble(ACCOUNT_EQUITY)
é assim que tenho de verificar se uma troca está aberta...
OrderTotal ()!=0 não funciona )))) falha muito interessante )
Existe PosirionTotal() para posições. EncomendasTotal() apenas para Encomendas pendentes.
se ( PositionsTotal() == 1 )
a mesma coisa ... nenhuma reacção
// abre normalmente
se ( TimeActivation ( 1 )
{
se ( _1_operação == 1 && Comprar ( 0.10 ) == 1 ) { Dormir (600000); }
se ( _1_operação == -1 && Venda ( 0.10 ) == 1 ) { Dormir (600000); }
}
// não pode fechar antes de tomar ou parar
se ( TimeActivation ( 2 )
{
se ( PosiçõesTotal() == 1 ) /// NÃO TRABALHADO)))
{
se ( _1_operação == 1 && Venda ( 0.10 ) == 1 ) { Dormir (600000); }
se ( _1_operação == -1 && Comprar ( 0.10 ) == 1 ) { Dormir (600000); }
}
}
Muito obrigado
Portanto, pergunte, que código deve ser aproximadamente, para fechar a encomenda após um certo tempo ( por exemplo 1 dia )
Por favor.
Aproximadamente assim: poupa-se o tempo de abertura numa variável. Acrescentar-lhe imediatamente o período de tempo desejado (por exemplo 1 dia = 60*60*24).
Depois, a cada tick (ou hora), controlar se a hora actual é mais longa do que a hora de controlo. Se for - fecha-se // se (TimeCurrent() > MyControlTime) FecharMinhaPosição();
se ( PositionsTotal() == 1 )
a mesma coisa ... nenhuma reacção
// abre normalmente
se ( TimeActivation ( 1 )
{
se ( _1_operação == 1 && Comprar ( 0.10 ) == 1 ) { Dormir (600000); }
se ( _1_operação == -1 && Venda ( 0.10 ) == 1 ) { Dormir (600000); }
}
// não pode fechar antes de tomar ou parar
se ( TimeActivation ( 2 )
{
se ( PosiçõesTotal() == 1 ) /// NÃO TRABALHADO)))
{
se ( _1_operação == 1 && Venda ( 0.10 ) == 1 ) { Dormir (600000); }
se ( _1_operação == -1 && Comprar ( 0.10 ) == 1 ) { Dormir (600000); }
}
}
Na verdade, não é claro o que escreveu aqui, mas PositionTotal() claramente não tem nada a ver com isto.
Colocar Print() antes de verificar, =1 ?
Konstantin Gruzdev sugeriu um método interessante com "espiões" e "agentes" no seu artigo. )) Mas o seu "agente" ex-Painel de Controlo de Espiões MCM não quer trabalhar para mim.
Vou agora dar uma vista de olhos à variante apresentada no artigo. Até agora, vários peritos em espiões, funciona muito bem.
Penso que esta tecnologia não funcionará no testador.
Funciona.
Por favor.
Aproximadamente desta forma: é necessário armazenar o tempo de abertura numa variável. Acrescentar-lhe imediatamente o intervalo de tempo necessário (por exemplo 1 dia = 60*60*24).
Depois, a cada tick (ou hora), monitorizar se a hora actual é maior do que a hora de controlo. Se for - fecha-se // se (TimeCurrent() > MyControlTime) FecharMinhaPosição();
Dentro de uma variável é uma opção, mas se precisar de um fecho mais fiável, mesmo depois de reiniciar o terminal/conselheiro, pode usar um medjic para identificar a encomenda e verificar a hora da sua abertura.