[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 625

 
evillive:

Puis-je vous demander pourquoivous devez "normaliser à 4 ou 2 chiffres" (si vous avez des guillemets à 5 chiffres) ?(si les guillemets sont à 5 chiffres)"? 5 et 3 chiffres devraient également fonctionner...

Il y a beaucoup de petits écarts dans les cotations à 5 chiffres, j'ai peur que le prix ne saute... Je ne veux pas manquer une entrée.

Au fait, si je supprime pip du code, les ordres ne s'ouvrent toujours pas :(

 
Combien cela coûtera-t-il d'attacher une alerte à un simple TS de deux indicateurs ?
 
alsu:
Votre fonction iTime prend la i-ième barre à partir d'un fichier (pour chaque tamframe séparément) dans le dossier tester\history, peut-être que les fichiers historiques pour D1 et H1, où la dernière barre correspond au 13 janvier, sont là depuis une ancienne exécution.
Que dois-je faire ? Il me semble que je mets systématiquement à jour l'historique.
 
MarkTrade:

Bon après-midi.

Pouvez-vous me dire pourquoi ce code ne fonctionne pas ?

Et l'alerte ne fonctionne pas.

Le journal est complètement silencieux...

Dans la capture d'écran, vous pouvez voir la coïncidence des conditions.


La capture d'écran est un graphique à cinq chiffres. Avec un dérapage comme le vôtre

OrderSend(Symbol(),OP_SELL,0.1,Bid,2,Ask+SL*pip*Digits,Ask-TP*pip*Digits,0,0,0,0,CLR_NONE) ;

l'ordre s'ouvrira, mais vous devez attendre que les conditions d'entrée coïncident et, surtout, que le marché soit très calme.

-----

L'alerte sera déclenchée, mais sur un niveau à cinq chiffres

si (NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) Alert(" !!!!!!!!!!!") ;

vous devez attendre, environ deux ans, quand il y aura une correspondance exacte - le prix aime sauter, sauter autour, et vous voulez qu'il soit exact au 5ème chiffre

 
alsu:
Si vous utilisez MQL, alors seulement dans le dossier experts\files.

Oui, le fichier à copier se trouve dans experts\files.

Comment le copier en utilisant MQL4 ?

 
zxc:


La capture d'écran est un graphique à cinq chiffres. Avec un dérapage comme le vôtre

OrderSend(Symbol(),OP_SELL,0.1,Bid,2,Ask+SL*pip*Digits,Ask-TP*pip*Digits,0,0,CLR_NONE) ;

l'ordre s'ouvrira, mais vous devez attendre que les conditions d'entrée correspondent et, surtout, que le marché soit très calme.

-----

L'alerte sera déclenchée, mais sur un niveau à cinq chiffres

si (NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) Alert(" !!!!!!!!!!!") ;

vous devez attendre, environ deux ans, lorsque le prix sera exact - après tout, le prix aime sauter, saute-mouton, et vous voulez qu'il soit exact au 5ème chiffre.

A cette fin, je le normalise à 4 chiffres.

Qu'est-ce que cela a à voir avec le glissement ? S'il y avait des requêtes dans le journal, oui.

Cette capture d'écran montre la correspondance exacte et le journal n'a même pas essayé d'ouvrir la commande.

 
MarkTrade:

C'est pourquoi je normalise à quatre chiffres.

Qu'est-ce que cela a à voir avec le glissement ? S'il y avait des requêtes dans le journal, alors oui.

La capture d'écran montre la correspondance exacte, alors que le journal n'a même pas essayé d'ouvrir un ordre.

Vous ne normalisez pas correctement. Si vous voulez normaliser à 4 chiffres, écrivez NormalizeDouble(...,4) - relisez ce que signifie le deuxième paramètre : nombre de décimales. Multipliez 3 ou 5 par 10 comme vous le faites - vous obtiendrez 30 ou 50 chiffres, mais pas 4.
 
MarkTrade:

C'est pourquoi je normalise à quatre chiffres.

Qu'est-ce que le glissement a à voir avec ça ? S'il y avait des requêtes dans le journal, alors oui.

La capture d'écran montre la correspondance exacte, alors que le journal n'a même pas essayé d'ouvrir un ordre.


Ce type de compte permet-il d'ouvrir des ordres en une fois avec des stops ?
 
atztek:

Oui, le fichier à copier se trouve dans experts\files.

Comment le copier à l'aide des outils MQL4 ?


Il n'existe pas de fonction de copie de fichiers à proprement parler. Mais c'est possible, par exemple, comme ceci :

//копирует src в dest
void CopyFile(string dest, string src )
{
   int handle1,handle2;
   handle1=FileOpen(src ,FILE_BIN|FILE_WRITE);
   handle2=FileOpen(dest,FILE_BIN|FILE_READ);
   FileSeek(handle1, 0, SEEK_END);
   FileSeek(handle2, 0, SEEK_SET);
   while(true)
   {
      string s=FileReadString(handle2,1);
      if(!FileIsEnding(handle2))
         FileWriteString(handle1,s,1);
      else break;  
   }
   FileClose(handle1);
   FileClose(handle2);
}
 
Fox_RM:
Que devez-vous faire ? Il me semble que je mets systématiquement à jour l'historique.

En fait, c'est une sorte de bug, ça ne devrait pas être dans le testeur...

Essayez de jouer avec les fichiers d'historique, effacez tout dans le dossier tester\history pour commencer...