Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1925
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
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.
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
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 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.
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:
Alterar o código, traçar linhas e nada mais.
Obrigado!
Sua categoria de produto - Especialistas, o tipo de programa correto para ela - Especialista" Mas é um Especialista! Onde eu cavo? Estou lutando há 2 dias!
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().
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
Escavar em direção aos manipuladores padrão.
Tenho certeza que você já começou() lá, não OnStart().
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()