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

 
ANDREY:
C'est mon premier post avec mon code.
Et c'est mon
 
MakarFX:

Dans votre code, le LoU change àchaque ticksi le prix baisse, alors que mon LoU ne change qu'après l'ouverture d'une transaction.

Dans votre code, le LoU ne change qu'après l'ouverture d'une transaction........ mais votre code n'ouvre pas d'ordre 30 pips après chaque bas local, exactement comme le fait mon code. Je veux que mes ordres s'ouvrent comme dans mon code, mais mon LoU ne doit pas changer à chaque tick ou minute. Et je veux que l'EA fasse beaucoup moins de travail pour ouvrir chaque ordre.

Si vous le pouvez, faites en sorte que votre code ouvre exactement les mêmes ordres que les miens (par prix, heure et montant) pour le 04.01.2010, mais que les LoU ne changent qu'après l'ouverture d'une transaction, ou faites autre chose, réduisez fortement (plusieurs fois) le nombre de changements LoU
 
ANDREY:

Dans votre code, le LoU ne change qu'après l'ouverture d'une transaction........ mais votre code n'ouvre pas d'ordres après 30 pps après chaque bas local, exactement comme le fait mon code. Je veux que mes ordres s'ouvrent comme dans mon code, mais mon LoU ne change pas à chaque tick ou minute. Et je veux que l'EA fasse beaucoup moins de travail pour ouvrir chaque ordre.

Comment définir le minimum local si on ne le vérifie pas à chaque tick ou minute ?
 
MakarFX:
Comment définir un niveau local bas alors, à moins de vérifier à chaque tick ou minute ?

C'est ce qui me laisse perplexe. .....

Alternativement, si Bid - Low[ ?] > 30 pips pour ouvrir un ordre. Mais comment connaître le numéro de ce Low [...] ?
 
ANDREY:

C'est ce que je me demande : ......

Pourquoi ?

Dites-moi pourquoi vous voulez réduire la fréquence des inspections ?

 
MakarFX:
Pourquoi ?

J'ai trouvé un modèle statistique stable dans le testeur, qui a régulièrement produit des profits avec des retraits acceptables depuis 2008. Je dois le tester sur des paires et des cadres différents, etc.
Mais j'ai besoin de le tester en utilisant plusieurs paramètres simultanément. L'optimisation prend un temps irréel. Et j'ai déjà écrit un code qui teste ce dont j'ai besoin beaucoup plus rapidement. Et maintenant, j'améliore mon code, c'est-à-dire que je veux qu'il fonctionne encore plus vite dans le testeur, ou aussi vite que possible. L'algorithme principal de mon code consiste à ouvrir des ordres à 30 points après chaque minimum local. C'est pourquoi j'essaie de le faire aussi vite que possible.

 
MakarFX:

Pourquoi ?

Dites-moi pourquoi vous voulez raccourcir l'intervalle de contrôle ?

Pour que tout le code s'exécute plus rapidement.

 
MakarFX:
Comment définir un minimum local si je ne le vérifie pas à chaque tick ou minute ?

Comme alternative, la fonction Low[iLowest(NULL,0,MODE_LOW,P1,0)] trouve le minimum sans vérifier la valeur des minima à chaque tick

J'ai essayé de l'utiliser, mais il ne fonctionne que dans certains cas.

Ou peut-être y a-t-il d'autres constructions que je ne connais pas et que je ne peux pas distinguer de mon propre esprit.

 
ANDREY:

J'ai trouvé un modèle statistique stable dans le testeur, qui a produit des profits stables avec des retraits acceptables depuis 2008. Je dois le tester sur des paires et des cadres différents, etc.
Mais j'ai besoin de le tester en utilisant plusieurs paramètres simultanément. L'optimisation prend un temps irréel. Et j'ai déjà écrit un code qui teste ce dont j'ai besoin beaucoup plus rapidement. Et maintenant, j'améliore mon code, c'est-à-dire que je veux qu'il fonctionne encore plus vite dans le testeur, ou aussi vite que possible. L'algorithme principal de mon code consiste à ouvrir des ordres à 30 points après chaque minimum local. J'essaie donc de le faire aussi vite que possible.

La vérification dans votre code n'est pas une charge, mais si vous le voulez vraiment, vous pouvez l'essayer.

double LoU;
int OnInit()
  {
   LoU=Low[0];
  }
//+------------------------------------------------------------------+
void OnTick()
  {
   if(Low[1]<LoU) {LoU=Low[1];}
   if ((Bid-30*Point)>=LoU)
     {
      if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Low[0];
     }
  }
 
ANDREY:

Comme alternative, la fonction Low[iLowest(NULL,0,MODE_LOW,P1,0)] trouve les minima sans vérifier les minima à chaque tick

Il y a peut-être d'autres constructions que je ne connais pas et que je ne peux pas atteindre avec mon propre esprit.

Cela dépend de l'endroit où il faut le prescrire.