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

 
Vitaly Gorbunov:
O objetivo deve justificar os meios. Se você tiver o código fonte de todos os componentes necessários, é mais fácil combinar tudo em uma EA. Se isto não for possível, é necessário organizar a comunicação entre os módulos de todos os componentes, mas esta não é uma tarefa para iniciantes.

A principal tarefa dos iniciantes é aprender a escrever as "fontes de todos os componentes necessários". Caso contrário, os novatos se reunirão tanto ... que seremos acusados de invadir os cérebros dos marcianos.

 
Alexey Viktorov:

A principal tarefa dos iniciantes é aprender a escrever as "fontes de todos os componentes necessários". Caso contrário, os iniciantes reunirão tanta coisa ... que seremos acusados de hackear cérebros de marcianos.

Isso mesmo! Em geral, se você quiser aprender a programar, deve começar com programas simples, passando gradualmente para programas mais complexos. Então não haverá perguntas como a de que eu quero algo que nem sequer sei.

 
Boa tarde, eu tenho código fonte para o Expert Advisor, por favor me ajude a acrescentar proteção para que ele funcione somente em uma determinada conta especificada.
Eu tentei fazer isso em https://www.mql5.com/ru/articles/1572
Quero tentar, mas não consigo fazê-lo funcionar corretamente.
Encontrei um algoritmo completo, mas não entendo onde colocá-lo
#property copyright "Copyright © 2009, Sergey Kravchuk"
#property link      "http://forextools.com.ua"

int start()
{  
  string char[256]; int i;

  for (i = 0; i < 256; i++) char[i] = CharToStr(i);
  // номер счета на котором разрешено работать эксперту
  int    AllowedAccountNo = StrToInteger(/* 49153 */ char[52]+char[57]+char[49]+char[53]+char[51]); 
  string AllowedServer = /* UWC-Demo.com */ char[85]+char[87]+char[67]+char[45]+char[68]+
  char[101]+char[109]+char[111]+char[46]+char[99]+char[111]+char[109];

  if (AccountNumber() != AllowedAccountNo || AccountServer() != AllowedServer) 
  {
    Print("Вы не имеете права использовать этот скрипт!");
    return(1);
  }
  
  Print("Вы можете использовать этот скрипт!");
}
Защищайтесь, господа разработчики!
Защищайтесь, господа разработчики!
  • www.mql5.com
Вопросы защиты своей интеллектуальной собственности все еще остаются большой проблемой. В статье описаны основные принципы защиты разработок на MQL4, используя которые можно если не совсем побороть воровство результатов многодневного труда разработчика злоумышленником, то, по крайней мере, настолько усложнить вору его "труд", чтобы ему просто...
Arquivos anexados:
333.mq4  16 kb
 
helping123:
Boa tarde, tenha o código fonte de um EA, por favor peça ajuda para acrescentar uma proteção lá que só funcionaria em uma determinada conta especificada.
Tentei fazer de acordo com https://www.mql5.com/ru/articles/1572
Quero usá-lo como referência, mas não tenho certeza se posso ajudar.
Encontrei um algoritmo completo, mas não entendo onde colocá-lo

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial


FXwin, 2018.09.14 11:48

bool StopTrade = true;

int start() {
//---------------------------------------------------------------------------------------------------------------+
//  привязка к конкретному торговому счету
  if(AccountNumber() != 555777){ 
     Comment("Invalid account... forex-time@mail.ru");
  if(StopTrade) Alert("Invalid account... forex-time@mail.ru"); StopTrade=false; return(0);}
//---------------------------------------------------------------------------------------------------------------+  

 
Alexey Viktorov:

Realmente... Qual era a tarefa original? Eu também não me lembro...:)))))))))))

O que vocês, crianças, estão realmente fazendo, agitando as águas?

Basta entrar no MetaEditor, e digitar o comando: Arquivo->Criar...

Isto trará à tona um formulário com diferentes arquivos fictícios.

Em particular, serão arquivos fictícios:

- Consultor especializado

- Indicador personalizado

- Roteiro

- Biblioteca, etc.

Estamos interessados nos três primeiros itens: Expert Advisor, Custom Indicator e Script.

Vamos comparar estes manequins:

No Expert Advisor, temos eventos:

-OnInit(), OnDeinit(), OnTick(), OnTimer, OnChartEvent() ... tudo, não mais.

No roteiro, temos os eventos:

- OnStart() ... é isso, não mais.

no indicador que temos eventos:

- OnInit(), OnCalculate(), OnTimer, OnChartEvent() ... tudo, não mais.

A questão natural aqui é como fazer a conexão entre esses objetos.

Acontece que não há nem pode haver conexão entre eles na MQL, porque os fluxos de dados entre estes objetos estão completamente separados e não há conexão entre eles.

Além disso, estou surpreso com o fato de que os criadores da MQL nos dão este fato como um "bem".

E se, por exemplo, em C++, posso facilmente chamar o tradutor BASIC ou Javascript ou qualquer outro tradutor e mudar, por exemplo, para o ambiente de programação Android,

no âmbito da MQL, não posso nem mesmo criar um chamado "script" em ambiente "indicador", porque o ambiente indicador não aceita o comando OnStart().

Que tipo de aberração é esta?

E há coisas tão feias na MQL mais do que suficientes.

Eles estão a cada passo.

Eu li a descrição da MQL - e estou surpreso, porque não há mais nada a fazer.

Enquanto os criadores da MQL proclamam em voz alta que a MQL é descendente de C++.

Claro, sinto muito, mas quero perguntar aos criadores do MQL: - Herdeiro de quê? - Em sua fealdade?


Eu comparo involuntariamente o MQL com o famoso ambiente de programação 1C. Eles também afirmam ser os herdeiros do C++.

Mas tudo é feito lá de uma maneira muito mais decente.

E os objetos gráficos, e a comunicação entre os módulos e muito mais.

E o que há na MQL?

Sem classes embutidas, sem objetos relacionados a fios... e nada de nada.

E eu ainda não disse nada sobre a casca matemática do terminal!!!

Esse é um tema totalmente à parte para surpresas!!!

 
neverness:

O que vocês, crianças, estão realmente fazendo, agitando as águas?

Basta entrar no MetaEditor, e digitar o comando: Arquivo->Criar...

Isto trará à tona um formulário com diferentes arquivos fictícios.

...

Esse é um tema totalmente à parte para surpresas!!!

Nada o impede de escreverOnStart() emOnCalculate(), como no roteiro

 
Vitaly Muzichenko:

Nada o impede de escreverOnStart() emOnCalculate(), como no roteiro

Exemplo de código de trabalho, você teria a gentileza de nos mostrar para construir uma elipse ou outro objeto no ambiente indicador, por exemplo.
 
Infopanel
Infopanel
  • www.mql5.com
Пример создания простого и быстрого меню с поддержкой нескольких языков. В примере выводится информация о цене, времени до следующего бара, балансе счета, количестве ордеров. Данный пример можно использовать в качестве шаблона для создания своих разработок. Минус данного метода при добавлении, удалении или редактировании объектов необходимо...
 
neverness:
Mostre-nos um exemplo de um código de trabalho para construir uma elipse ou outro objeto em um ambiente indicador, por exemplo.

Os indicadores são o lugar certo para construir objetos gráficos de qualquer tipo.

 
Vitaly Gorbunov:

https://www.mql5.com/ru/code/19220

Indicador como um exemplo de trabalho com objetos.

Nós não somos crianças, somos indivíduos perfeitamente sãos.

Não vamos tentar sussurrar e enganar uns aos outros.

Mais uma vez, repito minha pergunta:

Por favor, me dê um código simples do indicador, no qual algum objeto com script (OnStart(), por exemplo, uma elipse) é construído.

O procedimento é o seguinte:

Você entra no MetaEditor. Clique em File->Create....

Clique em Indicador.

E neste ambiente você insere o código do objeto de script (OnStart(), por exemplo, elipse).

É tão simples!!!

Boa sorte!!!

Ou seja, você não apenas joga o objeto na forma, ou cria um objeto independente de qualquer coisa, como em seu exemplo, mas introduz este objeto no ambiente computacional do indicador .

Em outras palavras, o fluxo de dados indicadores muda - o objeto gráfico também muda.

Não como no seu exemplo, é apenas um boneco no gráfico que não depende de nada.

Razão: