Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 621

 
Vitaly Gorbunov:
Le but doit justifier les moyens. Si vous disposez du code source de tous les composants nécessaires, il est plus facile de tout combiner en un seul EA. Si cela n'est pas possible, il est nécessaire d'organiser la communication entre les modules de tous les composants, mais ce n'est pas une tâche pour les débutants.

La première tâche des débutants est d'apprendre à écrire les "sources de tous les composants nécessaires". Sinon, les nouveaux venus vont accumuler tellement de choses... qu'on nous accusera de pirater le cerveau des Martiens.

 
Alexey Viktorov:

La tâche principale des débutants est d'apprendre à écrire les "sources de tous les composants nécessaires". Sinon, les débutants vont en rassembler tellement... qu'on nous accusera de pirater les cerveaux des Martiens.

C'est vrai ! En général, si vous voulez apprendre à programmer, vous devez commencer par des programmes simples, puis passer progressivement à des programmes plus complexes. Alors il n'y aura pas de questions telles que "je veux quelque chose que je ne connais même pas".

 
Bon après-midi, j'ai le code source d'un conseiller expert, s'il vous plaît aidez-moi à ajouter la protection pour qu'il ne fonctionne que sur un certain compte spécifié.
J'ai essayé de le faire sur https://www.mql5.com/ru/articles/1572
Je veux l'essayer mais je n'arrive pas à le faire fonctionner correctement.
J'ai trouvé un algorithme complet, mais je ne comprends pas où le mettre.
#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, используя которые можно если не совсем побороть воровство результатов многодневного труда разработчика злоумышленником, то, по крайней мере, настолько усложнить вору его "труд", чтобы ему просто...
Dossiers :
333.mq4  16 kb
 
helping123:
Bon après-midi, ont le code source d'un EA, s'il vous plaît demander de l'aide pour ajouter une protection il ya qu'il ne fonctionnerait que sur un certain compte spécifié.
J'ai essayé de faire selon https://www.mql5.com/ru/articles/1572
Je veux l'utiliser comme référence mais je ne suis pas sûr de pouvoir le faire fonctionner correctement.
J'ai trouvé un algorithme complet, mais je ne comprends pas où le mettre.

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading


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:

Vraiment... Quelle était la tâche initiale ? Je ne m'en souviens pas non plus... :)))))))))))

Que faites-vous, les enfants, à remuer les eaux ?

Il suffit d'aller dans le MetaEditor, et de taper la commande : Fichier->Créer...

Cela fera apparaître un formulaire avec différents fichiers factices.

En particulier, il s'agira de fichiers factices :

- Conseiller expert

- Indicateur personnalisé

- Script

- Bibliothèque, etc.

Nous sommes intéressés par les trois premiers éléments : Expert Advisor, Custom Indicator et Script.

Comparons ces mannequins :

Dans Expert Advisor, nous avons des événements :

-OnInit(), OnDeinit(), OnTick(), OnTimer, OnChartEvent() ... tout, rien de plus.

Dans le script, nous avons les événements :

- OnStart() ... c'est tout, rien de plus.

dans l'indicateur, nous avons des événements :

- OnInit(), OnCalculate(), OnTimer, OnChartEvent() ... tout, rien de plus.

La question naturelle qui se pose ici est de savoir comment faire le lien entre ces objets.

Il s'avère qu'il n'y a et ne peut y avoir aucune connexion entre eux dans MQL, car les flux de données entre ces objets sont complètement séparés et il n'y a aucune connexion entre eux.

De plus, je suis surpris par le fait que les créateurs de MQL nous donnent ce fait comme un "bien".

Et si, par exemple, en C++, je peux facilement appeler le traducteur BASIC, ou JavaScript, ou tout autre traducteur, et passer à l'environnement de programmation Android, par exemple,

dans le cadre de MQL, je ne peux même pas créer un soi-disant "script" dans l'environnement "indicateur", parce que l'environnement indicateur n'accepte pas la commande OnStart().

Quel genre de monstre est-ce ?

Et il y a plus qu'assez de ces vilaines choses dans MQL.

Ils sont à chaque étape.

Je lis la description de MQL - et je suis surpris, car il n'y a rien d'autre à faire.

Pendant ce temps, les créateurs de MQL proclament haut et fort que MQL est un descendant de C++.

Bien sûr, je suis désolé, mais je veux demander aux créateurs de MQL : - Héritier de quoi ? - Dans sa laideur ?


Je compare involontairement MQL au célèbre environnement de programmation 1C. Ils prétendent également être les héritiers de C++.

Mais tout y est fait de manière beaucoup plus décente.

Et les objets graphiques, et la communication entre les modules et bien plus encore.

Et qu'y a-t-il dans MQL ?

Pas de classes intégrées, pas d'objets liés au thread... et rien du tout.

Et je n'ai rien dit sur l'enveloppe mathématique du terminal ! !!

C'est un tout autre sujet pour les surprises ! !!

 
neverness:

Que faites-vous, les enfants, à remuer les eaux ?

Il suffit d'aller dans le MetaEditor, et de taper la commande : Fichier->Créer...

Cela fera apparaître un formulaire avec différents fichiers factices.

...

C'est un tout autre sujet pour les surprises ! !!

Rien ne vous empêche d'écrireOnStart() dansOnCalculate(), comme dans ce script

 
Vitaly Muzichenko:

Rien ne vous empêche d'écrireOnStart() dansOnCalculate(), comme dans ce script

Exemple de code fonctionnel, auriez-vous l'amabilité de nous montrer comment construire une ellipse ou un autre objet dans l'environnement de l'indicateur, par exemple.
 
Infopanel
Infopanel
  • www.mql5.com
Пример создания простого и быстрого меню с поддержкой нескольких языков. В примере выводится информация о цене, времени до следующего бара, балансе счета, количестве ордеров. Данный пример можно использовать в качестве шаблона для создания своих разработок. Минус данного метода при добавлении, удалении или редактировании объектов необходимо...
 
neverness:
Veuillez nous montrer un exemple de code fonctionnel pour construire une ellipse ou un autre objet dans un environnement d'indicateur, par exemple.

Les indicateurs sont le bon endroit pour construire des objets graphiques de toute sorte.

 
Vitaly Gorbunov:

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

Indicateur comme exemple de travail avec des objets.

Nous ne sommes pas des enfants, nous sommes des individus parfaitement sains d'esprit.

N'essayons pas de chuchoter, et de nous tromper les uns les autres.

Une fois encore, je répète ma question :

Veuillez me donner un code simple de l'indicateur, dans lequel un objet script (OnStart(), par exemple, une ellipse) est construit.

La procédure est la suivante :

Vous entrez dans le MetaEditor. Cliquez sur Fichier->Créer....

Cliquez sur Indicateur.

Et dans cet environnement vous entrez le code de l'objet script (OnStart(), par exemple, ellipse).

C'est tellement simple ! !!

Bonne chance ! !!

En d'autres termes, vous ne vous contentez pas de jeter l'objet sur le formulaire, ou de créer un objet indépendant de tout, comme dans votre exemple, mais vous introduisez cet objet dans l'environnement de calcul de l'indicateur .

En d'autres termes, si le flux de données de l'indicateur change, l'objet graphique change également.

Pas comme dans votre exemple, il s'agit juste d'un mannequin sur le graphique qui ne dépend de rien.