Come posso imparare a creare oggetti grafici? MQL4. - pagina 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);
Meno 1 lo stesso. Ho anche provato a fare il nome dell'indicatore con tutte lettere minuscole, anche questo niente.
 
forexman77:
Meno 1 lo stesso. Ho anche provato a fare il nome dell'indicatore con tutte lettere piccole, anche questo niente.
Hai assegnato win_idx=1; ? Basta prendere, e impostare specificamente il numero di sottofinestra.
 
Artyom Trishkin:
Hai assegnato win_idx=1; ? Basta prendere, e impostare specificamente il numero di sottofinestra.

L'ho provato, non mi ha aiutato. Forse è l'indicatore, ma i trade sembrano aprirsi correttamente?

Continuerò domani, l'ora di andare a letto è passata.

 

Ho letto nella documentazione che è meglio fare il nome dell'indicatore con parametri.

Ho fatto quanto segue nell'indicatore:

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

nell'Expert Advisor:

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

La finestra con l'indicatore non viene rilevata.

 
forexman77:

Ho letto nella documentazione che è meglio fare il nome dell'indicatore con parametri.

Ho fatto quanto segue nell'indicatore:

nell'Expert Advisor:

La finestra con l'indicatore non viene rilevata.

C'è chiaramente un problema nel tuo codice, poiché lo script di test trova facilmente gli indicatori standard che vengono visualizzati nella sottofinestra.
 
Karputov Vladimir:
Chiaramente un problema nel tuo codice perché lo script di test trova facilmente gli indicatori standard che vengono visualizzati nella sottofinestra.

Ma i trade sono aperti e si basano sull'indicatore. E l'indicatore emette valori corretti quando viene stampato nell'EA.

Per qualche ragione penso che sia perché l'indicatore non ha la linea #property strict (non funziona con essa)

 
forexman77:

Ma i trade sono aperti e si basano sull'indicatore. E l'indicatore emette valori corretti quando viene stampato nell'EA.

In qualche modo mi sembra che l'indicatore non abbia la linea #property strict (non funziona con essa)

No, non lo è. Prova la funzione WindowFind()
 
Artyom Trishkin:
No, non lo è. Provate la funzione WindowFind().
Restituisce -1.
 
forexman77:
Restituisce -1.

Cercare gli errori. Gli indicatori sono normalmente ricercati attraverso

intChartWindowFind(
longchart_id,// ID del grafico
string indicator_shortname // nome breve dell'indicatore, vediINDICATOR_SHORTNAME

 
forexman77:

Non è stata rilevata alcuna finestra indicatrice.

Vuoi trovare l'indicatore che l'EA crea per i calcoli sul grafico? Buona fortuna.