Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 480
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
Por favor ajude a traduzir o algoritmo para encontrar as coordenadas do ponto de intersecção de dois segmentos
Do artigo:
É muito simples!
Talvez alguém tenha um já feito nos arquivos?x1,y1 e x2,y2 são coordenadas de vértices do primeiro segmento;
x3,y3 e x4,y4 são coordenadas dos vértices do segundo segmento;
para encontrar a intersecção, fazemos as equações das linhas:
primeira equação:
(x-x1)/(x2-x1)=(y-y1)/(y2-y1);
segunda equação
(x-x3)/(x4-x3)=(y-y3)/(y4-y3);
estas equações definem uma linha que passa por dois pontos, que é o que precisamos.
A partir destas equações encontramos x e y através das seguintes fórmulas:
x:=((x1*y2-x2*y1)*(x4-x3)-(x3*y4-x4*y3)*(x2-x1))/((y1-y2)*(x4-x3)-(y3-y4)*(x2-x1));
y:=((y3-y4)*x-(x3*y4-x4*y3))/(x4-x3);
uma vez que as nossas linhas se intersectam, têm um ponto de intersecção comum com as coordenadas (x,y), que precisamos de encontrar.
Para que o cruzamento pertença aos nossos segmentos de linha, precisamos de o restringir, ou seja, verificar a condição:
se
((((x1<=x)and(x2>=x)and(x3<=x)and(x4 >=x))or((y1<=y)and(y2>=y)and(y3<=y) and(y4>=y))
então há um ponto de intersecção destes segmentos, e se não houver, não há nenhum ponto de intersecção.
Deve também verificar o paralelismo destes segmentos utilizando coeficientes de ângulo:
k1:=(x2-x1)/(y2-y1);
k2:=(x4-x3)/(y4-y3);
onde k1 e k2 são as tangentes dos ângulos dos segmentos no sentido positivo do eixo OX, se k1=k2, então os segmentos são paralelos e portanto não têm pontos de intersecção.
Olá queridos amigos!
Por favor ajude a traduzir o algoritmo para encontrar as coordenadas do ponto de intersecção de dois segmentos de linha
Do artigo:
É muito simples!
Talvez alguém tenha um pronto nos arquivos?x1,y1 e x2,y2 são as coordenadas dos vértices do primeiro segmento;
x3,y3 e x4,y4 são coordenadas dos vértices do segundo segmento;
para encontrar a intersecção, fazemos as equações das linhas:
primeira equação:
(x-x1)/(x2-x1)=(y-y1)/(y2-y1);
segunda equação
(x-x3)/(x4-x3)=(y-y3)/(y4-y3);
estas equações definem uma linha que passa por dois pontos, que é o que precisamos.
A partir destas equações encontramos x e y através das seguintes fórmulas:
x:=((x1*y2-x2*y1)*(x4-x3)-(x3*y4-x4*y3)*(x2-x1))/((y1-y2)*(x4-x3)-(y3-y4)*(x2-x1));
y:=((y3-y4)*x-(x3*y4-x4*y3))/(x4-x3);
uma vez que as nossas linhas se intersectam, têm um ponto de intersecção comum com as coordenadas (x,y), que precisamos de encontrar.
Para que o cruzamento pertença aos nossos segmentos de linha, precisamos de o restringir, ou seja, verificar a condição:
se
((((x1<=x)and(x2>=x)and(x3<=x)and(x4 >=x))or((y1<=y)and(y2>=y)and(y3<=y) and(y4>=y))
então há um ponto de intersecção destes segmentos, e se não houver, não há nenhum ponto de intersecção.
Deve também verificar o paralelismo destes segmentos utilizando coeficientes de ângulo:
k1:=(x2-x1)/(y2-y1);
k2:=(x4-x3)/(y4-y3);
onde k1 e k2 são as tangentes dos ângulos dos segmentos no sentido positivo do eixo OX, se k1=k2, então os segmentos são paralelos e portanto não têm pontos de intersecção.
É um pouco complicado... Escrevi a definição da intersecção das linhas, uma a 2m de altura e a outra a 2m de baixa, mais distante ou não da próxima barra. Escrevi-o utilizando a tangente, a relação da diferença de preço em pips para o número de barras entre os fenos sobre os quais a linha é traçada. Correspondentemente, é a tangente do ângulo da segunda linha em baixo. E depois uso a tangente para encontrar o número de pontos na barra seguinte, ou seja, uso a fórmula inversa com o valor alterado de um cathetus (o número de barras). Obtemos o valor do preço no ponto testado destas linhas. E, consequentemente, se o valor do preço da barra recta for inferior, a travessia ocorreu.
Mas até agora não consigo encontrar este indicador.
...
Ou talvez alguém tenha um pronto a fazer nos arquivos?
Kim afixou uma função. A função devolve o preço do ponto do raio traçado da linha à direita.
x1 - barra da primeira coordenada de linha, y1 - preço da primeira coordenada de linha. x2 - barra da segunda coordenada de linha, y2 - preço da segunda coordenada de linha, x - barra para a qual o preço é devolvido.
Pode encontrar os preços para cada uma das duas linhas e ver se se sobrepõem...
Escrevi aqui uma espécie de..., algo conta e é desenhado, mas não em todos os cruzamentos. Há algo de errado com a minha escrita. Não compreendo o que é.
Muito obrigado Alexey e Artem pela vossa atenção à minha pergunta!
Escrevi aqui uma espécie de..., algo conta e é desenhado, mas não em todos os cruzamentos. Há algo de errado com a minha escrita. Não sei o que é.
Neste momento, não consigo compreender nada na programação, hoje é o aniversário da minha amada esposa. Tem 18 anos e 384 meses de idade.
Mas!!!! Note-se que o cruzamento das linhas pode acontecer IN ou OUT das barras, e o preço (coordenada Y) só pode ser obtido na barra. Antes ou depois, mas o ponto de cruzamento nem sempre pode ser determinado. Eu diria que isso é raro. Considerando o acima exposto, reveja o seu código com isto em mente, talvez funcione.
Alexey Viktorov 2015.12.12 17:33 # RU
Ela fez 18 anos.
Por favor, informe que tipo de comandos devem ser inseridos no Expert Advisor para que este corrija automaticamente os takeprofits já definidos nas posições em aberto quando os recalcular. Ou talvez haja um guião que corrige todas as paragens do último set?
Aconselhar como adicionar código para que no testador de estratégias se possa alterar os pesos dos padrões. m_pattern_0(90) substitui as variáveis de entrada
Não sou muito bom com o OOP, recebo erros" função demembro não definida" ou o código simplesmente não funciona.
Pergunta semelhante não respondida aqui https://www.mql5.com/ru/forum/13484
p.s.: Com o CiCustom posso mudar os pesos dos modelos, mas com indicadores padrão que têm classes padrão (como CSignalEnvelopes, etc.) onde estão os métodos para fixar valores para cada modelo, mas ainda não estão disponíveis noWizard?
Ou talvez já tenha sido sugerido algures?
Alguma coisa será carregada a partir do site MetaQuotes e obtenho a seguinte imagem:
Início : Base de dados 2049/12358 registos.
A penúltima é de 17.10.2014, a última é de 14.07.1993.
Onde estão os que faltam?