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

 

Bonjour, c'est peut-être une question hors sujet, mais pouvez-vous me conseiller un forum ? C'est nouveau pour moi.

La situation est la suivante. J'ai écrit mon EA et l'ai mis en vente, mais trois mois plus tard, j'ai découvert que mon EA est vendu illégalement sur d'autres sites web (j'ai déjà trouvé trois sites).

Je devrais être plus précis, non seulement mon EA est à vendre, mais je peux trouver presque n'importe quel EA sur le site de Mql5.

Peut-être y a-t-il des informations sur le fait que les programmeurs de Mql5 résolvent ce problème ?

Merci.

 
Nerd Trader #:

Oui, ce n'est pas bon. C'est bon ?

Ce n'est pas équivalent à Sleep(100) ? Après tout, le programme va rester en boucle jusqu'à ce que la pause soit exécutée.

Équivalent.

Et c'est là que nous arrivons à la POO, où chaque bouton est une instance d'une classe de bouton, chacune ayant son propre gestionnaire de pression de bouton et suivant la durée du délai dans sa propre minuterie.

Ou le suivi des états de chaque bouton dans la minuterie globale du programme - si ce n'est pas OOP

 
Mikhail Voropaev programmeurs de Mql5 résolvent ce problème ?

Merci.

Veuillez m'envoyer l'URL de chacun de ces sites dans mon message personnel.

 
Artyom Trishkin #:

Équivalent.

Et c'est là que nous arrivons à la POO, où chaque bouton est une instance d'une classe de bouton, chacune avec son propre gestionnaire de bouton et suivant la durée du délai dans sa propre minuterie.

Ou le suivi de l'état de chaque bouton dans le timer du programme, s'il n'est pas OOP.

J'ai compris pour l'OOP, mais je ne suis pas sûr pour le self timer. Qu'est-ce que tu veux dire ? Démarrage différent des minuteries et prise en compte des délais ? Mais il n'y a qu'un seul temps qui compte. Ou quoi d'autre est inconnu ?

 
Valeriy Yastremskiy #:

L'OOP est clair, mais la minuterie personnalisée ne l'est pas. Qu'est-ce que tu veux dire ? Démarrage différent des minuteries et prise en compte des délais ? Mais il n'y a qu'un seul temps qui compte. Ou quoi d'autre est inconnu ?

Ma stupidité...

Il ne s'agit certainement pas d'une "minuterie propre", mais d'un gestionnaire propre exécuté dans la minuterie.

 
Artyom Trishkin #:

Veuillez m'envoyer par courriel l'URL de chacun de ces sites.

Je peux vous en donner plus tard. Je les garde tous. Certains d'entre eux sont déjà éteints, cependant.
Il y en a beaucoup qui copient le marché. Avec un rabais.
 
Valeriy Yastremskiy #:

L'OOP est clair, mais la minuterie personnalisée ne l'est pas. Qu'est-ce que tu veux dire ? Démarrage différent des minuteries et prise en compte des délais ? Mais il n'y a qu'un seul temps qui compte. Ou quoi d'autre est inconnu ?

J'ai déjà écrit un article sur ce sujet.

 
Sergey Gridnev #:
J'ai déjà écrit un article sur ce sujet.

Merci, bonne localisation des applications)

 
MakarFX #:
mais si "ms" devient global
On dirait que OnTimer gère les événements en parallèle avec le thread principal et c'est ce dont vous avez besoin pour l'animation des boutons, mais ce n'est pas mieux ainsi.
GetMicrosecondCount()-ms donnera de toute façon une différence supérieure à 100000 et sans appuyer sur le bouton. Il est possible de fixer les limites en ajoutant plus de
&& GetMicrosecondCount()-ms<120000, la condition est remplie 1 fois, mais aussi indépendamment sans appuyer.

P.S. "ms = 0" n'a pas non plus de sens à zéro.


 
Nerd Trader #:
Il semble que OnTimer traite les événements en parallèle avec le thread principal et c'est ce dont vous avez besoin pour l'animation des boutons, mais ce n'est pas mieux ainsi.
GetMicrosecondCount()-ms donnera de toute façon une différence supérieure à 100000 et sans appuyer sur le bouton. Il est possible de fixer le cadre en ajoutant plus de
&& GetMicrosecondCount()-ms<120000, la condition est remplie 1 fois, mais aussi indépendamment sans appuyer.

P.S. "ms = 0" n'a pas non plus de sens à zéro.


ou si

//+------------------------------------------------------------------+
void OnTimer()
  {
   if(ms!=0&&GetMicrosecondCount()-ms>100000)
     {
      ObjectSetInteger(0,"button1",OBJPROP_STATE,false);
      ms=0;
     }
  }
//+------------------------------------------------------------------+