Erreurs, bugs, questions - page 2041

 
Vitaly Muzichenko:

Cela est compréhensible, en passant le paramètre par référence. Mais la question reste ouverte : pourquoi la fonction ne voit-elle pas dans quel numéro de sous-fenêtre l'indicateur est installé et ne prend-elle pas les données de celui-ci ?

HAUTEUR_DU_GRAPHIQUE_EN_PIXELS
 
fxsaber:
HAUTEUR_DU_GRAPHIQUE_EN_PIXELS

C'est toute une histoire avec les calculs si vous avez plusieurs indicateurs dans des sous-fenêtres, mais merci quand même pour votre temps.

 
Vitaly Muzichenko:

C'est toute une histoire avec les calculs s'il y a plusieurs indicateurs dans des sous-fenêtres, mais merci quand même pour votre temps.

https://www.mql5.com/ru/docs/chart_operations/chartwindowfind

Документация по MQL5: Операции с графиками / ChartWindowFind
Документация по MQL5: Операции с графиками / ChartWindowFind
  • www.mql5.com
1. Функция ищет на указанном графике подокно с указанным "коротким именем" индикатора (короткое имя выводится слева вверху подокна) и в случае удачи возвращает номер подокна. Не следует путать короткое имя индикатора и имя файла, которое указывается при создании индикатора функциями iCustom() и IndicatorCreate(). Если короткое наименование...
 

Oui, ce sont toutes les fonctions que je connais.

La tâche est simple, nous devons relier l'objet de la 4ème sous-fenêtre (surligné en rouge) au prix, dans ce cas il s'agit de -0,02, et la coordonnée Y sur le graphique est 34.


 
Vitaly Muzichenko:

La tâche est simple, vous devez relier l'objet de la sous-fenêtre 4 (surligné en rouge) au prix, dans ce cas il s'agit de -0,02, et la coordonnée Y sur le graphique est 34.

#property indicator_separate_window

#property indicator_buffers 0 
#property indicator_plots 0

#define  CHART_SUBWINDOW_BORDER_SIZE 2 // Размер разделителя подокон

void OnInit()
{
  int X = 0;
  int Y = 0;

  const int SubWindow = ChartWindowFind();
  
  for (int i = 0; i < SubWindow; i++)  
    Y += (int)ChartGetInteger(0, CHART_HEIGHT_IN_PIXELS, i) + CHART_SUBWINDOW_BORDER_SIZE;
  
  int SubWindow2;
  datetime time;
  double Price;
  
  if (ChartXYToTimePrice(0, X, Y, SubWindow2, time, Price))
    Print(SubWindow2);
}

int OnCalculate ( const int rates_total, const int, const int, const double &[] )
{ 
  return(rates_total);
}
 
fxsaber:

Merci pour la version terminée, je vais essayer de la joindre aux indicateurs.

P.S. Ça a marché, merci encore !


Mais la question demeure : pourquoi devrais-je spécifier le numéro de la sous-fenêtre dans la fonction, si je dois danser avec un tambourin ?

 
Vitaly Muzichenko:

Pourquoi devrais-je spécifier le numéro de la sous-fenêtre dans la fonction si je dois jouer avec ?

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Erreurs, bogues, questions

Kirill Belousov, 2017.10.15 19:50

Nous ne spécifions pas le numéro de la sous-fenêtre, la fonction nous indique(il s'agit d'un paramètre de sortie, pas d'un paramètre d'entrée) - dans quelle sous-fenêtre du graphique avec l'ID spécifié se trouve le graphique des prix et quels prix et heure correspondent aux coordonnées X,Y que nous avons spécifiées sur ce graphique.
 
Vitaly Muzichenko:

Merci pour la variante terminée, je vais essayer de la joindre aux indicateurs.

P.S. Ça a marché, merci encore !


Mais la question demeure : pourquoi devrais-je spécifier le numéro de la sous-fenêtre dans la fonction, si je veux faire du désordre ?

La danse peut être raccourcie en utilisant ChartGetInteger() avec ce paramètre

DISTANCE_FENÊTRE_GRAPHIQUE

Distance en pixels le long de l'axe vertical Y entre le bord supérieur de la sous-fenêtre de l'indicateur et le bord supérieur de la fenêtre principale du graphique. Lors des événements de souris, les coordonnées du curseur sont transmises dans les coordonnées de la fenêtre principale du graphique, tandis que les coordonnées des objets graphiques dans une sous-fenêtre d'indicateurs sont définies par rapport au coin supérieur gauche de la sous-fenêtre.

Cette valeur est nécessaire pour convertir les coordonnées absolues du graphique principal en coordonnées locales d'une sous-fenêtre afin de travailler correctement avec les objets graphiques dont les coordonnées sont définies par rapport au coin supérieur gauche du cadre de la sous-fenêtre.

int modificateur r/o - numéro de sous-fenêtre

 
Kirill Belousov:

La danse peut être raccourcie en utilisant ChartGetInteger() avec ce paramètre

DISTANCE_FENÊTRE_GRAPHIQUE

Distance en pixels le long de l'axe vertical des y entre le cadre supérieur de la sous-fenêtre de l'indicateur et le cadre supérieur de la fenêtre principale du graphique. Lors des événements de souris, les coordonnées du curseur sont transmises dans les coordonnées de la fenêtre principale du graphique, tandis que les coordonnées des objets graphiques dans une sous-fenêtre d'indicateurs sont définies par rapport au coin supérieur gauche de la sous-fenêtre.

Cette valeur est nécessaire pour convertir les coordonnées absolues du graphique principal en coordonnées locales d'une sous-fenêtre afin de travailler correctement avec les objets graphiques dont les coordonnées sont définies par rapport au coin supérieur gauche du cadre de la sous-fenêtre.

int modificateur r/o - numéro de sous-fenêtre

Merci, raccourci, même résultat, mais moins de code !

 

Quelle est l'erreur :

invalid EX5 file (7)
global initialization failed
global initialization critical error


se produit lors du téléchargement d'un EA depuis le Marketplace.

Build 1653, Windows 7 64.

Même conseiller expert directement - fonctionne bien.