Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1125

 
BillionerClub:

Come posso convertire la posizione del mouse in tempo, ma senza lanciare?

Ci deve essere almeno un qualche tipo di evento. Spostare il mouse funzionerebbe?
 
Alexey Viktorov:
Beh, ci deve essere un qualche tipo di evento. Forse un movimento del mouse potrebbe funzionare?

No, solo la lettura delle coordinate e la conversione durante la candela.

 
Alexey Viktorov:
Beh, almeno ci deve essere qualche evento. Forse muovendo il mouse potrebbe funzionare?

Sì grazie, hai ragione, è la stessa cosa. Anche se ovviamente una persona dovrebbe prima muovere il mouse e poi premere il tasto di scelta rapida.

 
Si è rivelato impossibile usare funzioni di eventi personalizzati negli script. Ora devo eseguire l'indicatore e usarlo per eseguire lo script. In linea di principio, che differenza fa se non si usa il drag and drop, ma i tasti di scelta rapida.
 
BillionerClub:
È divertente, si scopre che le funzioni evento personalizzate non possono essere utilizzate negli script. Ora devo eseguire l'indicatore ed eseguire lo script attraverso di esso. In linea di principio, che differenza fa se non uso il drag and drop, ma i tasti di scelta rapida.

Probabilmente avrei dovuto scrivere nella documentazione in modo più specifico che OnChartEvent non funziona negli script, ma tale linea è nella documentazione

La funzione può essere chiamata in Expert Advisors e indicatori, dovrebbe avere tipo void e 4 parametri:

E gli eventi personalizzati non c'entrano niente.

 
BillionerClub:

Come si fa a convertire la posizione del mouse in tempo, ma senza lanciare?

C'è chi scrive senza punteggiatura, chi fa un po' di confusione... Pensano che siccome stanno facendo una domanda tutti dovrebbero sapere di cosa stanno parlando...

Sei andato a scuola? È stato difficile? Pensi che sarà facile qui? Non preferiresti tornare a scuola?

 
Alexey Viktorov:

Bene, ecco la linea.

Basta mettere un numero invece di una formula e ...

Lo faccio, ma restituisce zero. Questa funzione nell'indicatore"A_D1", metto il suo valore nel buffer, poi chiamo l'indicatore dallo script, valore di uscita alla stampante

  Lot= iCustom(NULL,0,"A_D1",0,1);
  Print("Lot ",DoubleToStr(Lot,2));

Se la funzione nell'indicatore con la stringa

RiskMony = floor(FreeMargin*risk/100);

stamperà un certo numero 0,07, ma se

RiskMony =1.5;//

stamperà 0,00

 

Grazie a tutti per l'aiuto e le critiche, siate tutti gentili. Ho aggiunto l'intero script all'indicatore tramite CHARTEVENT_CLICK come funzione. Tutto ha funzionato, convenienza nei tempi e velocità.


#include <Keys.mqh>
CKeys ckeys;

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//--- нажатие кнопки на клавиатуре 
   if(id==CHARTEVENT_CLICK)
     {

      if(ckeys.KeyCtrlState())
        {
        Запустить();        
        }

     }

  }



 
macleta:

Lo faccio, ma restituisce zero. Questa funzione nell'indicatore"A_D1", metto il suo valore nel buffer, poi chiamo l'indicatore dallo script, emetto il valore sulla stampante

Se la funzione nell'indicatore con la stringa

stamperà un certo numero 0,07, ma se

verrà stampato 0,00.

Int sembra andare all'arrotondamento binario, al troncamento, e non è compatibile con altri tipi di dati, senza perdite.

 
macleta:

Lo faccio, ma restituisce zero. Questa funzione nell'indicatore"A_D1", metto il suo valore nel buffer, poi chiamo l'indicatore dallo script, emetto il valore sulla stampante

Se la funzione nell'indicatore con la stringa

stamperà un certo numero 0,07, ma se

stamperà 0,00

Che ne dici di 15 o 20 invece di 1,5? Forse volete fare poco profitto su un TP troppo lungo?
Motivazione: