A título de exemplo.
void moveVLine(string obj_name, datetime obj_time) { int tm = PeriodSeconds(PERIOD_D1); datetime next_day = obj_time + tm; MqlDateTime tm_str; TimeToStruct(next_day,tm_str); if(tm_str.day_of_week == 6) { tm *= 3; next_day = obj_time + tm; } ObjectMove(0,obj_name,0,next_day,0); return; }
A título de exemplo.
Eu lhe informarei como vai ser quando eu der seu exemplo
A título de exemplo.
Como entendi - o código é um fragmento e é necessário acrescentar alguns componentes obrigatórios (#propriedade, etc.)?
Encontrei um indicador semelhante que simplesmente desenha uma linha vertical em um determinado momento - vou tentar usá-lo como base, adicionando os algoritmos necessários em vez de um tempo estático pré-determinado.
https://www.mql5.com/ru/code/18449

- www.mql5.com
Há uma fonte (código acima) que desenha uma linha em uma barra em um determinado momento. Basta remover o tempo dos parâmetros de entrada e obter o valor de tempo do histórico de negócios. Olhando através da documentação Funções comerciais, suspeito que a verdade está em algum lugar entre as funções do grupo História. Até agora eu não vejo nada :(
Alguém pode me ajudar/dizer como obter dados do último negócio da história (hora de fechar uma posição e fixar o resultado de um negócio)?
O exemplo não compilava :(
Como entendi - o código é um fragmento e é necessário acrescentar alguns componentes obrigatórios (#propriedade, etc.)?
Esta é uma função de transferência de linha vertical. Deve ser chamado a partir do código principal, se certas condições forem cumpridas. Além disso, a própria linha já deve estar lá.
Esta é uma função de transferência de linha vertical. Deve ser chamado a partir do código principal, se certas condições forem cumpridas.
Olá a todos!
Pessoal, alguém pode ajudar/sugredir como implementar a seguinte idéia na MQL5 (eu mesmo acabei de conhecer Metatrader - ainda não estou escrevendo nenhum código).
Código Algoritmo:
1) Determina a hora de fechamento do último comércio e o resultado comercial.
2) Determina o resultado total do dia após o último fechamento comercial.
3) De acordo com as configurações do indicador, uma linha vertical é traçada em um certo intervalo no futuro a partir do momento de fechamento da última negociação.
Configurações:
- se o resultado da última negociação for negativo e o resultado do dia for negativo, uma linha vertical é traçada sobre uma distância de 24 horas (24 horas) para o futuro.
- se o resultado do último comércio for negativo e o resultado do dia for positivo, a linha vertical é traçada 2 horas para o futuro.
- se o resultado do último comércio for positivo, uma linha vertical é traçada a uma distância de 1 hora para o futuro.
4) A linha permanece no gráfico mesmo após a abertura de um novo comércio, mas é movida após o fechamento de um novo comércio de acordo com o algoritmo acima, já que o novo comércio já se tornou o último comércio fechado.
Nota.
Um resultado positivo é uma vantagem, independentemente de a ordem ter sido acionada ou de uma posição ter sido fechada manualmente. Isto é, mais na balança.
Um resultado negativo é um menos ou zero, como resultado do comércio.
P.S>.
A essência deste código para mim no seguinte - acostumar-me a fazer uma pausa após os negócios e não quebrar uma onda de calor. Notei que minhas perdas são causadas pela tentativa de reconquistar rapidamente negócios mal sucedidos. Para mim é possível colocar uma linha manualmente e movê-la de acordo com esta regra, mas preciso exatamente de uma variante de programa, porque no futuro quero vincular condições/filtros adicionais ao indicador, ou seja, complicar o algoritmo de tomada de decisão.
Agradecemos antecipadamente e boa sorte a todos!
Portanto, vamos chamá-lo de um indicador.
Portanto, vamos colocar as coisas desta maneira. Vamos definir que vamos interrogar o histórico comercial uma vez por minuto. Então, precisamos de mais dois parâmetros:
- levar em conta os últimos acordos somente para o símbolo atual (o símbolo no qual o indicador está rodando) ou para todos?
- e contabilidade do número mágico (considere apenas um ou todos)?
Vou precisar de uma resposta sua. Tentarei aparecer novamente nesta linha até a hora do almoço.
Um indicador é um indicador.
Portanto, é assim. Vamos definir que vamos interrogar o histórico comercial uma vez por minuto. Então, precisamos de mais dois parâmetros:
- levar em conta os últimos acordos somente para o símbolo atual (o símbolo no qual o indicador está rodando) ou para todos?
- e contabilidade do número mágico (considere apenas um ou todos)?
Vou precisar de uma resposta sua. Tentarei aparecer novamente nesta linha até a hora do almoço.
Vladimir, obrigado por ter tido tempo para fazer minha pergunta. Tão simples quanto possível inicialmente, pois eu mesmo espero refiná-lo a longo prazo, em vez de pará-lo :)
- somente sobre o símbolo atual
- Em relação ao número mágico - não tenho certeza do que se trata. Como algum tipo de identificação? Para ser honesto, não é tão importante para mim. Eu só preciso de dados sobre uma última transação fechada
Gostaria de esclarecer o termo "último comércio".
É o último negócio dentro do dia atual? Ou para os últimos N dias?

- 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
Olá a todos!
Pessoal, alguém pode ajudar/sugredir como implementar a seguinte idéia na MQL5 (eu mesmo acabei de conhecer Metatrader - ainda não estou escrevendo nenhum código).
Algoritmo de código:
1) O horário de fechamento do último comércio e o resultado do comércio são determinados.
2) Determina o resultado total do dia após o fechamento da última negociação.
3) De acordo com as configurações do indicador, uma linha vertical é traçada em um certo intervalo no futuro a partir do momento do fechamento do último comércio.
Configurações:
- se o resultado da última negociação for negativo e o resultado do dia for negativo, uma linha vertical é traçada a uma distância de 24 horas (um dia) para o futuro.
- se o resultado do último comércio for negativo e o resultado do dia for positivo, a linha vertical é traçada 2 horas para o futuro.
- se o resultado do último comércio for positivo, a linha vertical é traçada 1 hora para o futuro.
4) A linha permanece no gráfico mesmo após a abertura de uma nova negociação, mas se move após o fechamento de uma nova negociação de acordo com o algoritmo acima, porque já uma nova negociação foi a última a ser fechada.
Nota.
O resultado positivo é um resultado positivo, não importa se a ordem foi acionada ou se a posição foi fechada manualmente. Isto é, mais na balança.
Um resultado negativo é menos ou zero, como resultado de um acordo.
P.S>
A essência deste código para mim é me acostumar a fazer uma pausa após uma troca, e não ficar muito quente. Tenho notado que minhas perdas são causadas pela tentativa de ganhar de volta rapidamente negócios mal sucedidos. Para mim é possível colocar uma linha manualmente e movê-la de acordo com esta regra, mas preciso exatamente de uma variante de programa, porque no futuro quero vincular condições/filtros adicionais ao indicador, ou seja, complicar o algoritmo de tomada de decisão.
Obrigado de antemão e boa sorte!