Versão beta do livro online sobre programação MQL4 - por Sergey Kovalev (SK.) - página 9

 
Climber:
Este grande artigo da SK "Order Bookings in a Large Program" sobre contabilidade complexa de pedidos.
Honestamente, estou me perguntando se tudo isso é um esquema.
Não é um artifício, mas você tem que manter a mente aberta. Leia os posts de Korey que começam nesta página para mais clareza. E dê uma olhada no artigo Meu primeiro "graal".
 
Eu já li sobre o graal antes :)
Mas ao contrário do personagem descrito no artigo sobre o graal, eu não penso como ele: "Só eu!". Acho que há algo errado aqui, ou é apenas sorte neste momento. Embora, olhando para os resultados do campeonato, você pode ver um resultado muito melhor em três meses, o que basicamente significa que nada é impossível. E ainda assim, não posso deixar de me perguntar quem dará um desenvolvimento tão "rápido" no mundo real?
 
Climber:
E ainda se pergunta quem vai permitir um desenvolvimento tão "rápido" no mundo real?

É uma pergunta simples. E a resposta é óbvia: aquele que trabalha honestamente (os corretores não são discutidos aqui).

A questão mais difícil é se o Expert Advisor está produzindo resultados estáveis e altos? Ou é apenas uma história adequada ou um acaso?

 
SK. писал (а):
A questão mais difícil é se o assessor está realmente dando consistência,
altos resultados? Ou é apenas um ajuste com a história ou um acaso?
Bem, eu ainda não tenho um, mas se eu tivesse um, acho que isso me ajudaria muito a entender. Eu também estou inclinado ao acaso. Esse sou eu manualmente na demonstração, por enquanto.

Acabei de ter resultados muito mais modestos antes. E em geral, enquanto estudava seu livro (por quase um mês) e todo o idioma em geral, aprendi muito sobre comércio que eu não conhecia e não suspeitava durante 2 anos de estudo de Forex. Estou mesmo agora pensando como eu poderia ganhar algo sem saber tanto)) Acho que mesmo agora eu poderia ganhar tanto sem saber nada. É que quando tentei negociar pela primeira vez na demonstração, tive a sensação de que não poderia ganhar mais do que 300 dólares por mês. O que também não é ruim, especialmente levando em conta minha alergia a patrões de todos os tipos:) Eu costumava escrever meu primeiro Expert Advisor em meu blog, e nunca ouvi falar dele.

Escrevi meu primeiro assessor dentro de uma semana após a primeira leitura do livro. Mas eu não o escrevi, eu o copiei, substituindo apenas o bloco por critérios comerciais, e o resto foi tirado do exemplo da EA usando MA. Mas quando o escrevi, eu só queria saber o que fazer se o fizesse desta maneira. Quero dizer simplesmente usar as capacidades do testador sem ter que verificá-lo manualmente por muito tempo. Não tinha nenhuma idéia como no artigo sobre o graal. Estou mais "down-to-earth" a este respeito:) Estou satisfeito com o resultado, pois perdi completamente meu depósito (uma variante a menos). A idéia era simples como o inferno, então foi um pecado não verificá-la. Mas a última estratégia é mais difícil (para mim) de descrever usando ferramentas MQL4, portanto, tenho que usar minhas próprias mãos. Mas seus resultados em modo manual requerem um maior desenvolvimento do Expert Advisor. Por isso, estou tentando, devagar, mas lentamente, escrevê-lo.
 
Climber:
Eu acabei de ter resultados muito mais modestos antes. E em geral, enquanto estudava seu livro (quase um mês) e todo o idioma em geral, aprendi muito sobre negociação que não conhecia e não suspeitava durante meus 2 anos de conhecimento sobre forex. Estou mesmo agora pensando como poderia ganhar algo, sem saber muito...).
Mas a última estratégia é mais complicada (para mim) em termos de descrição por meio da MQL4, portanto tenho que trabalhar manualmente. Mas seus resultados em modo manual só precisam de um maior desenvolvimento do Expert Advisor. Portanto, estou tentando, lentamente, mas escrevendo.
Na minha opinião, a mão-de-obra empregada para a criação de uma estratégia robusta e lucrativa é cerca de duas ordens de grandeza (100 vezes) maior do que a mão-de-obra empregada para o aprendizado do idioma. Em essência, a programação é apenas uma ferramenta técnica, em grande parte previsível e, portanto, sujeita à vontade do criador da estratégia. Mas, para ser justo, também deve ser dito que mergulhando nos detalhes da programação, um comerciante começa a olhar para todo o fenômeno da estratégia de comércio de mercado com uma visão mais clara. Neste sentido, é difícil superestimar a prática da programação. Portanto, os desenvolvedores que decidiram confiar na auto-comercialização tiveram razão uma centena de vezes.
 

para SK

Variáveis, .

Você tem o seguinte escrito:

"Todas as matrizes são inerentemente estáticas, ou seja, têm uma forma estática, mesmo que isso não seja explicitamente especificado durante a inicialização".

No entanto

Suponha um indicador, a sub-rotina de chamada tem uma matriz:

1)

dupla soma[]; // a função padrão .................................... .......... é chamada

i=ArrayMinimum(summ,iter,0); // Erro na segunda chamada: <Posição inicial 0 para ArrayMinimum function>

2) variante do erro

soma estática dupla[];

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

i=ArrayMinimum(summ,iter,0); // O mesmo erro na segunda chamada: <Posição inicial 0 para ArrayMinimum function>

3) variante livre de erros

soma dupla[1000];

..............................................

i=ArrayMinimum(summ,iter,0); // Execução normal

4) variante livre de erros

soma estática dupla[1000];

..............................................

i=ArrayMinimum(summ,iter,0); // Execução normal



Dos exemplos 1 e 2, conclui-se que as matrizes são alocadas de forma dinâmica.

O exemplo 2 sugere que uma matriz sem uma dimensão não é inicializada como uma matriz estática (o que é óbvio), mas isso não aparece em erros de compilação ((

O exemplo 3 4 implica que apenas as matrizes predefinidas têm alocação estática .

Curiosamente, o sistema de execução captura o erro e determina a partir dos exemplos 1 e 2, indicando um sistema terminal bem pensado em tempo real . Isto é, a matriz se comporta como um objeto. Kudos para os desenvolvedores.

No entanto, nem tudo está indo tão bem com variáveis simples

instik(int &t) dupla // esta função muda a variável no programa de chamada

{

t++;

}

Esta chamada conta em cada tique se

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

estática int tik;


instik(tik);

Imprimir (" tick=",tik);

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

E isto não conta porque a alocação de memória é dinâmica, e o endereço vinculado na segunda chamada não corresponde.

................

int tik;


instik(tik);

Imprimir (" tick=",tik);

// instik subroutine dá incremento a byte desconhecido, mas terminal não trava!!!! Mais uma vez, parabéns aos desenvolvedores.

 
SK. писал (а):

Mas para ser justo
também deve ser dito que, entrando nos detalhes da programação
um comerciante começa a olhar para todo o fenômeno da estratégia de mercado e de comércio
com uma visão mais clara. E à medida que ganham experiência, eles peneiram
E à medida que a experiência é acumulada, linhas erradas de pensamento são eliminadas e linhas de pensamento promissoras são identificadas.
Concordo 100%. No início eu até fiquei surpreso, acho que estou tentando aprender programação e aprendi mais sobre comércio do que sabia antes. Portanto, por enquanto vou ganhar experiência:)
 
Korey:

para SK

Variáveis, variáveis estáticas.

...


Acho que você está ignorando o fato de que funções especiais são executadas novamente a cada tique. As variáveis estáticas retêm seus valores e não são inicializadas, enquanto as variáveis não estáticas são inicializadas de acordo com o código. Em seu código, a variável inteira tik é inicializada a zero por padrão.

//----------------------------------------------------------------------------------
int start()
   {
   int tik;                // Инициализация нолём на каждом тике
   instik(tik);            // Вызов функции, передача параметра по ссылке
   Alert (" tick=",tik);   // Всё время выводит 1, как и ожидается
   return;
   }
//----------------------------------------------------------------------------------
double instik(int &t)      // Функция изменяет переменную в вызывающей программе
   {                       // При каждом обращении заходит 0
   t++;                    // Увеличение значения на 1, как и заказано, т.е.
   }                       // ..при каждом исполнении уходит 1
//----------------------------------------------------------------------------------

Em instik() tudo acontece como previsto. No início(), no momento de Alert(), o valor da variável tik é 1, que é o que Alert() produz.

Mas esta não é toda a verdade. Como a variável tik não é declarada como estática, seu valor não é salvo. Ou seja, na próxima chamada para execução da função especial start() a variável tik será inicializada com zero novamente. E tudo começa tudo de novo. Portanto, o Alerta sai com segurança, um após o outro.

 
Parabéns a Sergey Kovalev!

O lançamento do tutorial de linguagem MQL4 está agendado para 1º de fevereiro e já está integrado ao website MQL4.community. A tradução para o inglês está bem encaminhada.
 
Sergei!
Como implementar no Expert Advisor a possibilidade de fechar um pedido - por contra-ordem? Não encontrei isso no tutorial...
Razão: