Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 534

 
AlexeyVik:

Utilisez ce site https://docs.mql4.com/ru/indicators/imaonarray

Regardez le code, est-ce correct ?

//+------------------------------------------------------------------+
//|Определяем, можно ли торговать исходя из волатильности            |
//+------------------------------------------------------------------+

bool Volatilnost(int ATRTimeframe, int ATRPeriod, int PerShortMA, int PerLongMA, int ma_method)
   {
   bool  res = false;
   double   atr_curr[101];
   double   iatr_curr;
   
   ArraySetAsSeries(atr_curr,true);
   
   for(int i=100; i>=0; i--)  
   {
   atr_curr[i]=iATR( NULL, ATRTimeframe, ATRPeriod, i) ;
   if(i==1){iatr_curr=atr_curr[i];}
   }
   double   ShortMA=iMAOnArray( atr_curr, 0, PerShortMA, 0, ma_method, 1); 
   double   LongMA =iMAOnArray( atr_curr, 0, PerLongMA, 0, ma_method,  1); 

   if (ShortMA < LongMA)res = false;// Не работаем
         else res = true;
       
   return(res);
   }
 
AlexeyVik:
Maintenant, ils vont commencer à vous expliquer que l'angle dépend de l'échelle du graphique et qu'il est impossible de le faire...
Mais si vous ne prenez pas l'angle, mais seulement la tangente de l'angle, vous pouvez le faire.

Je me demande s'il est possible de savoir ce qu'elle est et comment elle doit être déterminée. Je sais qu'en géométrie à l'école on enseignait les tangentes et les catangentes, mais hélas je ne m'en souviens pas) J'ai demandé Fresh sur le forum, mais je n'ai pas reçu de réponse définitive.
 

Si Yandex est interdit, vous pouvez utiliser Google.

En résumé, la tangente d'un angle dans un triangle rectangle est le rapport entre la branche opposée et la branche adjacente.

En transposant cela à la situation du diagramme MT, nous obtenons : la jambe opposée sera égale aux points (en pct.) et la jambe adjacente aux barres (également en pct.).

Exemple :

EURUSD ouverture 6.03 1.3732 ouverture 7:03 1.3860 total 128 pips. A M1 1440 bars tan = 128/1440=0.08889

Cette équation est essentiellement utilisée dans la fonction ObjectGetValueByShift()

 
Est-il possible d'utiliser un serveur tiers ? Je n'ai que celui-ci de connecté http://buy.fineproxy.org/.
 
Veuillez expliquer comment adapter les données d'un tableau (*.csv) dans un tableau statique tridimensionnel.
La première colonne du tableau contient l'indice de la première dimension du tableau,
. La deuxième colonne contient l'indice de la deuxième dimension du tableau,
. La troisième et les autres colonnes contiennent les valeurs elles-mêmes de la troisième dimension du tableau.
.
void AAA()
   {
    int       Handle;                                          // Файловый описатель
    string    File_Name = "AAA.csv";                           // Имя открываемого файла

    string    str_1 = "";                                      //  1 Номер индекса по первому измерению
    string    str_2 = "";                                      //  2 Номер индекса по второму измерению
    string    str_3 = "";                                      //  3 Значение
    string    str_4 = "";                                      //  4 Значение
    string    str_5 = "";                                      //  5 Значение

    Handle=FileOpen(File_Name, FILE_READ, ";");                // Открытие файла
    
    while(FileIsEnding(Handle)==false)                         // До тех пор, пока файловый...
        {                                                      // ...указатель не в конце файла
         // Чтение данных из строки до файлового разделителя
         str_1 = FileReadString(Handle);                       //  1 Номер индекса по первому измерению
         str_2 = FileReadString(Handle);                       //  2 Номер индекса по второму измерению
         str_3 = FileReadString(Handle);                       //  3 Значение
         str_4 = FileReadString(Handle);                       //  4 Значение
         str_5 = FileReadString(Handle);                       //  5 Значение
         
         if(FileIsEnding(Handle)==true)                        // Файловый указатель в конце файла
              break;                                           // Выход из цикла чтения

         ????????????????????????????????????????????????????
        }
    FileClose(Handle);                                         // Закрываем файл
    return;                                                    // Выход из функции
   }
 
Leo59:
Veuillez expliquer comment mettre les données d'un tableau (*.csv) dans un tableau statique tridimensionnel.
La première colonne du tableau a un index sur la première dimension du tableau,
La deuxième colonne est l'index de la deuxième dimension du tableau,
Dans la troisième colonne et les suivantes - les valeurs elles-mêmes selon la troisième dimension du tableau.



Si pour l'analyse dans Excel même, le tableau récapitulatif.

Pour montrer certaines des données, il semble que nous devions avoir des tableaux de chaînes auxiliaires qui correspondent à la valeur de l'index.

 
splxgf:


.... il semble que nous devrons avoir des tableaux de chaînes auxiliaires qui correspondront à la valeur de l'index.

void AAA()
   {
    int       Handle;                                          // Файловый описатель
    string    File_Name = "AAA.csv";                           // Имя открываемого файла

    string    str_1 = "";                                      //  1 Номер индекса по первому измерению
    string    str_2 = "";                                      //  2 Номер индекса по второму измерению
    string    str_3 = "";                                      //  3 Значение
    string    str_4 = "";                                      //  4 Значение
    string    str_5 = "";                                      //  5 Значение

    Handle=FileOpen(File_Name, FILE_READ, ";");                // Открытие файла
    
    while(FileIsEnding(Handle)==false)                         // До тех пор, пока файловый...
        {                                                      // ...указатель не в конце файла
         // Чтение данных из строки до файлового разделителя
         str_1 = FileReadString(Handle);                       //  1 Номер индекса по первому измерению
         str_2 = FileReadString(Handle);                       //  2 Номер индекса по второму измерению
         str_3 = FileReadString(Handle);                       //  3 Значение
         str_4 = FileReadString(Handle);                       //  4 Значение
         str_5 = FileReadString(Handle);                       //  5 Значение
         
         if(FileIsEnding(Handle)==true)                        // Файловый указатель в конце файла
              break;                                           // Выход из цикла чтения

// Завели строковый массив

         // Преобразование типов данных и запись в масссив
         ArrayResize(Mas1, SizeMas1+1);                        // Увеличили размер массива Mas1

         Mas1[SizeMas1][0] = StrToInteger(str_1);              //  0 Номер индекса по первому измерению
         Mas1[SizeMas1][1] = StrToInteger(str_2);              //  1 Номер индекса по второму измерению
         Mas1[SizeMas1][2] = StrToDouble(str_3);               //  2 Значение
         Mas1[SizeMas1][3] = StrToDouble(str_4);               //  3 Значение
         Mas1[SizeMas1][4] = StrToDouble(str_5);               //  4 Значение
         SizeMas1++;                                           // Новый размер массива Mas1

// Что дальше  ????????????????????????????????????????????????????

        }
    FileClose(Handle);                                         // Закрываем файл
    return;                                                    // Выход из функции
   }
 

Comment supprimer tous les objets comme OBJ_ARROW_RIGHT_PRICE?

La commande ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE) ne supprime pas ! même après avoir changé de timeframe (pour redessiner tout le graphique en force)

J'ai écrit un script simple, il commente ce qu'il dit à l'écran :

Alert("obj_arrow_right_price=",OBJ_ARROW_RIGHT_PRICE) ; // =36

ObjectCreate("MyArrow",OBJ_ARROW_RIGHT_PRICE,0,Time[1],Open[1]) ; // créé OBJ_ARROW_RIGHT_PRICE

Alert("objectTipe=", ObjectType("MyArrow"), "ARROW CODE=",ObjectGet("MyArrow",OBJPROP_ARROWCODE) ) ; // cauchemar "objecType=" =22, je n'ai pas compris pourquoi pas 36 comme dans la première ligne ?

ResetLastError() ;

Alert("script delete arrow right price=",ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE)," lastError=",GetLastError() ) ; // objets supprimés =0, code d'erreur =0

Je continue l'expérience en écrivant : ObjectsDeleteAll(22) ; // objets supprimés =0 à nouveau

 
VoDyaMon:

Comment supprimer tous les objets tels que OBJ_ARROW_RIGHT_PRICE ?


Lisez à nouveau l'aide :

ObjectsDeleteAll

Supprime tous les objets d'un type spécifié et dans une sous-fenêtre spécifiée.

int  ObjectsDeleteAll(
   int   window=EMPTY,      // индекс окна
   int   type=EMPTY         // тип объекта для удаления
   );

Si les objets se trouvent dans la sous-fenêtre principale du graphique :

ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE);
 
isn-88:


Relisez l'aide :

ObjectsDeleteAll

Supprime tous les objets du type spécifié et de la sous-fenêtre spécifiée du graphique.

Si les objets se trouvent dans la sous-fenêtre du graphique principal :

Mais ne proposez pas d'options stupides. Cette commande permet de supprimer complètement tous les objets du graphique.