Proposition à l'administration et aux riverains - page 6

 
Фьючерсные объемы для МТ:

Je rejoins la question : qu'est-ce qui craint dans le code du premier message ?

A propos de la POO. Il n'y a pas seulement beaucoup de matériel, il y en a une tonne. Mais pas sur ce site. Et même ici, il y en a. Certaines personnes sont simplement trop paresseuses pour effectuer une recherche et une étude appropriées.

Du moins, il ne fonctionne que sur la source d'alimentation sur laquelle le conseiller expert est installé.....
 
Vladimir Pastushak:
Du moins, cela ne fonctionne que sur le symbole sur lequel le conseiller expert est installé.....

Non, le code est très bon. C'est juste que vous en attendez quelque chose pour lequel il n'a pas été conçu.

Et ce sera le plus gros problème de votre proposition en général.

De nombreuses choses peuvent être écrites de manière efficace de plusieurs façons. Différentes personnes évaluent la tâche et la solution, ainsi que les critères d'efficacité, de différentes manières.

Par exemple, en MT, il est plus important pour moi de disposer d'un code simple que d'être capable de l'assembler à partir de briques universelles.

 
Владимир:

Ne vous inquiétez pas. Ce n'est pas mon métier.

Si je vous demande de me montrer un exemple d'écriture de code, dites "Combien de temps reste-t-il jusqu'à la fin du délai ?". Vous êtes sûr à 100% de m'envoyerau casse-pipe.

ou au service des travaux. C'est juste pour donner l'exemple !

C'est ça, la peur et la réticence. Mais les doigts sont toujours tendus.

Vous pouvez également dire que la plupart de ceux qui demandent à montrer le code sont simplement paresseux, et qu'ils sont trop paresseux pour chercher dans la base de code le code "Combien de temps reste-t-il jusqu'à la fin du délai ?

Il n'est pas intéressant de se dévoiler aux paresseux).

 

Владимир:

VOLDEMAR a raison. Les programmeurs sont tous différents.

Artyom Trishkin 2015.05.31 11:27

//+----------------------------------------------------------------------------+
   datetime GetTimeLeft(string symbol, int timeframe) {return(60*timeframe+(iTime(symbol,timeframe,0)-TimeCurrent()));}
//+----------------------------------------------------------------------------+

Je choisis Artyom Trishkin.

Je suis d'accord, ce serait génial si tout le monde était pareil...

Et je respecte Artyom(artmedia70), mais dans ce cas je ne peux pas le choisir... Et la brièveté du code n'est pas encore une panacée.

Un code concis peut être peu sûr et potentiellement dangereux...

iTime

Renvoie la valeur du temps d'ouverture de la barre (spécifié par le paramètre shift) du graphique correspondant.

datetime  iTime(
   string           symbol,          // символ
   int              timeframe,       // период
   int              shift            // сдвиг
   );

Paramètres

symbole

[Nom du symbole. NULL signifie le symbole actuel.

cadre temporel

Période [en]. Peut être une des valeurs de l'énumération ENUM_TIMEFRAMES. 0 signifie la période du graphique actuel.

équipe

[Index de la valeur de l'horizon temporel (décalage par rapport à la barre actuelle du nombre de barres en arrière spécifié).

Valeur retournée

Valeur du temps d'ouverture de la barre (spécifié par le paramètre shift) du graphique correspondant ou 0 en cas d'erreur. Vous devez appeler GetLastError() pour obtenir plus d'informations sur l'erreur.


 

Forum pour le trading, les systèmes de trading automatisés et les tests de stratégie

Présentation de l'administration et de la population locale

Vladimir Pastushak, 2015.05.31 08:20

La question qui se pose à vous est la suivante : quel code pensez-vous être le plus correct ?

1

void depth_trend()
  {
//--- определение индекса на покупку
   double rsi=iRSI(Symbol(),tf,period,PRICE_CLOSE,0);
   index_rsi = 0;
   if(rsi>90.0) index_rsi=4;
   else if(rsi>80.0)
      index_rsi=3;
   else if(rsi>70.0)
      index_rsi=2;
   else if(rsi>60.0)
      index_rsi=1;
   else if(rsi<10.0)
      index_rsi=-4;
   else if(rsi<20.0)
      index_rsi=-3;
   else if(rsi<30.0)
      index_rsi=-2;
   else if(rsi<40.0)
      index_rsi=-1;
  }

2

int refresh_depth_trend()
  {
   int    index_rsi=0;
   double rsi=iRSI(Symbol(),0,14,PRICE_CLOSE,0),up=60,dw=40;
   for(int i=1; i<=4; i++,up+=10,dw-=10)
      index_rsi=rsi>up ? i : rsi<dw ?(i*-1):index_rsi;
   return index_rsi;
  }

3

int refresh_depth_trend()
  {
   return MathFloor( MathAbs( (rsi-50.0)/10.0 - (rsi-50.0)*0.0001 ) ) * ((rsi>50)-0.5)*2;
  }

-- Je n'ai pas testé l'exactitude de chaque option, mais en supposant que les trois options sont identiques selon les résultats, toutes les options sont correctes.

-- à propos de la concision du code -- quelle option est la plus facile et la plus rapide à modifier ? -- quelle variante, après un certain temps, est plus facile et plus rapide à traiter de manière logique et sans autre explication ?

 
Владимир:

Je choisis

C'est pour cela que les programmeurs s'éventent les doigts :) Vous n'avez pas vraiment le choix et vous ne l'avez pas compris. Dans mon fichier vous pouvez voir un exemple de mise en œuvre avec l'affichage du temps restant sur le graphique par seconde. Et cette fonction ne mettra à jour le timer qu'à la réception du prochain tick, lorsque TimeCurrent() est mis à jour + sa sortie doit être réalisée d'une manière ou d'une autre, c'est-à-dire que nous devons la surcharger avec un code bref. Dans mon exemple, tout le bourrage avec l'optique de précision est déjà là, et TimeCurrent() est utilisé purement pour la synchronisation avec le serveur :)
 
Au fait, TimeCurrent est une fonction très délicate.
 
Et MQL5 dispose deTimeTradeServer - très intéressant, mais je n'ai pas encore eu l'occasion de l'utiliser.
Документация по MQL5: Дата и время / TimeTradeServer
Документация по MQL5: Дата и время / TimeTradeServer
  • www.mql5.com
Дата и время / TimeTradeServer - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexander Puzanov:
C'est pourquoi les programmeurs utilisent un éventail de leurs doigts :) Vous n'avez vraiment rien à choisir et vous ne l'avez pas compris. Dans mon dossier, il y a un exemple d'implémentation avec un affichage par seconde du temps restant sur le graphique. Et cette fonction ne mettra à jour le timer qu'à la réception du prochain tick, lorsque TimeCurrent() est mis à jour + sa sortie doit être réalisée d'une manière ou d'une autre, c'est-à-dire que nous devons la surcharger avec un code bref. Dans mon exemple, tout le bourrage avec l'optique de précision est déjà là, et TimeCurrent() est utilisé purement pour la synchronisation avec le serveur :)

Pourquoi, tu trébuches sur un "fan" de mes doigts ?

Je vous ai montré comment savoir combien de temps il reste avant l'ouverture de la prochaine bougie, quelle que soit l'échelle de temps. C'est tout. La question était exactement la même.

 
Chers programmeurs, où puis-je trouver une méthode de programmation en µl, où les programmes établis dans les colonnes exel sont utilisés directement et ainsi l'ensemble du programme exel est "conduit" dans le µl ?
Raison: