[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 649

 
7sintez:
Merci beaucoup à tous pour votre aide ! Les codes que je n'ai pas encore utilisés - je les ai copiés dans le bloc-notes ! Je les examinerai quand j'aurai le temps ! Merci encore et encore et encore, mes amis !


Vous pouvez utiliser les bibliothèques d'Igor Kim


//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает номер бара открытия последней позиции или -1.       |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)       |
//|    op - операция                   (   -1       - любая позиция)           |
//|    mn - MagicNumber                (   -1       - любой магик)             |
//+----------------------------------------------------------------------------+
int NumberOfBarOpenLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersTotal();

  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderOpenTime()) t=OrderOpenTime();
            }
          }
        }
      }
    }
  }
  return(iBarShift(sy, tf, t, True));
}

 

C'est un peu plus compliqué que ça.

 
r772ra:


Vous pouvez utiliser les bibliothèques d'Igor Kim

C'est un peu plus compliqué que ça.


J'ai déjà utilisé votre code ! Tout fonctionne ! Merci !

 
Comment combler les trous de cotation avec Mtqvotes ou comment recalculer les cotations à la minute pour tous les TF ?
 
Qwertee: ok, une autre chose dans mon EA est ce branchement :

if(period=="M15")
{
// vérifier l'ouverture d'un achat
Alert(buysell) ;

if(buysell=="buy")

Alerte(1) ;

.............

}

En gros, des "if" imbriqués. MAIS. la condition if(period=="M15") est remplie et Alert donne un résultat, et buy, mais la condition if(buysell=="buy") n'est pas remplie et la commande Alert(1) n'est même pas exécutée. Damn, mais les deux conditions sont même syntaxiquement les mêmes, mais pourquoi une est exécutée et l'autre pas ?

Techniquement, c'est simple : buysell !="buy" - donc la prochaine alerte(1) n'est pas exécutée.

Ce que contient la variable buysel à ce moment est découvert par print: Print (buysell) ; après la première alerte.

------------------------------------------------------------------------------------------------------------------------------------------------

C'est le problème, si je mets Print(buysell) au lieu de Alert(1) dans mon code, buysell renverra la valeur buy, alors quel est le problème ?

 

Il existe une fonction dont l'un des paramètres est un tableau : FunctionTest(double OneDimensionalArray[7]) ...

Il existe un tableau tridimensionnel : double Three-dimensionalArray[1][2][7].

La tâche consiste à insérer la dernière dimension du tableau tridimensionnel comme paramètre dans une fonction. J'essaie de le faire, mais le compilateur fronce les sourcils.

Je le fais comme ceci : FunctionTest(ThreeDimensionalArray[0][0]) .

Pourriez-vous me dire ce que je fais de mal et comment résoudre ce problème ?

Merci d'avance.

 
artem179:

Il existe une fonction dont l'un des paramètres est un tableau : FunctionTest(double OneDimensionalArray[7]) ...

Il existe un tableau tridimensionnel : double Three-dimensionalArray[1][2][7].

La tâche consiste à insérer la dernière dimension du tableau tridimensionnel comme paramètre dans une fonction. J'essaie de le faire, mais le compilateur fronce les sourcils.

Je le fais comme ceci : FunctionTest(ThreeDimensionalArray[0][0]) .

Pourriez-vous me dire ce que je fais de mal et comment résoudre ce problème ?

Merci d'avance.

On dit que Catherine la Grande a fait jusqu'à 4 erreurs dans un mot de 3 lettres.

Ne résolvez pas encore un tel problème. Trouvez une solution plus facile...

 
tara:

On dit que Catherine la Grande a fait jusqu'à quatre erreurs dans un mot de trois lettres.

Ne résolvez pas encore un tel problème. Trouvez une solution plus facile...


En principe, j'ai déjà résolu le problème d'une autre manière. Mais c'est toujours intéressant, au moins sur le plan purement théorique. Après tout, un tableau tridimensionnel [0][0] devrait être un tableau unidimensionnel, non ? Si oui, comment puis-je obtenir un tableau unidimensionnel à partir d'un tableau tridimensionnel ?
 
artem179:

En principe, déjà résolu d'une autre manière. Mais c'est toujours intéressant, au moins sur le plan purement théorique. Après tout, le tableau tridimensionnel [0][0] est censé être un tableau unidimensionnel ? Si oui, comment puis-je obtenir un tableau unidimensionnel à partir d'un tableau tridimensionnel ?

Vous regardez l'achat ?
1. Les tableaux sont toujours statiques

2. Vous n'avez pas besoin de l'obtenir de la 3D, il suffit de la créer correctement.

 
artem179:

En principe, j'ai déjà résolu le problème d'une autre manière. Mais c'est toujours intéressant, au moins sur le plan purement théorique. Après tout, un tableau tridimensionnel [0][0] devrait être un tableau unidimensionnel, non ? Si oui, comment obtenir un tableau unidimensionnel à partir d'un tableau tridimensionnel ?
Un tableau à N dimensions est un tableau à une dimension. Il est juste divisé en dimensions pour plus de commodité.
 
Et qu'en pensez-vous, Vadim ? Quel est le confort de navigation dans les mesures * ? ))) Cependant, j'ai connu des gens qui pouvaient compter les facettes du tesseract dans leur tête. Mais je ne suis pas sûr que cela ait quelque chose à voir avec nos problèmes.
La question est la formulation du problème. Ici, vous n'en avez pas besoin. Unidimensionnel, bien sûr.
Raison: