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

 
Sergey Gritsay:

Há muitos exemplos na CodeBase, procure por Conselheiros Especializados em pedidos pendentes e veja como o código está escrito.

Procurei naCodeBase por cerca de uma hora e não encontrei nada compreensível. É muito complicado para mim. Os códigos são muito grandes e incompreensíveis para mim, enquanto tudo o que eu preciso é de um par de códigos de 4-6 linhas. Obrigado pela resposta, mas não se encaixa.
 
maxon777:

Procurei uma amostra nauma ordem pendente quando tiver atingido qualquer valor (isto é, se o preço for 0,7777, então abra uma ordem pendente)

2) Feche a ordem (ordem de mercado) quando ela tiver atingido qualquer valor (isto é, se o preço for 0,6666, então feche a ordem).

Obter uma resposta a 4-6 linhas de código?

Você é um daqueles clientes que escrevem: "O que há para fazer? Basta um par de linhas... O que é uma centena de libras"?

Vamos ser claros:

É preciso primeiro determinar que o preço chegou a 0,7777. Chegou ao topo? Fundo? Há problema se o tick anterior foi, por exemplo, 0,7776 e o tick atual é 0,7778 ? Neste caso, o preço não será igual ao valor de 0,7777. Portanto, você deve verificar o valor passado e o atual para a interseção do valor necessário. De forma correspondente, você deve armazenar o valor do tick anterior e conhecer o valor do tick atual. Isso significa - você precisa de uma função para obter o valor do tick e armazenar seu valor, para que você tenha algo para compará-lo com o posterior - três preços: o tick anterior, o tick atual e o próprio preço cruzado.

Além disso. Precisamos saber em que direção o preço cruzará o valor necessário e, correspondentemente, precisamos definir o tipo de ordem pendente necessária ao preço necessário.

Para defini-lo, precisamos calcular o preço definido a partir do preço atual, comparar a distância obtida do ajuste da ordem pendente com o valor do StopLevel e se a distância obtida for inferior a esse valor, então: a) Corrigir a distância de ajuste da ordem para não chegar ao erro 130 e definir a ordem ou b) esperar até que a distância de ajuste exceda o StopLevel (com o spread flutuante que também devemos receber em cada tick) e ver se o preço já cruzou o nível predefinido e se está no valor correto - ou seja, se o StopLevel já estiver definido, podemos definir a ordem.е., ele se afastou daquele nível para fazer um pedido ou o trem já partiu.

Você também precisa calcular a parada e tomar valores de uma ordem pendente que não devem ser inferiores ao StopLevel (corrigi-los se necessário).
Se todas as verificações tiverem sido aprovadas, uma ordem deve ser enviada ao servidor para definir uma ordem pendente, obter uma resposta - se a resposta contiver um erro, processá-la (outra função é necessária)...

Isto é para ordens pendentes.

É aproximadamente o mesmo para fechar uma posição - para identificar a travessia, enviar uma ordem comercial e lidar com a resposta do servidor no caso de um erro.


Se você conseguir encaixar em 4-6 linhas para tudo isso, então ...você receberá uma medalha no armazém... ;)

 
Sinto que depois desta explicação há menos um programador novato ))))
 
Andrey Koldorkin:
Sinto que depois desta explicação há menos um programador novato ))))
 

Pessoal, o que o (.e) em valuta é, por favor, explique

 
a seção de código que você precisa é uma parada confiável de múltiplas moedas que começa com um ponto de equilíbrio definido e um passo atrás em relação ao preço
 
Vitaliy29:
você precisa de uma seção de código - uma parada confiável de múltiplas moedas que comece com um ponto de equilíbrio definido e um travessão definido do preço

Confira este aqui, http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=62

Автоматизация торговли на финансовых рынках - Скачать e-Trailing2.rar
  • www.kimiv.ru
Оглавление файлового архива  Разработки на MQL4 Советники   Новая улучшенная бесплатная версия "кимовского трала". Добавлен параметр Magic, позволяющий более гибко отбирать сопровождаемые позиции, а также разделены параметры трала для покупок и продаж. Кроме того, вместо параметра ProfitTrailing теперь используется TrailingStart. Это почти то...
 
Artyom Trishkin:

Você quer responder a esta pergunta:

1) abrir uma ordem pendente quando tiver atingido qualquer valor (isto é, se o preço for 0,7777, então abra uma ordem pendente)

2) Feche a ordem (ordem de mercado) quando ela tiver atingido qualquer valor (isto é, se o preço for 0,6666, então feche a ordem).

Obter uma resposta a 4-6 linhas de código?

Você é um daqueles clientes que escrevem: "O que há para fazer? Basta um par de linhas... O que é uma centena de libras"?

Vamos ser claros:

É preciso primeiro determinar que o preço chegou a 0,7777. Chegou ao topo? Fundo? Não há problema se o tick anterior foi, por exemplo, 0,7776 e o tick atual se tornou 0,7778 ? Neste caso, o preço não será igual ao valor de 0,7777. Portanto, você deve verificar o valor passado e o atual para a interseção do valor necessário. De forma correspondente, você deve armazenar o valor do tick anterior e conhecer o valor do tick atual. Isso significa - você precisa de uma função para obter o valor do tick e armazenar seu valor, para que você tenha algo para compará-lo com o posterior - três preços: o tick anterior, o tick atual e o próprio preço cruzado.

Além disso. Precisamos saber em que direção o preço cruzará o valor necessário e, correspondentemente, precisamos definir o tipo de ordem pendente necessária ao preço necessário.

Para defini-lo, precisamos calcular o preço definido a partir do preço atual, comparar a distância obtida da configuração da ordem pendente com o valor do StopLevel e se a distância obtida for inferior a esse valor, então: a) Corrigir a distância de configuração da ordem para não chegar ao erro 130 e definir a ordem ou b) esperar até que a distância de configuração ultrapasse o StopLevel (com o spread flutuante que também devemos receber em cada tick) e ver se o preço já ultrapassa o nível predefinido e se está no valor correto - ou seja, se o nível de parada estiver definido, podemos definir a ordem.е., ele se afastou daquele nível para fazer um pedido ou o trem já partiu.

Você também precisa calcular os valores Stop and Take para a ordem pendente que, por sua vez, não deve ser inferior ao Nível Stop (corrigi-los, se necessário).
Se todas as verificações tiverem sido aprovadas, uma ordem deve ser enviada ao servidor para definir uma ordem pendente, obter uma resposta - se a resposta contiver um erro, processá-la (outra função é necessária)...

Isto é para ordens pendentes.

É muito semelhante para o fechamento de uma posição - identificar a travessia, enviar uma ordem comercial e lidar com a resposta do servidor no caso de um erro.


Se você conseguir encaixar em 4-6 linhas para tudo isso, então ...você receberá uma medalha no armazém... ;)

"Você é o tipo de cliente que diz: "O que há para fazer? São apenas algumas linhas... O que é uma centena de libras"? Não, eu não sou uma dessas pessoas, e não entendo porque você pensa que sou um cliente. Quero aprender este programa porque tenho idéias sobre o Expert Advisor, os problemas em sua implementação são apenas técnicos (e não estou contestando que os problemas são muito grandes), mas não estou tentando dizer algo como "me faça todo o software e que ele funcione apenas com lucro". Pelo contrário, eu comecei com o básico e quero escrever meu primeiro Expert Advisor. Também escrevi que queria um exemplo muito simples, sem levar em conta todos os detalhes (apesar de entender que são muito importantes), mas tenho que começar em algum lugar. Eu sabia que seria doloroso para um profissional ver o que estou pedindo, mas não pude evitar, desde que seja tudo o que eu saiba. Pensei que poderia escrever tal código com a ajuda do operador e da função OrderSend (OrderClose) e algumas outras coisas, o que não posso fazer. Você escreveu muitos termos complexos e assim me disse que sou incapaz de fazer nada e sou um idiota na programação, mas sei disso de qualquer forma. Espero que você não pense que sou um homem arrogante e entenda que eu só quero continuar aprendendo. Mas você também está certo, espero que tenha sido encontrado um compromisso.
 
maxon777:
"Você é o tipo de cliente que diz: "O que há para fazer? São apenas algumas linhas... O que é uma centena de libras"? Não, eu não sou uma dessas pessoas e não entendo porque você pensa que sou um cliente. Quero aprender este programa porque tenho idéias sobre o Expert Advisor, os problemas em sua implementação são apenas técnicos (e não estou contestando que os problemas são muito grandes), mas não estou tentando dizer algo como "me faça todo o software e que ele funcione apenas com lucro". Pelo contrário, eu comecei com o básico e quero escrever meu primeiro Expert Advisor. Também escrevi que queria um exemplo muito simples, sem levar em conta todos os detalhes (apesar de entender que são muito importantes), mas tenho que começar em algum lugar. Eu sabia que seria doloroso para um profissional ver o que estou pedindo, mas não pude evitar, desde que seja tudo o que eu saiba. Pensei que poderia escrever tal código com a ajuda do operador e da função OrderSend (OrderClose) e algumas outras coisas, o que não posso fazer. Você escreveu muitos termos complexos e assim me disse que sou incapaz de fazer nada e sou um idiota na programação, mas sei disso de qualquer forma. Espero que você não pense que sou um homem arrogante e entenda que eu só quero continuar aprendendo. Mas você também está certo, espero que tenha sido encontrado um compromisso.

Ninguém o chamou de "chupador", isso não é verdade. Mas também 4-6 linhas de código, você sabe, causam perplexidade - porque se uma pessoa aprende algo, ela já deve estar tentando algo, já tentou escrever algo, e vê claramente que 4-6 linhas não cabem nela.

Mostre-nos o que você tentou fazer - vamos tentar entender.

Posso propor uma versão alternativa, simplificada - não procure uma passagem de nível por carrapatos, e procure por MA(1) - então o MA na barra 1 e MA na barra 0 servirá como indicador da passagem de nível necessária.

 
Sahet.Sh:

Pessoal, o que o (.e) em valuta é, por favor, explique

Esta é uma pergunta para o corretor, sinta-se à vontade para contatar o suporte. Só ele sabe exatamente o que seus sufixos .e significam. A decisão é dele. Em geral, sufixos (também prefixos) em nomes de pares de moedas e outros instrumentos podem significar qualquer coisa: ou seja - execução instantânea, m - execução de mercado, ponto - cinco dígitos em cotação e comissão, _OP - instrumento para negociação de opções binárias,... Mas é claro, é apenas uma decisão do corretor, ele é a autoridade final para descobrir o significado das designações que introduziu.
Razão: