Una domanda per i conoscitori di MQL - pagina 4

 
Aback... Sono entrato nella "Domanda per gli esperti di MQL"... Scusa, semmai sono un programmatore bravo quanto un d.... ma io sono sempre obiettivo! :)
 
leonid553:

Credo di aver capito. Ho impostato il nome dell'oggetto nella funzione.

ObjectCreate(name+ WindowExpertName(), OBJ_LABEL, WindowFind(WindowExpertName()), 0, 0);


Non si tratta di oggetti...

Lo si scrive in init()

IndicatorShortName("CC-STOKS ");

Si usa WindowExpertName() come nome di un indicatore in una funzione di rendering...

Deciditi, caro amico (scusa la familiarità), o l'indicatore si chiama "CC-STOKS" (uno pseudonimo), o porta il nome dell'esperto...

 

Sto parlando del mio...

Beh, non vedo un controllo per un oggetto.

 

Rimossa la linea IndicatorShortName("CC-STOKS ");

Ora sembra funzionare.

//------------------------------------------

Controllato.

 string info =ObjectFind("Symbol1+WindowExpertName()");
     IndicatorShortName(info);     

Il commento restituisce "-1".

E - non importa se l'"alias" è lì o se è stato cancellato.

 

Sì, funziona bene...

Grazie a tutti coloro che hanno aiutato e risposto alle domande!

 

Ho bevuto qualche birra, ma tu mi fai impazzire...

rendere chiaro cosa sta succedendo...


o

1. nessun nome breve e

static int WINDOW = -1;

int start(){
   if (WINDOW == -1) WINDOW = WindowFind( WindowExpertName() );
}

il vostro init() così com'è

o impostare il nome breve nel vostro int()

string short = "CC-STOKS";

int init(){
   IndicatorShortName( short );
   // остальное прочее
}

int start(){
   if (WINDOW == -1) WINDOW = WindowFind( short );
}

e poi quando si disegnano gli oggetti, usare WINDOW come numero di sottofinestra

ObjectCreate(name + WindowExpertName(), OBJ_LABEL, WINDOWS, 0, 0);

la funzione oggetto dovrebbe assomigliare a questa

void object(string name, int window, string text, color col, int corner,
            int x, int y, bool back = false, int fontsize = 9, 
            string fontname = "Tahoma") {
   if (ObjectFind(name)==-1)      
      ObjectCreate(name, OBJ_LABEL, window, 0, 0);
   ObjectSetText(name, text, fontsize, fontname, col);
   ObjectSet(name, OBJPROP_CORNER, corner);
   ObjectSet(name, OBJPROP_BACK,back);
   ObjectSet(name, OBJPROP_XDISTANCE, x);
   ObjectSet(name, OBJPROP_YDISTANCE, y);     
}

in questo modo, tutti gli attributi chiave sono passati come parametri, e a proposito, il nome dell'oggetto dovrebbe essere formato al di fuori della funzione ...

 
OK. Passando attraverso le vostre istruzioni ...
 

Buon pomeriggio. Si prega di avvisare.

È possibile disegnare un triangolo nella finestra dell'indicatore? Se sì, come impostare le coordinate?

Non riesco a trovare un modo per impostare le coordinate di un triangolo nell'aiuto di mql.

 
Rita:

Buon pomeriggio. Si prega di avvisare.

È possibile disegnare un triangolo nella finestra dell'indicatore? Se sì, come specificare le coordinate?

Non riesco a trovare un modo per impostare le coordinate di un triangolo nell'aiuto di mql.


ObjectCreate(имя_объекта, OBJ_TRIANGLE, 0, вершина1_время, вершина1_цена, вершина2_время, вершина2_цена, вершина3_времявершина3_цена);
Se non è nella sottofinestra principale, usa il numero di sottofinestra corrispondente invece di 0: https://docs.mql4.com/ru/windows/WindowFind
 


ObjectCreate(name, OBJ_TRIANGLE, WindowFind(WindowExpertName(), Time[-1],vertex1_price,

Tempo[-5],vertex2_price,

Time[-7],vertex3_price, );

//--------------------------------------------------------------------------------------------------------------------------

Ho impostato le coordinate dei nodi del triangolo in base al tempo (per esempio - in base al tempo di apertura delle barre future). Il resto non mi è molto chiaro. Non è il prezzo che viene visualizzato sulla scala della finestra dell'indicatore. È la gradazione dei valori degli indicatori.

Ho bisogno di "mettere" un triangolo con top rigidamente fissato, indipendentemente dal prezzo.

E preferibilmente, dovrebbe essere fissato rigidamente nell'angolo destro (o inferiore).

E non so come impostare le coordinate dei suoi vertici - sull'asse verticale della scala dell'indicatore: