Auto-aprendizagem da linguagem MQL5 a partir do zero - página 69

 
MrBrooklin:

Se o manual de linguagem de programação MQL5 o tivesse escrito assim de imediato:

então não haveria tantas perguntas desnecessárias. Pelo menos, os iniciantes teriam menos perguntas.

Atenciosamente, Vladimir.

Tudo está bem escrito ali. Se não há parênteses, então a declaração de para se referir apenas à expressão seguinte.
Você não é estúpido, tente encontrar alguém na sua idade, que estude programação a partir do zero.
 
Aliaksandr Hryshyn:
Tudo está bem escrito ali. Se não houver parênteses, isso significa que o para operador refere-se apenas à expressão seguinte.
E não diga que ele é estúpido, tente encontrar alguém de sua idade que aprenda a programar do zero.

Vladimir não disse que é burro, ele está tendo dificuldades porque o método expresso de aprendizagem limitado no tempo não é fácil.

Ele pegou as "ferramentas" sem ler e entender as "instruções de uso", e já havia sido informado sobre isso; tendo compreendido a sintaxe, seria muito mais fácil montar o "quebra-cabeça".

E nunca é tarde demais para aprender, se você quiser, há exemplos de defender uma sobremesa ou aprender línguas estrangeiras aos 65 anos, por exemplo...

 
MrBrooklin:

Igor, o desejo de aprender a linguagem MQL5 não desapareceu, pelo contrário, apenas se intensificou. Estou apenas rasgado, porque sou tão burro e não consigo entender coisas simples com este operador de laço

Você não é burro, mas impaciente. Você está tentando aprender "a língua inglesa" com um dicionário - você está tentando colocar palavras estrangeiras nas combinações que você quer, sem considerar que as estruturas lingüísticas podem ser diferentes.

É preciso aprender a sintaxe e o básico da programação em C, mas não será possível escrever nada de útil .... Além deste "misterioso" de declaração, haverá um mal-entendido. por exemplo, o escopo das variáveis? - entender o que é? - Não é difícil, mas você tem que entender o que a máquina vê quando lê seu programa.


não sei que tutorial posso lhe aconselhar. às vezes olho para cima com atenção aquihttps://metanit.com/sharp/tutorial/1.1.php

há também C e C++https://metanit.com/cpp/

Se você usá-lo, você pode pular seções sobre ponteiros e aulas e OOP. Você não precisa aprendê-lo, você só precisa organizar (sistematizar) seus conhecimentos.

 
MrBrooklin:

Igor, o desejo de aprender a linguagem MQL5 não se perde, pelo contrário, ele apenas aumenta. Estou apenas dividido, porque sou tão burro e não consigo entender coisas simples com este operador de laço. O principal é que sem o operador do laço o código funciona perfeitamente, mas com o laço é uma confusão completa. De qualquer forma, vou chegar ao fundo disto. No entanto, tenho muito menos tempo para o auto-estudo desde que o período de quarentena terminou e tenho raros momentos para estudar a língua no trabalho. Na maioria das vezes estudo a língua à noite e à noite.

Preciso resolver 2 tarefas para finalmente escrever o código de Trailing Stop:

  1. Preciso escrever um código com o uso do operador de laço para procurar todas as posições abertas para todos os símbolos, e se não houver nenhuma, então abra uma posição de compra entre as 09:00:00 e 09:01:00, e feche-a à força às 23:50:00, se durante o dia de negociação uma parada de perda não for acionada. Sem o operador de laço, como escrevi antes, tudo funciona perfeitamente. Agora eu quero alcançar o mesmo resultado, mas com o uso de loop.
  2. Escreva 2 funções que determinam a direção da abertura da posição pelo primeiro tique que aparece no horário das 09:00:00 às 09:01:00. Se o primeiro tick for para cima, a posição Comprar deve abrir; se o primeiro tick for para baixo, a posição Vender deve abrir de acordo. Não é uma estratégia, é apenas minha "vontade" de não usar a condição aleatória.
Atenciosamente, Vladimir.
Já está parecendo um pouco um ToS. Este é o objetivo. Agora o algoritmo da solução precisa ser formulado passo a passo
Se algo não estiver claro, por favor, pergunte. Às vezes as coisas simples levam mais tempo do que as complicadas.
 
VVT:

Vladimir não disse que era estúpido, ele está tendo dificuldades porque o método expresso de aprendizagem limitado no tempo não é fácil.

Ele pegou as "ferramentas" sem ler e entender as "instruções de uso", já lhe foi dito que, tendo entendido a sintaxe, será muito mais fácil montar o "quebra-cabeça".

E nunca é tarde demais para estudar, se alguém tivesse o desejo, há exemplos de defender uma sobremesa ou estudar línguas estrangeiras aos 65 anos, por exemplo...

Devemos chamar tudo pelo nome próprio - no momento, sou tão burro quanto uma rolha na programação! Eu não entendo as coisas elementares. Embora, aqui na eletrônica o conhecimento que adquiri na minha juventude, ainda me ajude a reparar, por exemplo, um botão de rádio remoto de uma campainha de porta. No fim de semana passado, usei um multímetro e a lupa do meu avô para encontrar um condensador SMD defeituoso de dimensões microscópicas. Ele mostrava uma falha, curto-circuito ou "koza", como costumava ser chamado pela sigla de curto-circuito. Curto-circuito. Aqui está uma imagem do capacitor SMD "perfurado" com ampliação 4X em um smartphone e posterior processamento em Tinta, pois é um elemento muito microscópico.


Decidiu divagar um pouco e ao menos mostrar algo!

E em relação ao desejo de aprender a linguagem, eu a tenho, bem como uma esperança de dominar o básico da programação.

Cumprimentos, Vladimir

 
Igor Makanu:

não burra, mas impaciente, e você está tentando aprender "a língua inglesa" apenas com um dicionário - você está tentando colocar palavras estrangeiras em combinações que você vê, sem considerar que as construções lingüísticas podem ser diferentes

Você tem que aprender a sintaxe e o básico da programação em C, mas não pode escrever nada de útil .... Além deste "misterioso" de declaração, haverá um mal-entendido. por exemplo, o escopo das variáveis? - entender o que é? - Não é difícil, mas você tem que entender o que a máquina vê quando lê seu programa.


não sei que tutorial posso lhe aconselhar. às vezes olho para cima com atenção aquihttps://metanit.com/sharp/tutorial/1.1.php

há também C e C++https://metanit.com/cpp/

Se você vai usá-lo, você pode pular seções sobre ponteiros e aulas e OOP. Você não precisa estudá-lo, você só precisa organizar seus conhecimentos.

Obrigado, Igor, por seu contínuo apoio e aconselhamento. Pesquisei no Google tanto o C quanto o C++, mas sinto que mais uma vez preciso descansar um pouco, digerir e consolidar o que já entendi. E então, começar a ler livros novamente.

Cumprimentos, Vladimir.

 
Valeriy Yastremskiy:
Você já está no TOR. Este é o propósito. Agora o algoritmo da solução deve ser formulado passo a passo
Se algo não estiver claro, por favor, pergunte. Às vezes as coisas simples consomem mais tempo do que as complexas.

Valery, há muito tempo tenho os ToR(termos de referência) escritos em meu conselheiro, apenas não os coloquei no tema para que todos vejam.

Cumprimentos, Vladimir.

/* Краткое описание советника Trailing_Stop. Код советника разрабатывается в соответствии с
   планом самообучения языку программирования MQL5. В советнике применена неттинговая система
   учёта позиций. Эта система учета подразумевает, что в один момент времени на счете может быть
   только одна открытая позиция по одному и тому же символу (финансовому инструменту). Алгоритм
   работы советника прост: один раз в торговый день ровно в 9 ч. 00 мин. по московскому времени
   будет открываться одна позиция в ту сторону, куда будет направлен первый тик. Например, если
   первый тик будет направлен вверх, то значит откроется позиция BUY, если первый тик будет вниз,
   то значит откроется позиция SELL. У открытой позиции сразу будет устанавливаться ордер Stop Loss
   фиксированного размера для минимизации потерь в том случае, если цена финансового инструмента
   станет двигаться в убыточном направлении. Если цена инструмента достигнет этого уровня, то
   позиция полностью закроется автоматически. Если цена финансового инструмента будет двигаться
   в прибыльном направлении, то тогда автоматически включится в работу Trailing_Stop (Трейлинг Стоп).
   Схема работы Трейлинг Стоп:
   1. С приходом новых котировок советник проверяет, прибыльна ли открытая позиция.
   2. Как только прибыль (в пунктах) станет равной либо большей той величины, которая указана во
      входном параметре советника "Уровень перестановки Stop Loss в безубыток", автоматически
      поступит команда для перемещения ордера Stop Loss на тот уровень цены, по которому открылась
      существующая позиция, т.е. в безубыток.
   3. Если цена и дальше продолжит движение с увеличением прибыльности позиции, то при превышении
      величины, указаной во входном параметре советника "Уровень перестановки Stop Loss в безубыток"
      на величину, которая указана во входном параметре "Шаг трейлинг стопа", Stop Loss вслед за
      текущей ценой автоматически переместится с уровня безубытка на величину этого шага.
   4. Если прибыльность позиции уменьшится, то модификации ордера происходить не будет. Таким
      образом, будет автоматически фиксироваться прибыль торговой позиции.
   Если в течении торгового дня открытая позиция не закроется по Stop Loss или Trailing_Stop, то в
   23 ч. 50 мин. советник принудительно закроет эту позицию.

   ВАЖНО!!! Советник создан для демо-счёта исключительно в учебных целях!
            Не предназначен для торговли на реальном счёте и извлечения прибыли!*/
 
MrBrooklin:

Valery, há muito tempo tenho os ToR(termos de referência) escritos em meu conselheiro, apenas não os coloquei no tópico.

Cumprimentos, Vladimir.

O esquema de trabalho é mais como um objetivo. Não é nem mesmo uma declaração de problema. A solução é um algoritmo no início, um algoritmo geral. É uma declaração de problema. E depois os algoritmos para resolver esses problemas.
 
Valeriy Yastremskiy:
Um esquema de trabalho é mais como um objetivo. Não é nem mesmo uma declaração de problema. A solução é um algoritmo geral. Esta é uma declaração de problema. E depois os algoritmos para resolver esses problemas.

Estou vendo.

Com todo o respeito, Vladimir.

 
Valeriy Yastremskiy:

O operador do laço e os operadores no corpo do laço. Não exatamente russo clássico.

Tudo é bom, é claro, mas onde está o iterador i no corpo do loop? E para obter o símbolo de posição e seu número mágico, ele tem que ser selecionado primeiro. A descrição da posição é uma estrutura (em µl5 todas as estruturas e ordens e tempo e negócios) e é preenchida através de seleção, pelo iterador que não é o bilhete de posição, mas o número da posição. E devemos lembrar que na estrutura de descrição da posição, é sempre a última seleção de posição.

MrBrooklin:

Bom dia e bom humor para todos!

Eu continuo estudando a linguagem de programação MQL5. Comecei um estudo detalhado do para operador de loop... Por favor, envie-me sugestões, não código corrigido, mas em palavras, ou eu nunca estudarei MQL5.

Atenciosamente, Vladimir.

Aqui - deixe-me discordar de você, você pode e deve codificar, o que o impede de entrar em sua essência... entender e assim por diante ... também IMHO, há artigos, há robôs em kodobase - leia, analise o código já pronto - aprenda o estilo de escrever imediatamente. Por que você iria querer reinventar a roda? Aprenda imediatamente com o código alfabetizado.

Aqui está um arrasto de V. Karputov - está em ROBOTS, veja - ajuste-o às suas necessidades (termos e suas fantasias).

P.S. Graças a você, o assunto deste ramo, comecei a entender o código, suas características ..., a estudar artigos e a repetir coisas básicas para mim mesmo ...

Obrigado pela dica! :-) (não brinca)

TrailingStop
TrailingStop
  • www.mql5.com
Это простой пример советника с реализацией трейлинг-стопа. В нем всего два параметра: TrailingStop — собственно отступ между ценой и уровнем StopLoss. TrailingStep — защита от чрезмерно частой модификации позиции.  Как работает TrailingStop (трейлинг, TrailingStop) — на примере позиции Buy: ...