Erreurs, bugs, questions - page 1480

 
Vasyl Nosal:

'+' - ne peut pas convertir l'enum prob.mq4 14 51

Je vais écrire un servisdesk.


Hmm. ça marche pour moi.
 
Karputov Vladimir:
Avez-vous vu l'exemple d'ObjectSetDouble dans la référence ? Il crée des Fibo, ajoute des niveaux et obtient les valeurs des niveaux.

ObjectSetDouble(chart_ID,name,OBJPROP_LEVELVALUE,i,values[i]);

Fixe le prix.

Si elle est GET, elle renvoie la valeur du niveau, et non le prix.

 
Vladislav Andruschenko:
Hmm. Ça marche pour moi.
Donnez-moi le code.
 

C'est une erreur de débutant, mais expliquez-moi pourquoi le bouton F1 dans l'éditeur de la nouvelle version 950 ne fonctionne pas ?

MERCI !

 
Vasyl Nosal:

ObjectSetDouble(chart_ID,name,OBJPROP_LEVELVALUE,i,values[i]);

Fixe le prix.

Si elle est GET, elle renvoie la valeur du niveau, et non le prix.

Obtient le prix des points d'ancrage Fibo :

//+------------------------------------------------------------------+
//|                                              ObjectGetDouble.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property script_show_inputs
#property description "Получение цены точки привязки"
input string name_fibo="Fibo";   // имя Фибо
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   double temp=0.0;
   temp=ObjectGetDouble(0,name_fibo,OBJPROP_PRICE,0);
   Print("Цена точки привязки ",0," равна ",DoubleToString(temp,Digits()));
   temp=ObjectGetDouble(0,name_fibo,OBJPROP_PRICE,1);
   Print("Цена точки привязки ",1," равна ",DoubleToString(temp,Digits()));
  }
//+------------------------------------------------------------------+
Dossiers :
Test.mq5  2 kb
 
Karputov Vladimir:

Vous obtenez le prix des points d'ancrage Fibo :

И ? C'est le prix de 0% et de 100%.

Et vous devez connaître le prix de tous les niveaux.

 
Vasyl Nosal:

И ? C'est le prix de 0% et de 100%.

Et vous devez connaître le prix de tous les niveaux.

Pour autant que je sache, il est calculé comme une proportion à travers les niveaux 0 et 100. Il n'y a pas de fonctions spéciales pour cela.
 
Alexey Kozitsyn:
Pour autant que je sache, il est calculé proportionnellement à travers les niveaux 0 et 100. Il n'y a pas de fonctions spéciales pour cela.
Oui. Vous devez le calculer manuellement et obtenir la valeur des niveaux via
ObjectGetDouble(ChartID(),name_fibo,OBJPROP_LEVELVALUE,i,temp_price)

//+------------------------------------------------------------------+
//|                                              ObjectGetDouble.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.01"
#property strict
#property script_show_inputs
#property description "Получение цены точки привязки и значение уровней"
input string name_fibo="Fibo";   // имя Фибо
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   double temp=0.0;
//--- цена точки привязки
   temp=ObjectGetDouble(0,name_fibo,OBJPROP_PRICE,0);
   Print("Цена точки привязки ",0," равна ",DoubleToString(temp,Digits()));
   temp=ObjectGetDouble(0,name_fibo,OBJPROP_PRICE,1);
   Print("Цена точки привязки ",1," равна ",DoubleToString(temp,Digits()));

//--- значение уровней
//--- кстати, а сколько у нас Фибо-уровней ? 
   int levels=ObjectGetInteger(0,name_fibo,OBJPROP_LEVELS);
   double temp_price=0.0;
   for(int i=0;i<levels;i++)
     {
      ResetLastError();
      if(!ObjectGetDouble(ChartID(),name_fibo,OBJPROP_LEVELVALUE,i,temp_price))
         Print("Error ",GetLastError());
      else
         Print("Значение уровня ",i," равно ",DoubleToString(temp_price,Digits()));
     }
  }
//+------------------------------------------------------------------+

Et voici à peu près le résultat :

2016.01.27 15:54:45.905 Test (EURUSD,M5)        Цена точки привязки 0 равна 1.09046
2016.01.27 15:54:45.905 Test (EURUSD,M5)        Цена точки привязки 1 равна 1.08564
2016.01.27 15:54:45.905 Test (EURUSD,M5)        Значение уровня 0 равно 0.00000
2016.01.27 15:54:45.905 Test (EURUSD,M5)        Значение уровня 1 равно 0.23600
2016.01.27 15:54:45.905 Test (EURUSD,M5)        Значение уровня 2 равно 0.38200
2016.01.27 15:54:45.905 Test (EURUSD,M5)        Значение уровня 3 равно 0.50000
2016.01.27 15:54:45.905 Test (EURUSD,M5)        Значение уровня 4 равно 0.61800
2016.01.27 15:54:45.905 Test (EURUSD,M5)        Значение уровня 5 равно 1.00000
2016.01.27 15:54:45.905 Test (EURUSD,M5)        Значение уровня 6 равно 1.61800
2016.01.27 15:54:45.905 Test (EURUSD,M5)        Значение уровня 7 равно 2.61800
2016.01.27 15:54:45.905 Test (EURUSD,M5)        Значение уровня 8 равно 4.23600
Dossiers :
Test.mq5  2 kb
 
Je veux le prix, pas la valeur du niveau.
 
Vasyl Nosal:

И ? C'est le prix de 0% et de 100%.

Et vous devez connaître le prix de tous les niveaux.

Lorsque vous posez des questions, lisez-vous les réponses ? Méthodes de la classe CChartObject :
LevelsCount - Получает/устанавливает количество уровней объекта
LevelValue - Получает/устанавливает значение уровня

Cette classe est la classe de base pour une famille de classes permettant de travailler avec des objets graphiques, y compris les entités Fibo.

Vous pouvez les créer avec l'objet de ces classes.

Raison: