Discussão do artigo "Guia passo a passo para iniciantes para escrever um Expert Advisor no MQL5" - página 4

 
Stacy:
Estou muito grato por este artigo, que me ajudou muito. Depois de escrever os códigos para meu EA, pressionei o botão de depuração e fui informado de que havia 10 erros. Em seu artigo não há nenhuma informação para corrigir esses erros. Então, como faço para resolver esse problema? Por favor, me responda o mais rápido possível.

Oi Stacy,

Obrigado por seus elogios, como você disse, a correção de alguns dos erros de código não foi discutida no artigo, no entanto, outro artigo será publicado em breve, explicando como resolver erros de código em detalhes.

É só aguardar.

Obrigado

Samuel.

 

Olá a todos!

sou iniciante e estou tentando escrever um E.A. seguindo o guia, mas ele não faz ordens de compra ou venda.

Meu algoritmo é usar 2 ma (6 e 12) e 1 rsi (14), assim:


bool Buy_Condition_1 = (maVal_fast[0]<maVal_slow[0]) && (maVal_fast[1] > maVal_slow[1]);

bool Buy_Condition_2 = (rsiVal[0] < Pereprod);

if(Buy_Condition_1 && Buy_Condition_2)

{

// blá...blá...

mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // último preço de venda

mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Stop Loss

mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit
mrequest.volume = Lot;// número de lotes a serem negociados

mrequest.type = ORDER_TYPE_BUY;

// .............


}

mas ele não entra no código do segmento acima. portanto, não é possível automatizar a negociação.

Preciso de ajuda :(.

Eu uso PRICE_MEDIAN em vez de PRICE_CLOSE (não sei as diferenças entre eles).

Obrigado.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

hi everyone!

i am a beginer and i am trying to write an E.A follow the guide but it did not make sell or buy order.

Hi,

Você pode disponibilizar seu código para que possamos ver onde está o problema?

 

Мы решили хранить значения Stop Loss и Take Profit в определенных ранее переменных STP и TKP. Почему мы это сделали?

Isso é feito porque os valores dos parâmetros de entrada não podem ser modificados, eles são somente leitura.

Precisamos ter certeza de que nosso Expert Advisor funcionará corretamente com todas as corretoras. Para determinar a precisão do preço da cotação pelo símbolo atual do gráfico, você pode usar.

Uma "abordagem" incrível é usada por programadores respeitados e experientes para "resolver o problema" do símbolo de 5 dígitos. E agora essa "abordagem" também é cultivada entre os iniciantes, na literatura educacional, podemos dizer.

A "abordagem" dada pelo autor anula completamente toda a vantagem do 5 dígitos. Em vez de explicar a um iniciante que a introdução de uma cotação de 5 dígitos torna possível definir, por exemplo, um take profit não de 10 pips, mas de 10,5. E também explicar que, ao usar um Expert Advisor com uma cotação de 5 dígitos, é necessário especificar o take profit não em 10 pips, mas em 100. Em vez dessas explicações, são introduzidas strings no código do programa que, programaticamente, impossibilitam o aproveitamento das cotações de 5 dígitos.

"Precisamos ter certeza de que nosso EA funcionará corretamente com todas as corretoras". Bem, temos certeza, e depois? Como usar a vantagem das cotações de 5 dígitos agora, se programaticamente o Expert Advisor foi "condenado a funcionar corretamente".

[Excluído]  
abolk:

Uma "abordagem" incrível é usada por programadores respeitados e experientes para "resolver o problema" dos 5 dígitos. E agora essa "abordagem" também é cultivada entre os iniciantes, na literatura educacional, podemos dizer.

A "abordagem" dada pelo autor anula completamente toda a vantagem dos 5 dígitos. Em vez de explicar a um iniciante que a introdução de uma cotação de 5 dígitos torna possível definir, por exemplo, um take profit não de 10 pips, mas de 10,5. E também explicar que, ao usar um Expert Advisor com uma cotação de 5 dígitos, é necessário especificar o take profit não em 10 pips, mas em 100. Em vez de tais explicações, são introduzidas linhas no código do programa que, programaticamente, não possibilitam o uso das vantagens das cotações de 5 dígitos.

"Precisamos ter certeza de que nosso EA funcionará corretamente com todas as corretoras". Bem, temos certeza, e depois? Como podemos usar a vantagem das cotações de 5 dígitos agora, se o Expert Advisor foi programaticamente "condenado a funcionar corretamente".

10,5 é outro argumento :)

E a padronização em 4 dígitos é bastante compreensível, se considerarmos a necessidade de trabalho universal em contas com precisão diferente.

Talvez, se todas as corretoras usarem contas com 5 dígitos, esse processamento não seja necessário (embora, para a universalidade do código, a presença desse bloco não seja prejudicial), na minha opinião.

Mas não consigo entender como isso impede o uso das vantagens do quinto dígito.

A precisão desse bloco permite que você use o primeiro ponto de quatro dígitos (condicionalmente "padrão"); em termos de cinco dígitos, serão 10 pips.

PS

Acho que a maioria das corretoras não permitirá o uso de um valor menor. Mesmo que permitam e que seja necessário, será possível sair da situação (mesmo aplicando valores estranhos como 0,1-0,9).

 
Interesting:

10,5 ainda é um argumento :)

E a padronização em 4 dígitos é bastante compreensível, se considerarmos a necessidade de trabalho universal em contas com precisão diferente.

Talvez, se todas as corretoras usarem contas com 5 dígitos, esse processamento não seja necessário (embora, para a universalidade do código, a presença desse bloco não seja prejudicial), na minha opinião.

Mas não consigo entender como isso impede o uso das vantagens do quinto dígito.

A precisão desse bloco permite usar 1 ponto de quatro dígitos (condicionalmente "padrão"); em termos de cinco dígitos, serão 10 pips.

PS

Acho que a maioria das corretoras não permitirá o uso de um valor menor. Mesmo que o façam e seja necessário, será possível sair da situação (mesmo aplicando estranhezas como 0,1-0,9).

Com 4 dígitos , o preço muda em 0,0001, com 5 dígitos, muda em 0,00001.

Não há possibilidade de fechar a compra após 10,5 pontos padrão em um preço de 4 dígitos, mas em um preço de 5 dígitos existe essa possibilidade.

Se o bloco acima for usado programaticamente, ao usar um Expert Advisor em um símbolo de 5 dígitos, não haverá possibilidade de alterar, por exemplo, o Take Stop em 10,5 pontos padrão. Isso é importante para os cambistas.

Para que o Expert Advisor funcione corretamente em 4 e 5 dígitos , é necessário levar em conta o sinal das cotações durante o arredondamento e, nos parâmetros de entrada, ao definir, por exemplo, o take, levar em conta manualmente que 10 pontos padrão são escritos como 100.

Caso contrário, se você usar esses blocos, ao mudar de k5 dígitos para 4 dígitos, o que terá de dividir?

Esses são parâmetros de entrada, por que fazer operações de conversão "estranhas" com eles?

 
abolk:

No de 4 dígitos, não há possibilidade de fechar a compra após 10,5 pips padrão, mas no de 5 dígitos há essa possibilidade.

Você opera? Ou está apenas tentando teorizar?

Dificilmente consigo imaginar um EA para o qual alterar o TP em 0,5 ponto afetará muito os resultados. Para 99% dos Expert Advisors, é mais fácil e mais conveniente especificar todos os valores em pontos de 4 dígitos. E não faz sentido descrever o 1% restante em artigos de educação geral.

[Excluído]  
komposter:

Você está negociando? Ou quer apenas teorizar?

Dificilmente consigo imaginar um EA para o qual alterar o TP em 0,5 ponto teria um forte impacto nos resultados. Para 99% dos Expert Advisors, é mais fácil e conveniente especificar todos os valores em pontos de 4 dígitos. E para o 1% restante, não faz sentido descrevê-los em artigos de educação geral.

+1.

Não se trata de qual precisão usar para negociar, mas de como esses 10,5 pips soarão e como isso confundirá a todos (especialmente os operadores iniciantes).

Um pip é, por definição, a menor unidade de alteração de preço. Talvez eu esteja errado?

E é improvável que se encontrem EAs negociando com TP e SL de 5 pontos de cinco dígitos (0,5 pontos padrão) na vida real.

Eu até definiria o número de tais Expert Advisors como 0,1-0,01% do número total.

PS

Os cálculos internos baseados nos resultados das operações de negociação não são levados em conta aqui (todos podem arredondar para a precisão necessária).



 
abolk:

A "abordagem" dada pelo autor anula completamente todas as vantagens da cotação de 5 dígitos. Em vez de explicar a um iniciante que a introdução de uma cotação de 5 dígitos torna possível definir, por exemplo, o take profit não como 10 pips, mas como 10,5. E também explicar que, ao usar um Expert Advisor com uma cotação de 5 dígitos, é necessário especificar o take profit não em 10 pips, mas em 100. Em vez de tais explicações, são introduzidas linhas no código do programa que, programaticamente, não permitem o uso das vantagens das cotações de 5 dígitos.

Apoio totalmente o autor desse comentário.

Aqueles que precisarem arredondarão para o terceiro dígito. Mas é um erro grave fazer isso em um caso geral.

Quanto maior a precisão, melhor, e não vale a pena anulá-la para todos por causa de algumas visões puramente subjetivas de uso prático.

P.S. No caso geral, o SL e o TP não são definidos em valores absolutos (como é aceito em todos os lugares), mas em valores relativos. Então, os problemas de pips, 5 sinais, pips-dólares e outras besteiras rebuscadas desaparecem por si mesmos.

 

abolk, hrenfx, sobre o que, de fato, é a discussão? Vamos ler atentamente o título do artigo: "... O artigo justifica plenamente seu propósito, tanto no título quanto no conteúdo. Acredite em mim, para os iniciantes não faz diferença a precisão do arredondamento do especialista, a abordagem principal é: "só precisamos lidar com a escrita do EA ". Para mim, pessoalmente, como iniciante, o truque do "arredondamento" para 4 dígitos (embora em outro artigo) acabou sendo muito útil, revelando uma das técnicas de programação. E, com a experiência, especialistas altamente qualificados poderão decidir com que precisão realizar cálculos/negociações, e o artigo em discussão não os atrapalhará de forma alguma. Esse artigo não atrapalhou você de forma alguma :). Assim como os outros: "quando chegarem ao seu nível, eles descobrirão por si mesmos".

Gostaria de chamar sua atenção mais uma vez: o autor do artigo não impõe sua visão da questão e não discute o valor do uso de 4 ou 5 dígitos. O autor apenas ajuda os iniciantes a dominar as etapas iniciais da programação em MQL5, usando determinadas técnicas de programação.