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

 
         string   shortName="fraktalSDV"; 
         long   chart_ID=ChartID();        // ID графика
         int win_idx=ChartWindowFind(chart_ID,shortName);
         string nameobj=TimeToStr(Time[0]);
         string name=Time[0]+1; 
         Print("indikator=",win_idx);         
            //--- сбросим значение ошибки
            ResetLastError();
            //--- создадим трендовую линию по заданным координатам
           if(!ObjectCreate(chart_ID,nameobj,OBJ_TREND,win_idx,Time[index],maximum1,Time[1],TRENDmax[1]))
            {
            Print(__FUNCTION__,
                  ": не удалось создать линию тренда! Код ошибки = ",GetLastError());
            return(0);
            } 
           if(!ObjectCreate(chart_ID,name,OBJ_TREND,win_idx,Time[min1],minimum1,Time[1],Low_[1]))
            {
            Print(__FUNCTION__,
                  ": не удалось создать линию тренда! Код ошибки = ",GetLastError());
            return(0);
            }       
           ObjectSet(nameobj,OBJPROP_RAY,false); 
           ObjectSet(name,OBJPROP_RAY,false);
Moins 1 tout de même. J'ai également essayé de mettre le nom de l'indicateur en minuscules, mais rien non plus.
 
forexman77:
Moins 1 tout de même. J'ai également essayé de mettre le nom de l'indicateur en minuscules, mais rien non plus.
Avez-vous assigné win_idx=1 ; ? Il suffit de prendre, et de définir spécifiquement le numéro de la sous-fenêtre.
 
Artyom Trishkin:
Avez-vous assigné win_idx=1 ; ? Il suffit de prendre, et de définir spécifiquement le numéro de la sous-fenêtre.

J'ai essayé, ça n'a pas aidé. Peut-être que c'est l'indicateur, mais les transactions semblent s'ouvrir correctement ?

Je continuerai demain, c'est l'heure de me coucher.

 

J'ai lu dans la documentation qu'il est préférable de faire le nom de l'indicateur avec des paramètres.

J'ai fait ce qui suit dans l'indicateur :

IndicatorSetString(INDICATOR_SHORTNAME,"fraktalsdv("+Period_MA_1+","+ma_shift+","+price+","+Period_+")"); 

dans le conseiller expert :

string   shortName="fraktalsdv("+Period_MA_1+","+ma_shift+","+price+","+Period_+")"; 

La fenêtre avec l'indicateur n'est pas détectée.

 
forexman77:

J'ai lu dans la documentation qu'il est préférable de faire le nom de l'indicateur avec des paramètres.

J'ai fait ce qui suit dans l'indicateur :

dans le conseiller expert :

La fenêtre avec l'indicateur n'est pas détectée.

Il y a clairement un problème dans votre code, car le script de test trouve facilement les indicateurs standard qui sont affichés dans la sous-fenêtre.
 
Karputov Vladimir:
Il s'agit clairement d'un problème dans votre code car le script de test trouve facilement les indicateurs standard qui sont affichés dans la sous-fenêtre.

Mais des transactions sont ouvertes et elles sont basées sur l'indicateur. Et l'indicateur produit des valeurs correctes lorsqu'il s'imprime dans l'EA.

Pour une raison quelconque, je pense que c'est parce que l'indicateur n'a pas de ligne #property strict (il ne fonctionne pas avec).

 
forexman77:

Mais des transactions sont ouvertes et elles sont basées sur l'indicateur. Et l'indicateur produit des valeurs correctes lorsqu'il s'imprime dans l'EA.

Il me semble que l'indicateur n'a pas de ligne #property strict (il ne fonctionne pas avec).

Non, ce n'est pas le cas. Essayez la fonction WindowFind()
 
Artyom Trishkin:
Non, ça ne l'est pas. Essayez la fonction WindowFind().
Retourne -1.
 
forexman77:
Retourne -1.

Recherchez les erreurs. Les indicateurs sont normalement recherchés à travers

intChartWindowFind(
longchart_id,// ID du graphique
string indicator_shortname // nom court de l'indicateur, voirINDICATOR_SHORTNAME

 
forexman77:

Aucune fenêtre d'indicateur n'a été détectée.

Voulez-vous trouver l'indicateur que l'EA crée pour les calculs sur le graphique ? Bonne chance.