Questions d'un "mannequin - page 130

 
Omg... allez lire la suite.
 

Bien !

Win7 Je n'ai rien trouvé dans le forum, qu'en est-il du répertoire de travail du programme ? Comme il me semblait, dans win7 au moment du démarrage un répertoire temporaire est créé où tout le programme est copié, donc, en travaillant avec MetaEditor il s'avère que je copie un fichier à inclure, par exemple sur le lecteur D, mais il n'y a rien dans la fenêtre de metaeditor. J'appelle "Ouvrir un dossier" à partir de la fenêtre du métaéditeur et la fenêtre apparaît sur le lecteur C, quelque part dans l'espace temporaire. Que faire ? Comment les synchroniser ou interdire à win7 de les scinder ainsi ?

Merci !

Документация по MQL5: Файловые операции / FileCopy
Документация по MQL5: Файловые операции / FileCopy
  • www.mql5.com
Файловые операции / FileCopy - Документация по MQL5
 
bivmail:

Bien !

Win7 Je n'ai rien trouvé dans le forum, qu'en est-il du répertoire de travail du programme ? Comme il me semblait, dans win7 au moment du démarrage un répertoire temporaire est créé où tout le programme est copié, donc, en travaillant avec MetaEditor il s'avère que je copie un fichier à inclure, par exemple sur le lecteur D, mais il n'y a rien dans la fenêtre de metaeditor. J'appelle "Ouvrir le dossier" à partir de la fenêtre du méta-éditeur, et la fenêtre apparaît sur le lecteur C, quelque part dans la mémoire temporaire. Que faire ? Comment les synchroniser ou interdire à win7 de les scinder ainsi ?

Merci !

https://www.mql5.com/ru/forum/1111/page712#comment_173757
 
TheXpert:

1) Chaque langue a son propre domaine d'application. Dire qu'une langue est "la plus avancée" en général est absurde.

2. Quelle différence cela fait-il de savoir comment on l'appelle ? Le point ne change guère.

1. ok, je suis d'accord. alors mql5 est le langage le plus avancé pour l'auto-trading. :) Continuons à pousser.

2... C'est ça, on demande, on demande !

Vladix:
2. Soutenu par

Nous le demandons tous collectivement !

:)

 
Bonjour à tous.
les questions élémentaires sur le langage mql5 sont-elles posées ici ? :-)
à en juger par la discussion, il n'y a que des erreurs d'enfer ici...
 
GameOver:
Bonjour à tous.
les questions élémentaires sur le langage mql5 sont-elles posées ici ? :-)
Je ne sais pas, mais à en juger par la discussion, il n'y a que des infernaux OOP-ers ici...

Il y a toujours des mannequins de différents calibres. Vous pouvez créer une branche "pour les mannequins", si vous vous y sentez plus à l'aise ;-).
 
Dans un effort pour maîtriser cette création syntaxique, en croyant à la "simplicité" de la langue,
a commencé à dessiner un script rudimentaire.
Bref, une remarque et une question.

void OnStart() {
   MqlRates  aBars[];
   ArraySetAsSeries(aBars,true);
   int maxBars=TerminalInfoInteger(TERMINAL_MAXBARS); , bad_bars=0;
   int bars=CopyRates(Symbol(),Period(),0,maxBars,aBars);

il n'y a qu'une seule chose à faire - c'est-à-dire que je n'ai pas assez de mémoire, le script ne fonctionne pas avec maxBars,
il indique qu'il n'y a pas assez de mémoire, c'est-à-dire qu'un appel deTerminalInfoInteger(TERMINAL_MAXBARS) s'avère en fait être

ce qui est étrange, car en réalité il n'y a pas plus de 100 000 barres sur le graphique.
Parce que les rédacteurs n'ont tout simplement pas le temps de rendre quoi que ce soit...

la deuxième question est la suivante.
essayer d'implémenter un contrôle élémentaire (il était élémentaire dans µl4)

      // delete bad day of week and bad bars
      if (TimeDayOfWeek(Time[i])<1 || TimeDayOfWeek(Time[i])>5 || (High[i]-Low[i])<10*Point) { errBar++; continue; }

les recherches sur le forum (la recherche de l'aide mql5 sur les phrases day_of_week, dayofweek n'a rien donné... aide très utile !) ont conduit à l'implémentation suivante

MqlDateTime temp;
TimeToStruct(aBars[i].time,temp);
if (temp.day_of_week<1 || temp.day_of_week>5 ||  aBars[i].high-aBars[i].low<10*Point() ) {errBar++; continue;}

comme ça ? au lieu d'une ligne il y en a trois - et c'est élémentaire.
est-il possible de le simplifier ? ou toutes ces opérations élémentaires sont-elles désormais remplacées par la création encombrante d'objets, de classes, de structures intermédiaires ?

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5
 

Bonne journée !

Pourriez-vous nous dire s'il existe des courtiers en Russie qui proposent Metatrader comme terminal pour travailler sur le FORTS et le MICEX ?

 

Veuillez suggérer une variante plus rapide de l'algorithme de la "roulette" que celle-ci :

//——————————————————————————————————————————————————————————————————————————————
// Рулетка.
int Selection()
{
  //----------------------------------------------------------------------------
  int    i=0,u=0;
  double p=0.0,start=0.0;
  double          fit[][2];
  ArrayResize(fit,SizeOfPop);
  ArrayInitialize(fit,0.0);
  double delta=(Population[0][0]-Population[0][SizeOfPop-1])*0.1-Population[0][SizeOfPop-1];
  //----------------------------------------------------------------------------
  for(i=0;i<SizeOfPop;i++)
  {
    fit[i][0]=start;
    fit[i][1]=start+MathAbs(Population[0][i]+delta);
    start=fit[i][1];
  }
  p=RNDfromCI(fit[0][0],fit[SizeOfPop-1][1]);

  for(u=0;u<SizeOfPop;u++)
    if((fit[u][0]<=p && p<fit[u][1]) || p==fit[u][1])
      break;
    //--------------------------------------------------------------------------
  return(u);
}
//——————————————————————————————————————————————————————————————————————————————
Il est clair que les tableaux peuvent être retirés de la fonction afin qu'ils ne doivent pas être déclarés à chaque fois et redimensionnés, mais j'ai besoin d'une solution plus révolutionnaire. :)
 
GameOver:
Dans mes tentatives de maîtriser cette création syntaxique, en croyant à la "simplicité" de la langue,
a commencé à dessiner un script rudimentaire.
Bref, une remarque et une question.

void OnStart() {
   MqlRates  aBars[];
   ArraySetAsSeries(aBars,true);
   int maxBars=TerminalInfoInteger(TERMINAL_MAXBARS); , bad_bars=0;
   int bars=CopyRates(Symbol(),Period(),0,maxBars,aBars);

Hélas, si le nombre de barres est fixé à Illimité, le script ne fonctionne pas,
il indique qu'il n'y a pas assez de mémoire. c'est-à-dire qu'en substance, leTerminalInfoInteger(TERMINAL_MAXBARS) sera appelé ;

ce qui est étrange, car en réalité il n'y a pas plus de 100 000 barres sur le graphique.
Comment puis-je obtenir le nombre de barres réellement chargées ? Parce que les droits d'auteur n'ont pas le temps de rendre quoi que ce soit...

Essayons d'y voir clair. Pour la fonction CopyRates() l'avant-dernier paramètre

int              count,             // сколько копируем
C'est-à-dire le nombre d'éléments à copier. Dans votre conception, le nombre d'éléments est illimité. Grosso modo, irréel :) C'est probablement ce qui se passe quand on travaille, en redistribuant constamment la mémoire jusqu'à ce qu'elle soit épuisée. Essayez d'utiliser une valeur plus spécifique, au lieu de TerminalInfoInteger(TERMINAL_MAXBARS):MQL5 Reference / Access to timeseries and indicators / Bars