Una vera domanda - pagina 10

 
m100:

goldtrader ,forse ti sto facendo una domanda troppo stupida, ma comunque, da dove prende tutti i valori la "finestra dati"?


Questa è una domanda per gli sviluppatori del terminale MT4. Penso che provenga dai buffer degli indicatori e delle serie temporali rilevanti.
 
goldtrader:
Questa è una domanda per gli sviluppatori del terminale MT4. Penso che dai buffer degli indicatori e delle serie temporali corrispondenti.

Quindi non esiste una funzione equivalente come GetWindowsData(3 buffer,0 bar)?

GetWindowsData è arrivato da solo.

 
goldtrader:

Leggi msdn, WinApi, WindowHandle. Non sono un esperto di queste tecnologie. Tenete presente che per il vostro compito è una cazzata.

C'è qualcosa qui https://www.mql5.com/ru/forum/120356

Per ottenere questi valori dalla finestra dei dati - è necessario avere il cursore del mouse sempre sopra la finestra desiderata

non appena il cursore si sposta da qualche parte o perde il focus - la finestra smette di aggiornarsi

 
m100:

Quindi non esiste una funzione equivalente come GetWindowsData(3 buffer,0 bar)?

Ovviamente no, perché tutto ciò di cui avete bisogno è lì e non avete bisogno di ridondanza. La finestra dei dati è essenzialmente inutile.
 
OK grazie a tutti, smonterò il codice di drknn
 

Forse vale la pena spiegare qualcosa per rendere le cose più chiare.

La linea MyValue=MyValue/(PeriodSkolzjaschej+1); 1 viene aggiunta alla variabile PeriodSkolzjaschej perché il ciclo inizierà la ricerca dalla candela con numero = PeriodSkolzjaschej e finirà con candela zero. Quindi il numero totale di candele che hanno partecipato al ciclo sarà uguale a PeriodSkolzjaschej+1. Questo significa che se PeriodSkolzjaschej=35, il MA con period=36 sarà effettivamente coinvolto. Per ottenere una media mobile a 35 periodi senza cambiare nulla nel codice, dobbiamo impostare la variabile PeriodSkolzjaschej a 34.

 
drknn:

Forse vale la pena di chiarire alcune cose per far capire il punto.

La linea MyValue=MyValue/(PeriodSkolzjaschej+1); 1 è aggiunta alla variabile PeriodSkolzjaschej perché il ciclo inizierà la ricerca dalla candela con numero = PeriodSkolzjaschej, e finirà con la lettura della candela zero. Quindi il numero totale di candele che hanno partecipato al ciclo sarà uguale a PeriodSkolzjaschej+1. Questo significa che se PeriodSkolzjaschej=35, il MA con period=36 sarà effettivamente coinvolto. Per ottenere una media mobile a 35 periodi senza cambiare nulla nel codice, dobbiamo impostare la variabile PeriodSkolzjaschej a 34.

grazie

applied_price è una variabile extra?

 
m100:

grazie

applied_price è una variabile extra?


No - di default ho impostato iMACD() a zero, il che significa che l'indicatore dovrebbe essere costruito sulla base dei prezzi di chiusura. Se permetto all'utente di scegliere, allora la richiesta del valore dell'indicatore dovrebbe essere fatta così

Main_MACD=iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,0,0);

Signal_MACD=iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,1,0);

// ------- Усредняем сигнальную линию ------------------
for(int i=PeriodSkolzjaschej;i>=0;i--){
 MyValue=MyValue+iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,1,i);
}