Comment apprendre à créer des objets graphiques ? MQL4. - page 4

 
Integer:

Avant la création, vous pouvez vérifier si l'objet existe, fonction ObjectFind(). Vous n'avez rien à faire, ça existe et c'est bon, pas de problème.

Un ensemble d'objets. Vous pouvez ajouter l'heure de la barre au nom de l'objet, et obtenir un nom unique.

Ajustez la poutre. La propriété ObjectSet(Name,OBJPROP_RAY,false) ;

Wow, j'ai lu vos pensées. Déjà fait. Attribue le nom à l'heure actuelle.

J'ai coupé la poutre. C'est-à-dire, se souvenir de l'ancien nom pour en mettre un faux ?

 
forexman77:

...

Coupez la poutre. Tu veux dire se souvenir de l'ancien nom en mettant un faux nom ?

Immédiatement après la création, appelez ObjectSet() avec le même nom que celui avec lequel la création a été effectuée.
 

Essayer de dessiner des objets dans le conseiller expert, sous-fenêtre des indicateurs (MQL4)

L'indicateur est le même, cela signifie que la sous-fenêtre doit être numéro 1.

long   chart_ID=0;        // ID графика
int win_idx=1;
string nameobj=TimeToStr(Time[0]);       
            //--- сбросим значение ошибки
            ResetLastError();
            //--- создадим трендовую линию по заданным координатам
           if(!ObjectCreate(chart_ID,nameobj,OBJ_TREND,win_idx,Time[index],maximum1,Time[1],TRENDmax[1]))
            {
            Print(__FUNCTION__,
                  ": не удалось создать линию тренда! Код ошибки = ",GetLastError());
            return(0);
            } 

Pas de dessin. L'erreur 4206 (sous-fenêtre non trouvée) s'affiche.

Le conseiller expert ouvre les transactions comme il se doit visuellement. C'est-à-dire que les variables"Time[index],maximum1,Time[1],TRENDmax[1]" sont correctes.

 
forexman77:

Essayer de dessiner des objets dans le conseiller expert, sous-fenêtre des indicateurs (MQL4)

L'indicateur est le même, cela signifie que la sous-fenêtre doit être numéro 1.

Pas de dessin. L'erreur 4206 (Impossible de trouver la sous-fenêtre) apparaît.

Au lieu de "1", mettezChartWindowFind().
 
Karputov Vladimir:
Au lieu de "1", mettezChartWindowFind().

Comment puis-je obtenir le nom court de l'indicateur dans l'EA ?

Dans l'indicateur lui-même, j'ai créé un nom court

IndicatorShortName("fraktalSDV");
 

J'ai fait un script :

void OnStart()
  {
string   shortName="fraktalSDV"; 
long   chart_ID=0;        // ID графика
int win_idx=ChartWindowFind(chart_ID,shortName);
Alert("Окно = ", win_idx);
  }

La fenêtre s'affiche comme elle doit l'être.

Dans l'EA :

string   shortName="fraktalSDV"; 
long   chart_ID=0;        // ID графика
int win_idx=ChartWindowFind(chart_ID,shortName);
         Print("shortName=",shortName);
         string nameobj=TimeToStr(Time[0]);          
            //--- сбросим значение ошибки
            ResetLastError();
            //--- создадим трендовую линию по заданным координатам
           if(!ObjectCreate(chart_ID,nameobj,OBJ_TREND,win_idx,Time[index],maximum1,Time[1],TRENDmax[1]))
            {
            Print(__FUNCTION__,
                  ": не удалось создать линию тренда! Код ошибки = ",GetLastError());
            return(0);
            } 

obtenir le numéro de la sous-fenêtre -1

 
forexman77:

J'ai fait un script :

La fenêtre s'affiche comme elle doit l'être.

Dans l'EA :

obtenir le numéro de la sous-fenêtre -1

Etes-vous sûr d'avoir un indicateur dans la sous-fenêtre avec le nom court"fraktalSDV" ?
 
Karputov Vladimir:
Êtes-vous sûr d'avoir un indicateur sur votre graphique dans la sous-fenêtre avec le nom court"fraktalSDV" ?
Lorsque j'active la visualisation dans le testeur, elle apparaît à la fin de l'exécution.
 
forexman77:
Lorsque j'active la visualisation dans le testeur, elle apparaît à la fin de l'exécution.
Créez un modèle avec l'indicateur et enregistrez ce modèle sous le nom de testeur.
 
Karputov Vladimir:
Créez un modèle avec l'indicateur et sauvegardez ce modèle sous le nom de testeur.

C'est-à-dire créer un profil graphique avec l'indicateur ?

J'ai essayé de lancer l'indicateur dans le testeur, au ralenti, il est rendu.