Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 793

 
Vladimir Karputov:

п. 5. :)


  • Non avete bisogno di avvisi - fate semplicemente Print().
  • È necessario vagliare gli eventi per:
    • lparam
    • dparam
    • e sparam

Posso setacciarlo. Ma la mia domanda riguarda un'altra cosa.
Sto cercando di capire (la mia testa non è solo per indossare un cappello, giusto?) se questa funzione funziona correttamente. È normale che sia così o c'è qualcosa che non va?

 
User_mt5:

Cercando di ottenere una chiamata OnChartEvent su un clic del mouse su un oggetto.

...


Ecco cosa viene passato per"CHARTEVENT_OBJECT_CLICK".

Evento

valore del parametro id

lparam valore del parametro

dparam valore del parametro

Valore del parametro sparam

L'evento di un clic del mouse su un oggetto grafico

CLIC SULL'OGGETTO

Coordinata X

Coordinata Y

Nome dell'oggetto grafico in cui si è verificato l'evento


Cioè, dovete prendere id==CHARTEVENT_OBJECT_CLICK e sparam==nome del vostro oggetto.
 
Vladimir Karputov:

Ecco cosa viene passato per"CHARTEVENT_OBJECT_CLICK".

Evento

Valore del parametro id

lparam valore del parametro

dparam valore del parametro

Valore del parametro sparam

L'evento di un clic del mouse su un oggetto grafico

CLIC SULL'OGGETTO

Coordinata X

Coordinata Y

Nome dell'oggetto grafico in cui si è verificato l'evento


Cioè, dovete prendere id==CHARTEVENT_OBJECT_CLICK e sparam==nome del vostro oggetto.

È quello che ho pensato anch'io all'inizio. Ma la stringa dà il nome dell'oggetto che è stato cliccato. Quindi sembra essere un parametro di uscita.
O mi sbaglio?

 
User_mt5:

È quello che ho pensato anch'io all'inizio. Ma la stringa emette il nome dell'oggetto che è stato cliccato. Quindi, apparentemente, è un parametro di uscita dopo tutto.
O mi sbaglio?


Avete bisogno di catturare un clic su un oggetto? Ti ho dato un suggerimento su come fare sopra.

Forum sul trading, sistemi di trading automatico e test di strategia

Domande dai principianti MQL5 MT5 MetaTrader 5

Vladimir Karputov, 2017.11.07 13:38


Ecco cosa viene passato per"CHARTEVENT_OBJECT_CLICK".

Evento

Valore del parametro id

Valore del parametro lparam

dparam valore del parametro

Valore del parametro sparam

L'evento di un clic del mouse su un oggetto grafico

CLIC SULL'OGGETTO

Coordinata X

Coordinata Y

Nome dell'oggetto grafico in cui si è verificato l'evento


Cioè, dovete prendere id==CHARTEVENT_OBJECT_CLICK e sparam==nome del vostro oggetto.

 

Sì, sì, credo di aver capito.
La funzione stessa è chiamata da qualsiasi evento (sia mouse che tastiera), e all'interno è necessario filtrare l'evento giusto.
Grazie.

 
User_mt5:

Sì, sì, credo di aver capito.
La funzione viene chiamata su qualsiasi evento (sia mouse che tastiera), e all'interno è necessario filtrare l'evento giusto.
Grazie.


Ci sono diversi eventi(tipi di eventi): cliccare, creare, cambiare proprietà ... Quindi prima bisogna vagliare gli eventi per ID, poi per sparam.


 
Vladimir Karputov:

Ci sono diversi eventi(tipi di eventi): cliccare, creare, cambiare proprietà ... Quindi prima bisogna vagliare gli eventi per ID, poi per sparam.


Sì, grazie. Per qualche ragione, ho pensato che è possibile setacciare a livello di chiamata di funzione. E volevo setacciare tutto per id, quindi ho messo id nella chiamata della funzione.
"Beh, pazzo, cosa puoi prendere!)
E all'interno, naturalmente, è facile. Grazie ancora.

 

Non voglio creare un nuovo argomento per una piccola domanda, forse anche i nuovi arrivati troveranno utile saperlo, come me.

A che ora è possibile presentare nuove domande di lavoro freelance?

Se ho già usato tutti e 10 ieri.

 

Qualcuno può dirmi da che parte andare? Excel ha nuove funzioni "Forecasting Functions", ecc - per esempio "PREPARTS.ETS", "PREPARTS.ETS.DOVINTERVAL".

C'è qualcosa di simile in MQL5? Cioè, array di dati in ingresso - array di previsioni in uscita.

Per essere in grado di costruire una nuova linea come nello screenshot, linea bianca nell'indicatore inferiore.

 

Amici, aiutate un manichino. L'idea è la seguente: Quando la variabile "Ind" raggiunge un determinato livello, si passa ad aspettare che "Value" cambi direzione e che "Ind" non venga più controllato.


   if(Ind[0]<=-0.7)
     {
      while(Value[3]>Value[2]<Value[1])
        {
         if(CopyBuffer(InpInd2_Handle,1,SignalBar,3,Value)<=0)
           {
            Recount=true;
            return;
           }
        }
      if(BuyPosOpen) BUY_Open=true;
     }


Qual è il modo giusto per farlo?