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

 
Vitaly Muzichenko #:

Ele pensou por mais de uma semana e foi decidido.

Originalmente era diferente, foi o que foi entregue, mas após uma semana de pausa ele relatou as inovações. Entendo que a tarefa foi concluída, mas de alguma forma não me parece correto deixar o cliente, mesmo que não fizesse parte do ToR original.

Meu pedido é válido!

Acalmar Vitaly, o pedido de quê?

para fazer edições para a EA ? não há código e em nenhum lugar para fazer edições. E não é muito correto corrigir a ordem de freelance nesta linha. Em geral, nenhum dos lados

void OnStopLoss() {

    // some code placed here

}

é pouco provável que ajude.

 
Maxim Kuznetsov #:

Acalme-se Vitaly, qual é o pedido?

Para fazer edições para a EA? Não há código e em nenhum lugar para fazer edições. E não é muito correto corrigir a ordem de freelance nesta linha. Em geral, nenhum dos lados

void OnStopLoss() {

    // some code placed here

}

não é de grande ajuda.

Não é realmente uma EA, uma rede de arrasto separada que fica pendurada em um único gráfico e mantém um registro de todos os símbolos.

O código é muito inchado

 
Vitaly Muzichenko #:

Há uma posição e um stopploss nela.

Nas configurações, a rede de arrasto é de 30. Assim, mostre a linha no nível em que a rede de arrasto será acionada, e assim todas as 7 linhas: 30-60-90-120-120-150-180-210, como a progressão.

Passando 30 e chegando à linha, a rede de arrasto se move para o nível de preço aberto, ao chegar a 60, se move para +30 do preço aberto, ou seja, para o nível onde a primeira parada foi acionada, etc.

Presumo que queira controlar as linhas do gráfico, mas isto é mais complicado, portanto, precisa ser simplificado.

Alternativamente, colocar 7 parâmetros para os níveis nas configurações.

P.S. Desculpe pela longa resposta, estava perdendo a internet.

7 parâmetros não é uma opção) 7 nomes de linhas horizontais nos parâmetros que irá desenhar e nomear. E nós dançaremos a partir deles. E se os parâmetros, a gama de movimento de preços e o número de níveis. Calcular e sacar. Bem, quando o nível dispara, ele deve traçar a linha sl e se o sl coincide com o nível de preço, ele deve mudar sua cor.
 
Valeriy Yastremskiy #:
7 parâmetros não é uma opção) 7 nomes de linhas horizontais nos parâmetros que irá desenhar e nomear. E nós devemos proceder a partir deles. E se os parâmetros, a gama de movimento de preços e o número de níveis. Calcular e sacar. Bem, quando o nível dispara, ele deve traçar a linha sl e se o sl coincide com o nível de preço, ele deve mudar sua cor.

Você precisa de um algoritmo que desenhe linhas a preços calculados.

Quando todas as posições estiverem fechadas, elas devem ser apagadas.

 
Valeriy Yastremskiy #:
7 parâmetros não é uma opção) 7 nomes de linhas horizontais nos parâmetros que irá desenhar e nomear. E nós devemos dançar a partir deles. Se parâmetros, o intervalo de movimento de preços e o número de níveis. Calcular e sacar. Bem, quando o nível dispara, ele deve traçar a linha sl e se o sl coincide com o nível de preço, ele deve mudar sua cor.

Esclarecimento:

В настройках трал 30. Значит показать линии на уровнях, где сработают тралы, и так все 7 линий: 30-60-90-120-150-180-210, типа прогрессии.

Прошли 30 и достигли линии, трал переводит стопы на уровень цены открытия, по достижении 60, переводит стопы на +30 от цены открытия, то есть на уровень, где срабатывал первый стоп и тд.

Alterar o código, traçar linhas e nada mais.


Obrigado!

 
Boa tarde. Aconselhar bem um novato, tentando carregar um especialista no mercado. Dá erro "Erro! Tipo errado de arquivo carregado, .....ex4 - Script.
Sua categoria de produto - Especialistas, o tipo de programa correto para ela - Especialista" Mas é um Especialista! Onde eu cavo? Estou lutando há 2 dias!
 
Vycheslav Vyrikov #:
Boa tarde. Bem, você pode aconselhar um novato, eu estou tentando carregar um Expert Advisor para o mercado. Dá erro "Erro! Tipo de arquivo carregado incorreto, .....ex4 - Script.
Sua categoria de produto - Especialistas, o tipo de programa correto para ela - Especialista" Mas é um Especialista! Onde eu cavo? Estou lutando há 2 dias!

Escavar em direção aos manipuladores padrão.

Tenho certeza que você já começou() lá, não OnStart().

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

Você precisa de um algoritmo que desenhe linhas a preços calculados.

Quando todas as posições estiverem fechadas, elas devem ser apagadas.

double sumLots[2]=0,weight[2]=0;

for(int pos=OrdersTotal()-1;pos>=0;pos--) {

   if (! OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) continue;

   // тут всякие прочии фильтры

   DrawOrderLevels(); // нарисовать уровни куда может перекатиться стоп-лосс конкретного ордера

   // расчёт общих позиций

   int type=OrderType();

   sumLots[type]+=OrderLots();

   weight[type]+=OrderLots()*OrderOpenPrice();

}

double avg[3]; // общии позиции

if (sumLots[OP_BUY]!=0) avg[OP_BUY]=weight[OP_BUY]/sumLots[OP_BUY]; 

if (sumLots[OP_SELL]!=0) avg[OP_SELL]=weight[OP_SELL]/sumLots[OP_SELL]; 

// совокупная позиция

int posType; // тип

double posPrice; // цена

double posLots; // объём

if (sumLots[OP_BUY]>sumLots[OP_SELL) { posType=OP_BUY; posPrice=avg[OP_BUY]; posLots=sumLots[OP_BUY]-sumLots[OP_SELL]; }

else { posType=OP_SELL; posPrice=avg[OP_SELL]; posLots=sumLots[OP_SELL]-sumLots[OP_BUY]; }

DrawPriceLevels(OP_BUY,avg[OP_BUY]); // нарисовать уровни суммарной позы в BUY

DrawPriceLevels(OP_SELL,avg[OP_SELL]); // нарисовать уровни суммарной позы в SELL

DrawPriceLevels(posType,posPrice); // уровни общей позиции

Nos nomes dos níveis horizontais, acrescentar o número do bilhete. Às vezes (quando necessário) para verificar - se o bilhete não está no mercado, então todos os níveis com seu nome devem ser removidos

 
Artyom Trishkin #:

Escavar em direção aos manipuladores padrão.

Tenho certeza que você já começou() lá, não OnStart().

Artyom, você já está cansado e começou a fazer imprecisões por conta própria. Para o especialista que Vyacheslav está tentando carregar, a função de manuseio de eventos deve ser OnTick()
 
Alexey Viktorov #:
Artyom, você mesmo se cansou e começou a fazer imprecisões. Para o Expert Advisor que Vyacheslav está tentando carregar, a função de manuseio de eventos deve ser OnTick()

Sim, você está certo. Meu erro. Claro que se tratava da OnTick()

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