linea verticale (separatore di periodo)?

Sezione dedicata a metatrader (ed altre piattaforme) ed al suo linguaggio di programmazione per il trading automatico

Moderatore: Dainesi

Rispondi
corfurio
Messaggi: 21
Iscritto il: 25/11/2015, 17:35

linea verticale (separatore di periodo)?

Messaggio da corfurio » 11/01/2017, 18:29

Ciao.
Sapete gentilmente dirmi, come posso per creare, delle "v_line", da utilizzare come separatori di periodo (diciamo mensile), cosi rimuovo quelle di default della mt4.
Grazie

(la linea posso crearla, ma non capisco come interagire con la funzione che mi rileva il PRIMO giorno del mese)

Codice: Seleziona tutto

ObjectCreate("V-Line",OBJ_VLINE,0,???,0);
ObjectSet("V-Line",OBJPROP_COLOR,Line.Color);
ObjectSet("V-Line",OBJPROP_STYLE,Line.Style);
ObjectSet("V-Line",OBJPROP_WIDTH,Line.Width);
ObjectSet("V-Line",OBJPROP_BACK,false);
Allegati
sprm.JPG
sprm.JPG (74.04 KiB) Visto 179 volte

Sponsor

Sponsor
 

Avatar utente
Dainesi
Messaggi: 301
Iscritto il: 12/05/2014, 12:10
Località: Castellanza (VA)
Contatta:

Re: linea verticale (separatore di periodo)?

Messaggio da Dainesi » 15/01/2017, 11:33

Salve corfurio,

La funzione ObjectCreate richiede alcuni parametri che cambiano in base al tipo di oggetto che vuoi andare a creare. Nello specifico per una linea verticale ti si chiede solo P1 e T1, ovvero un prezzo ed una data. Ricorda che il prezzo lo devi passare in formato double mentre la data in formato datetime

Hai due tipi di funzioni ObjectCreate per cui fai attenzione a dove posizioni i parametri.

Codice: Seleziona tutto

bool  ObjectCreate( 
   long          chart_id,      // chart ID 
   string        object_name,   // object name 
   ENUM_OBJECT   object_type,   // object type 
   int           sub_window,    // window index 
   datetime      time1,         // time of the first anchor point 
   double        price1,        // price of the first anchor point 
   ... 
   datetime      timeN=0,       // time of the N-th anchor point 
   double        priceN=0       // price of the N-th anchor point 
   );
 
The function creates an object with the specified name, type, and the initial coordinates in the specified chart subwindow:

bool  ObjectCreate( 
   string        object_name,   // object name 
   ENUM_OBJECT   object_type,   // object type 
   int           sub_window,    // window index 
   datetime      time1,         // time of the first anchor point 
   double        price1,        // price of the first anchor point 
   datetime      time2=0,       // time of the second anchor point 
   double        price2=0,      // price of the second anchor point 
   datetime      time3=0,       // time of the third anchor point 
   double        price3=0       // price of the third anchor point 
   );
 
Per quanto riguarda il recupero della data di inizio mese sfrutta le funzioni native del linguaggio che, essendo scritte in c, sono più efficienti di qualsiasi routine possiamo scrivere in MQL:

Codice: Seleziona tutto

//Qui recupero la data di inizio del mese corrente (offset pari a Zero). Per altri mesi regola tu l'offset!
datetime dtMonthStart = iTime(Symbol(), PERIOD_MN1, 0);
corfurio ha scritto:Ciao.
Sapete gentilmente dirmi, come posso per creare, delle "v_line", da utilizzare come separatori di periodo (diciamo mensile), cosi rimuovo quelle di default della mt4.
Grazie

(la linea posso crearla, ma non capisco come interagire con la funzione che mi rileva il PRIMO giorno del mese)

Codice: Seleziona tutto

ObjectCreate("V-Line",OBJ_VLINE,0,???,0);
ObjectSet("V-Line",OBJPROP_COLOR,Line.Color);
ObjectSet("V-Line",OBJPROP_STYLE,Line.Style);
ObjectSet("V-Line",OBJPROP_WIDTH,Line.Width);
ObjectSet("V-Line",OBJPROP_BACK,false);

corfurio
Messaggi: 21
Iscritto il: 25/11/2015, 17:35

Re: linea verticale (separatore di periodo)?

Messaggio da corfurio » 16/01/2017, 15:15

Grazie Dainesi, ho risolto, proprio grazie al tuo prezioso aiuto!
Buona giornata!!!

Rispondi