Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 943

 

Chi sa come scoprirlo

longchart_id, // ID del grafico. 0 significa grafico corrente.

se il grafico non è aggiornato?

 
Leo59:

Chi sa come scoprirlo

longchart_id, // ID del grafico. 0 significa il grafico corrente.

se il grafico non è quello corrente?

Poi è necessario selezionare il primo ChartFirst per controllare se è quello giusto, per simbolo e periodo, se non lo è selezionare il successivo e così via fino a quello giusto e definire il ChartID
 
AlexeyVik:
Poi dovete selezionare il primo ChartFirst per controllare se è quello giusto, per simbolo e periodo, se non lo è selezionate il successivo e così via fino a quello giusto e definite ChartID
Grazie!
 

Ciao a tutti. Trattare con librerie di funzioni, funzioni di importazione (#import) e file di inclusione (#include). Non sono sicuro di chi "include" chi? Quindi.

Le librerie si trovano nella cartella Libraries. Questa cartella può contenere 5 tipi di file (non esclusi): 1- .dll (libreria di funzioni Windows, già modificata per MT4 con il modificatore #defineMT4_EXPFUNC int __stdcall ...),

2- . ex4 (sembra essere il risultato della compilazione di .mq4 o .mqh), 3- .dat (non ho letto nulla a riguardo), 4- .mqh (probabilmente un file da abilitare, perché la libreria #property è disabilitata, ma Igor Kim lo ha,

come libreria di funzioni aggiuntive), 5- .mq4 (una libreria di funzioni personalizzate e include file, che può contenere funzioni personalizzate, include file, librerie .dll e altro.

I file include sono nella cartella Include e possono contenere altri file include, funzioni personalizzate, librerie .dll e altro. Anche nella cartella Include --> Controls --> res icons (immagini) .bmp.

Come potrei fare (rifare) lo script, che non funziona (non risponde ai clic del mouse e della tastiera). Forse perché le biblioteche di cartella non user32.dll (anche se usaWinUser32.mqh e non può da qualche parte non essere).

Potete dirmi dove c'è qualcosa che non va. Grazie in anticipo, le domande sono appena iniziate.

#property copyright "Copyright 2015"
#property link      "http://"
#property version   "1.00"
//#property strict
#include <WinUser32.mqh>

#import  "IdleLib.dll"
int      GetLastKeyWP();
int      GetLastMouseWP();
int      IdleLibInit();
int      IdleLibUnInit();
string   GetActiveWndName();
#import 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
      Alert("Начало.");
      IdleLibInit();//инициализируем Dll для перехвата событий.
      while(IsStopped()==false)
         {
            int    lastkey=GetLastKeyWP();         //Опрашиваем код посл. клавиши
            int    lastmouse=GetLastMouseWP();     //Опрашиваем код мыши.
            string lastwnd=GetActiveWndName();     //Имя окна Metatrader где произошло событие.
            if ((lastkey!=0) && (lastwnd!=""))
               {
                  Alert("Код нажатой клавиши=",lastkey," из окна ",lastwnd);
               }
            if ((lastmouse!=0) && (lastwnd!="") && (lastmouse!=512)) //отражаем все события кроме движения мыши.
               {
                  Alert("Код мыши=",lastmouse," из окна ",lastwnd);
               }
            Sleep(200);
         }  //while
      IdleLibUnInit();
      Alert("Завершение.");
  }
 
kosmos0975:

Ciao a tutti. Trattare con librerie di funzioni, funzioni di importazione (#import) e file di inclusione (#include). Non sono sicuro di chi "include" chi? Quindi.

Le librerie si trovano nella cartella Libraries. Questa cartella può contenere 5 tipi di file (non esclusi): 1- .dll (libreria di funzioni Windows, già modificata per MT4 con il modificatore #defineMT4_EXPFUNC int __stdcall ...),

2- . ex4 (sembra essere il risultato della compilazione di .mq4 o .mqh), 3- .dat (non ho letto nulla a riguardo), 4- .mqh (probabilmente un file da abilitare, perché la libreria #property è disabilitata, ma Igor Kim lo ha,

come libreria di funzioni aggiuntive), 5- .mq4 (una libreria di funzioni personalizzate e include file, che può contenere funzioni personalizzate, include file, librerie .dll e altro.

I file include sono nella cartella Include e possono contenere altri file include, funzioni personalizzate, librerie .dll e altro. Anche nella cartella Include --> Controls --> res icons (immagini) .bmp.

Come potrei fare (rifare) lo script, che non funziona (non risponde ai clic del mouse e della tastiera). Forse perché le biblioteche di cartella non user32.dll (anche se usaWinUser32.mqh e non può da qualche parte non essere).

Potete dirmi dove c'è qualcosa che non va. Grazie in anticipo, le domande sono appena iniziate.

La cartella Librerie contiene:

1) auto scritto *.dll;

2) *.ex4 - risultato delle librerie compilate con #proprietà libreria;

3) *.mq4 (non obbligatorio) da cui viene compilato *.ex4 dal punto 2.

 

Grazie per la vostra risposta. Per chiarire: 1) auto-scritto *.dll - libreria di funzioni Windows o il tuo codice, già adattato a MT4. 2) *.mq4 (sorgente) sarà compilato insieme al file principale o al suo *.ex4 (già compilato)

(già compilato) sarà incluso (aggiunto) al file principale durante la compilazione. Per l'editing della libreria è più conveniente avere il file sorgente. 3) La deregolamentazione #import solo per *.dll. Si trova nella cartella Libraries perché la libreria, anche se è una libreria esterna

funzioni. 4) *.mqh - file da includere, non compilato (sempre sorgente).

Ho letto che le vecchie librerie potrebbero non funzionare perché Unicode ora. Cosa c'è di sbagliato nell'esempio di cui sopra?

 
kosmos0975:

Grazie per la vostra risposta. Per chiarire: 1) auto-scritto *.dll - libreria di funzioni Windows o il tuo codice, già adattato a MT4. 2) *.mq4(sorgente) sarà compilato insieme al file principale o al suo *.ex4(già compilato)

(già compilato) sarà incluso (aggiunto) al file principale durante la compilazione. Per l'editing della libreria è più conveniente avere il file sorgente. 3) La deregolamentazione #import solo per *.dll. Si trova nella cartella Libraries perché la libreria, anche se è una libreria esterna

funzioni. 4) *.mqh - file per l'inclusione, non compilato (sempre sorgente).

Ho letto che le vecchie librerie potrebbero non funzionare perché Unicode ora. Cosa c'è di sbagliato nell'esempio di cui sopra?

Per chiarire:

1) Le librerie di Windows non devono essere messe nella sandbox del terminale;

2) *.mq4 (sorgente) con la direttiva #property library (dopo averlo compilato, si ottiene un file *.ex4). Il file non verrà compilato senza questa direttiva;

La direttiva #import non è usata solo per le librerie *.dll. Guarda qualsiasi file *.mqh nella cartella Include. A proposito, i file *.mqh (header) dovrebbero trovarsi lì. Non sono compilati.

A proposito di "vecchie" librerie e Unicode - si tratta di *.dll autoscritte.

 

Ho capito dove si trova tutto. Riguardo alla struttura dello script di cui sopra. #include< WinUser32.mqh> contiene la dicitura #import "user32.dll" e una lista di funzioni esterne adattate. È anche #define(assegnare nomi mnemonici) ad alcuni

valori numerici. Perché questo viene fatto (assegnazione) ed è anche necessario includere il file #include< WinUser32.mqh>, perché le funzioni esterne che vengono utilizzate ulteriormente appartengono a #import "IdelLib.dll".

L'elenco delle funzioni "user32.dll" sembra avere il suo per l'hijacking del mouse e della tastiera, ma non è stata trovata alcuna descrizione. Vorrei sapere come farlo (script) funzionare correttamente (funziona gli stessi pannelli interattivi nello strategy tester nonostante la sua

difetti persistenti da parte degli sviluppatori) e ci sono persone competenti. Ho guardato un paio di thread su *.dll-libraries. Iniziano alacremente, poi parlano della vita. Tuttavia, per qualche motivo, pochissime informazioni (librerie funzionanti con descrizioni ed esempi).

 
kosmos0975:

Ho capito dove si trova tutto. Riguardo alla struttura dello script di cui sopra. #include< WinUser32.mqh> contiene la dicitura #import "user32.dll" e una lista di funzioni esterne adattate. È anche #define(assegnare nomi mnemonici) ad alcuni

valori numerici. Perché questo viene fatto (assegnazione) ed è anche necessario includere il file #include< WinUser32.mqh>, perché le funzioni esterne che vengono utilizzate ulteriormente appartengono a #import "IdelLib.dll".

L'elenco delle funzioni "user32.dll" sembra avere il suo per l'hijacking del mouse e della tastiera, ma non è stata trovata alcuna descrizione. Vorrei sapere come farlo (script) funzionare correttamente (funziona gli stessi pannelli interattivi in Strategy Tester nonostante la sua

difetti persistenti da parte degli sviluppatori) e ci sono persone competenti. Ho guardato un paio di thread su *.dll-libraries. Iniziano alacremente, poi parlano della vita. Tuttavia, per qualche motivo ci sono pochissime informazioni (librerie funzionanti con descrizioni ed esempi).

Scava in giro, forse troverai qualcosa di interessante.
 
Chi ha un normale codice indicatore tecnico iMA con APPLIED_PRICE selezionabile ? Invia per favore!