Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 759

 
Aleksey Vyazmikin:

Para que serve, em termos de pontos intermediários entre as barras, puramente para a estética?

Não preciso de pontos intermediários, apenas de pontos em barras.

Aleksey Vyazmikin:

Eu criaria um buffer (para a parte superior e inferior do canal) para cada barra, onde colocaria os extremos de todos os círculos na barra, a janela para testes, a julgar pela figura, seria no máximo 10 barras e então criaria este indicador, é claro, as últimas barras podem ter um desenho a mais.

Como eu tiro esses extremos de todos os círculos de uma barra?

 
Você pode traçar uma linha de baixo para cima e fixar um ponto em que ela atinja o primeiro objeto que encontrar?

 
multiplicator:

Você não precisa de pontos intermediários. Apenas pontos na barra.

Mas como devo definir extrema de todos os círculos da barra?

É preciso traduzir os círculos em pixels, aparentemente... e depois é apenas uma questão de técnica.

Naturalmente, você poderia se torcer e percorrer todos os objetos do bar procurando o ponto máximo/mínimo, por que não?

 
multiplicator:

Agora preciso desenhar 2 linhas vermelhas ao longo da borda superior das elipses e ao longo da borda inferior das elipses (como mostrei na figura).



Alguém sabe como fazer isso?

Estudo CCanvas

 
Aleksey Vyazmikin:

Precisamos converter os círculos em pixels.

é possível?

Aleksey Vyazmikin:

Naturalmente, você poderia se torcer e percorrer todos os objetos do bar procurando o ponto máximo/mínimo, por que não?

é possível procurar todos os objetos que caem sobre esta barra?
O que acontece aqui é que círculos de barras vizinhas podem entrar nesta barra e podem formar altos/mínimos.



Talvez devêssemos construir círculos a partir de pequenas linhas, como recomendado aqui. então haverá todos os pontos.
 
Artyom Trishkin:

Estudo CCanvas

É possível definir as coordenadas da intersecção da linha com um objeto gráfico? (como aqui )
 
multiplicator:

Isso é possível?

Você pode passar por todos os objetos que caem sobre esta barra?
A questão é que os círculos das barras vizinhas podem entrar nesta barra e podem formar máximos/minimos.



Posso ter que construir círculos a partir de pequenas linhas, como recomendado.

É possível converter em pixels, não vejo nenhum obstáculo, mas eu mesmo não o fiz.

Eu estava pensando, sua largura é sempre um múltiplo dos tempos dos bares adjacentes, então a variante que eu sugeri originalmente deveria funcionar. Talvez eu não entenda algo, mas tenho todos os dados, porque você mesmo construiu círculos. Talvez seja necessário calcular através de uma proporção, apresentando o tempo como uma fração do raio.

 

A classe CTrade tem dois métodos, PositionOpen e Buy, que se duplicam, mas nenhum deles tem um ajuste de deslizamento.

Por que isso é feito dessa maneira? Até onde eu entendo este parâmetro só pode ser usado através da OrderSend, ou existe uma variante mais simples?

 
psyman:

A classe CTrade tem dois métodos, PositionOpen e Buy, que se duplicam, mas nenhum deles tem um ajuste de deslizamento.

Por que isso é feito dessa maneira? Até onde eu entendo este parâmetro só pode ser usado através da OrderSend, ou existe uma variante mais simples?

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetDeviationInPoints
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetDeviationInPoints
  • www.mql5.com
Стандартная библиотека / Торговые классы / CTrade / SetDeviationInPoints - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
psyman:

A classe CTrade tem dois métodos, PositionOpen e Buy, que se duplicam, mas nenhum deles tem um ajuste de deslizamento.

Por que isso é feito dessa maneira? Tanto quanto sei, este parâmetro só pode ser usado através da OrderSend ou existe uma variante mais simples?

Parece que, antes de enviar um pedido comercial, você define o deslizamento necessário na instância de classe. Ou imediatamente na inicialização da EA - se você não vai alterar o valor do escorregamento permitido de tempos em tempos. Se você quiser alterá-lo antes de enviar o pedido ou após receber o erro, você define um novo deslizamento com este método de classe.

Por que isso é feito ... Bem, você pode adivinhar muitas coisas aqui. Por exemplo, você declara múltiplas instâncias de CTrade e há uma instância diferente para cada personagem. É claro que pode acontecer que para cada símbolo definir seu próprio tamanho de deslizamento permitido - após criar uma instância, você definirá o tamanho de deslizamento necessário para cada símbolo. Isto será suficiente na maioria dos casos.

Razão: