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

 
Peut-être que j'ai mal expliqué quelque chose, il suffit de marquer la première bougie sur m1 m5 m15 m30 h1 h4, qui commence à 16:00 heure de Moscou, et l'indicateur marque (par exemple sur m15 quatre bougies).
 
Yulia:
Peut-être que j'ai mal expliqué quelque chose, il suffit de marquer la première bougie sur m1 m5 m15 m30 h1 h4, qui commence à 16:00 heure de Moscou, et l'indicateur marque (bien par exemple sur m15 quatre bougies).

Aider et faire sont des choses légèrement différentes. Vous n'êtes pas d'accord ?
 
Vinin:

Ne devez-vous pas définir la taille du tableau ?


Oui, j'ai vraiment oublié, je suis en train de m'enliser. Maintenant le tableau est plein, mais les lignes ne sont toujours pas affichées. Les tableaux sont liés aux tampons

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue

void init()
        {
        SetIndexBuffer(0, HighMass);
        SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 1);
        SetIndexBuffer(1, LowMass);
        SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1);
        }
 
sss2019:


Oui, en effet, j'ai oublié, je suis déjà épuisé. Maintenant le tableau est plein, mais les lignes n'apparaissent toujours pas. Les tableaux sont liés aux tampons


Vous auriez dû me donner le code entier. Vous ne voulez pas deviner ce qui est clair pour vous.
 
Vinin:

Aider et faire sont des choses légèrement différentes. Vous n'êtes pas d'accord ?

Je suis tout à fait d'accord avec vous, j'ai demandé de l'aide, ça fait 15 jours que je farfouille et aucun résultat, donc votre option ne me convient pas non plus, enfin merci beaucoup, je vais me débrouiller tout seul.
 

Bon après-midi... Question sur la fonction ArrayGetAsSeries. Afin de comprendre le fonctionnement de la fonction ArrayGetAsSeries, a écrit le script suivant :

//+------------------------------------------------------------------------------------------+
//|                                                                ArrayGetAsSeries_плюс.mq4 |
//+------------------------------------------------------------------------------------------+
//|                         script program start function                                    |
//+------------------------------------------------------------------------------------------+
//------------------------------------ НАЧАЛО START -------------------------------------- 1 -
int start()                                           //функция start
  {                                                   //начало start
   double Timestart=GetTickCount();                   //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта 
   double array1[];                                   //объявляем массив-приемник (массив, куда будут скопированы данные)
   int element=ArrayCopy(array1,Open,0,0,WHOLE_ARRAY);//копируем данные по ценам открытия в пользовательский массив (начиная с нулевого бара)
   int size=ArraySize(array1);                        //устанавливаем количество элементов массива array1
   for(int i=0;i<=4;i++)                              //цикл по просмотру скопированных значений (первых пяти)
       {                                              //начало for
        Alert("Значение цены открытия бара № ",i," равно ",array1[i],
              "\nВремя цены открытия бара № ",i,": ",TimeToStr(iTime(NULL,0,i),TIME_DATE|TIME_MINUTES));//cообщение на экран
       }                                                                 //конец for
//----------------------------------------------------------------------------------------- 2 -
   Comment("\nФункция ArrayCopy(array1[],Open,0,0,WHOLE_ARRAY) вернула: ",element,
           "\nФункция ArraySize(array1) вернула: ",size,
           "\nФункция ArrayGetAsSeries(array1) вернула: ",ArrayGetAsSeries(array1),
           "\nСкрипт выполнялся всего ",GetTickCount()-Timestart," миллисекунд, из них: ",MathFloor((GetTickCount()-Timestart)/1000),
           " секунд ",((GetTickCount()-Timestart)/1000-MathFloor((GetTickCount()-Timestart)/1000))*1000," миллисекунд");//печать 
           //сообщения на экран
//----------------------------------------------------------------------------------------- 3 -
   return(0);                                                             //выход из start
  }                                                                       //конец start
//-------------------------------------- КОНЕЦ START -------------------------------------- 4 -

Le script a copié un tableau de séries temporelles de prix d'ouverture de barres dans un tableau personnalisé. Évidemment, ce tableau personnalisé est organisé comme un tableau de séries temporelles car les éléments du tableau sont indexés du dernier au premier (ceci est démontré dans la capture d'écran où la fonction Alert a sorti l'heure d'ouverture et le prix de la quatrième barre. Cette barre est marquée par une ligne verticale sur le graphique ; nous pouvons également voir le prix d'ouverture de cette barre et dans la fenêtre des propriétés, nous pouvons voir que l'heure de la barre est la même que celle affichée par la fonctionAlert). Mais la fonction ArrayGetAsSeries renvoie 0, ce qui signifie que le tableau de l'utilisateur n'est PAS organisé comme un tableau de séries temporelles (coin supérieur gauche de la capture d'écran).

Question: pourquoi la fonction ArrayGetAsSeries renvoie-t-elle 0, alors que le tableau utilisateur est organisé comme un tableau de séries temporelles ?

P.S. Afin de ne pas encombrer le forum, merci d'avance pour la réponse.


 
7777877:
Q: Pourquoi la fonction ArrayGetAsSeries renvoie-t-elle 0, alors que le tableau utilisateur est organisé comme un tableau de séries temporelles ?
Ce n'est pas parce que vous avez copié des données dans un certain ordre que le tableau est organisé comme une série chronologique.
 
ilunga:
Ce n'est pas parce que vous avez copié les données dans un certain ordre que le tableau est organisé comme une série chronologique
.

Mais le fait est que les valeurs des prix d'ouverture, qui sont reproduites dans la boucle for à partir d'une barre déjà copiée, sont indexées de la dernière à la première. Mais, si je comprends bien, cela signifie (i.e. indexation de la dernière à la première) que le tableau est organisé comme une série temporelle ?

P.S. Merci pour la réponse à ma question précédente sur les fonctions FileIsEnding et FileIsLineEnding.

 
7777877:

Mais le fait est que les valeurs des prix d'ouverture, qui sont reproduites dans la boucle for à partir d'une barre déjà copiée, sont indexées de la dernière à la première. Mais, si je comprends bien, cela signifie (i.e. indexation du dernier au premier) que le tableau est organisé comme une série temporelle ?

P.S. Merci pour la réponse à ma question précédente sur les fonctions FileIsEnding et FileIsLineEnding.

Non, cela signifie seulement que les données correspondent à un morceau d'histoire.

Vous auriez pu le saisir manuellement, par exemple. Ou écrit à partir d'un fichier texte. Ou l'a reçu dans le calcul.


Après tout, même en entrant des données conditionnelles "1,25 1,16 1,73 1,35", nous pouvons obtenir l'historique d'une monnaie il y a plusieurs années. Mais cela ne signifie pas que nous avons mis en place une série chronologique de tableaux.

 

Je m'excuse de répéter une question, mais je ne peux pas réaliser les exemples suivants tant que je n'ai pas résolu ce problème.

Aidez-moi à trouver une solution.

J'ai écrit un script simple pour ouvrir un ordre (à partir du tutoriel MQL4).

int start()                                  // Спец. функция start()
  {                                          // Открытие BUY
   OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
   Alert (GetLastError());
   return;                                   // Выход из start()
  }

Je l'ai codé pour des instruments à 4 chiffres.

J'ai un compte dans une société qui a 5 chiffres après le point.

Veuillez indiquer comment corriger le code pour qu'il comporte 5 chiffres et pourquoi l'erreur 4109 (trading not allowed) s'affiche lorsque le script est exécuté ?


Raison: