Aiuto per la codifica - pagina 409

 

Ciao, è possibile che qualcuno possa codificare questo indicatore in modo da poterlo allegare in una finestra secondaria ....? Molte grazie.

File:
5days.mq4  4 kb
 

Ciao,

Ho alcuni pulsanti sul mio grafico e ho creato un rettangolo dietro questi pulsanti.

Ora ogni volta che voglio cliccare su un pulsante, raggiungo solo il rettangolo.

Come posso fare?

OBJPROP_SELECTABLE = false

o OBJPROP_BACK = true,

non aiutano.

 

Mladen, perché tutti voi indicatori dichiarate :

extern int Price = PRICE_CLOSE;[/PHP]

should be:

[PHP]extern int Price = PRICE_OPEN;

perché la candela dà il segnale di apertura, inizio. Ho ragione se il sbagliato?

 
popej30:
Mladen, perché tutti gli indicatori dichiarano:
extern int Price = PRICE_CLOSE;[/PHP]

should be:

[PHP]extern int Price = PRICE_OPEN;
perché candela dà segnale open, inizio. Ho ragione o no?
Hai una scelta di 7 prezzi in metatrader:

aprire

chiudere

alto

basso

mediano - (alto+basso)/2

tipico - (alto+basso+chiuso)/3

ponderato - (alto+basso+chiusura+chiusura)/4

Close è la chiusura abituale per il prezzo (cioè il prezzo che normalmente vedete sui vostri grafici poiché l'offerta è a volte diversa dalla chiusura), Using open price in indicator imposta il valore usando il prezzo aperto della barra e quindi ignora qualsiasi cambiamento attuale (barra aperta).

PS: l'opzione è lì per permetterti di usare qualsiasi prezzo tu voglia. Il valore predefinito che utilizza il prezzo di chiusura per il calcolo è ampiamente accettato come valore predefinito in quasi tutti gli indicatori (non solo metatrader). Se non ti piace il prezzo di chiusura, allora usa l'open, ma non c'è nessuna regola che dica che usare il prezzo open per la barra corrente sia meglio (al contrario - per le ragioni spiegate sopra)

 
popej30:
Mladen, perché tutti gli indicatori dichiarano:
extern int Price = PRICE_CLOSE;[/PHP]

should be:

[PHP]extern int Price = PRICE_OPEN;
perché candela dà segnale di apertura, inizio. Ho ragione se il sbagliato ?

La maggior parte dei soliti indicatori usa il prezzo di chiusura, tranne CCI che usa il prezzo tipico. Credo che sia perché mostra il prezzo corrente in modo migliore di quello di apertura. Se si imposta un indicatore sul prezzo di apertura, non ricalcola la candela corrente come fa con la chiusura, ma non mostra nemmeno dove si trova il prezzo corrente. Inoltre, se usi un indicatore sul prezzo di chiusura ed entri sulla prossima candela quando dà un segnale, è la stessa cosa che se usi il prezzo di apertura ed entri sulla candela corrente...

Edit : Ho appena visto che Mladen ha risposto, ho pensato che era il fine settimana e nessuno era qui, così ho voluto aiutare . Lascio comunque la mia risposta. Saluti.

 

Io penso che se l'indicatore segue il prezzo, l'indicatore si ridipingerà sempre.

 
popej30:
Io penso che se l'indicatore segue il prezzo, l'indicatore si ridipinge sempre.

Stai confondendo la ridipintura con il calcolo dei cambiamenti di prezzo della barra aperta corrente

Ancora una volta: la ridipintura/calcolo è quando le barre chiuse sono cambiate (e la ridipintura è un errore di codifica). Niente a che vedere con il cambiamento della barra aperta per riflettere lo stato attuale del prezzo

 

Come vedo non c'è nessuna possibilità di disegnare un rettangolo dietro un pulsante e definire che il clic sul pulsante è l'evento e non il rettangolo...

Ma ho un'altra domanda:

Come posso disegnare una linea orizzontale con una lunghezza definita? Ho provato con OBJ_TREND, ma un lato della linea è infinito o zero. Quindi non posso disegnare una linea orizzontale da Bid-10 a Bid+10.

Avete una soluzione?

 

Sono un codificatore principiante. come selezionare solo il simbolo della finestra corrente tramite la funzione orderselect?

for(int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); come modificare questa frase?

grazie mille.

 
leowang:
Sono un principiante. come selezionare solo il simbolo della finestra corrente con la funzione orderelect?

for(int cnt=0;cnt<OrdersTotal();cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); come modificare questa frase?

grazie mille.

Non puoi modificare la selezione degli ordini. Ma puoi filtrare gli ordini elaborati. Aggiungi un "if" subito dopo la OrderSelect() e tutta l'elaborazione dovrebbe avvenire dopo la linea seguente:

if (OrderSymbol()!=Symbol()) continua;

Motivazione: