Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1085

 
Alexandr Nikolaev:
Quindi risulta che OrderSelect per ticket da ordini chiusi e cancellati cerca solo tra la storia caricata nel terminale? Non ci sono informazioni su questo nel manuale.

Infatti, l'EA ha accesso solo ai dati che si trovano nel terminale

Questo vale anche per la storia del grafico, se la limiti, l'EA non sarà anche in grado di accedere alle barre del grafico che non puoi vedere nel terminale


Aleksey Mavrin:

Nella descrizione di OrdersHistoryTotal dice

Quando si seleziona un ordine per biglietto:

Il parametro pool è ignorato

https://docs.mql4.com/ru/trading/orderselect
 
Qualcuno può dirmi come ottenere l'handle dell'ultimo file nella cartella senza conoscerne il nome. Cioè, quando si esegue lo script è necessario fare riferimento al file creato più di recente, che non riesco a capire cosa mettere nel ciclo. MQL4
 
hoka777:
Qualcuno può dirmi come posso ottenere l'handle dell'ultimo file nella cartella senza conoscerne il nome. Cioè, quando eseguo lo script ho bisogno di fare riferimento al file creato più recentemente, non riesco a capire cosa mettere nel ciclo. MQL4

FileFindFirst, FileFindNext, FileGetInteger

 

cosa significa questa voce?

int tf=0x0001|0x0002|0x0004|0x0008|0x0010|0x0020|0x0040;
 
Seric29:

cosa significa questa voce?

Uguale a questo:

int tf=1|2|4|8|16|32|64;

Qualcuno sta usando le bandiere da qualche parte per qualcosa. Questa voce dice che ci sono 7 flag memorizzati nella variabile tf, e sono tutti sollevati.

 

Tracciamento dell'ordine.

Ciao a tutti, signori del forum.

Di fronte alla necessità di tracciare gli ordini per la fotocopiatrice e fu sorpreso dalla complessità del problema.

Compito.

Tracciare l'apertura, la chiusura e la modifica del mercato e degli ordini pendenti con il minor ritardo e carico possibile sul sistema.

Soluzioni possibili.

1. Monitorare l'intera lista degli ordini ogni tick non è ancora molto attraente.

2. MQL5 ha buone funzioni OnTrade() e OnTradeTransaction(), ma non ho trovato analoghi in MQL4.

3. Le linee dell'ultimo ordine e le loro manipolazioni TP eSL sul grafico sembrano essere abbastanza interessanti, usando OnChartEvent, ma questi oggetti non sono visibili e non sono gestiti dalla funzione. Forse c'è un modo per "mostrarli"?

4. Ora sto pensando alla possibilità di ottenere informazioni dal registro generale. Dovrete monitorare anche lì, ma meno.

Non ho ancora trovato una soluzione soddisfacente, forse qualcuno ha già fatto qualche ricerca?

 
Artyom Trishkin:

Uguale a questo:

Qualcuno da qualche parte sta usando le bandiere per qualcosa. Questa voce dice che ci sono 7 bandiere memorizzate nella variabile tf, e sono tutte sollevate.

int tf=1|2|4|8|16|32|64;

E perché sono scritti attraverso un bastone verticale come usarlo? Si può accedere ad ogni parte di questa bandiera? Ecco un codice come questo.

    if(_Period==1440){diff=86399; tf=0x0001|0x0002|0x0004|0x0008|0x0010|0x0020|0x0040;}// выбор старшего ТФ, с него скрипт рисует на младших ТФ
    if(_Period==240) {diff=14340; tf=0x0001|0x0002|0x0004|0x0008|0x0010|0x0020;}
    if(_Period==60)  {diff=3540;  tf=0x0001|0x0002|0x0004|0x0008|0x0010;}
    if(_Period==30)  {diff=1740;  tf=0x0001|0x0002|0x0004|0x0008;}
    if(_Period==15)  {diff=840;   tf=0x0001|0x0002|0x0004;}
    if(_Period==5)   {diff=240;   tf=0x0001|0x0002;}  

    cl_timeM1=op_timeM1 + diff ;                    // координата даты и времени бара М1 по цене CLOSE старшего ТФ
    cl_NumBarM1=iBarShift(NULL,PERIOD_M1,cl_timeM1);// индекс бара М1
    cl_priceM1=iClose(NULL,PERIOD_M1,cl_NumBarM1);  // координата цены CLOSE бара М1
      
//--- трендовые линии -----------------------------------------------+ 
   for(i=0;i<1000000;i++){name1="Point_"+i; if(ObjectFind(name1)<0) break;}     // позволяет рисовать множество объектов с одинаковым именем, добавляя к имени порядковый номер
  
   ObjectCreate(0,name1,OBJ_TREND,0,op_timeM1,op_priceM1,cl_timeM1,cl_priceM1); // создать объект трендовая линия с координатами цены и времени  
   ObjectSet(name1,OBJPROP_COLOR,clrWhite);                                     // задать цвет объекта
   ObjectSet(name1,OBJPROP_STYLE,STYLE_DASH);                                   // задать стиль объекта (пунктир, линия...)
   ObjectSet(name1,OBJPROP_RAY,false);
   Строчка ниже будет отрисовываться нужное количество раз или что?
   ObjectSet(name1,OBJPROP_TIMEFRAMES,tf);    
 
Seric29:

E perché sono scritti attraverso un bastone verticale come usarlo?

finché si chiama "bastone verticale", non si può leggere questo codice

leggere l'aiutohttps://www.mql5.com/ru/docs/basis/operations/bit

 
Igor Makanu:

finché lo chiami "bastone verticale" non sarai in grado di leggere questo codice

leggere l'aiutohttps://www.mql5.com/ru/docs/basis/operations/bit

L'ho letto (non so più per quante volte) e lo capisco male perché non ci sono esempi di utilizzo e non è chiaro a cosa serva. C'è un esempio

int a=305;
int b=a;      
int shift=37; 
shift++; 
a=a>>shift;   // 38 в двоичном представлении будет выглядеть как '100110', младшие 5 бит '00110' представляют число 6 
b=b>>6;

C'è un modo per rendere questa linea

if(_Period==1440){diff=86399; tf=0x0001|0x0002|0x0004|0x0008|0x0010|0x0020|0x0040;}

può essere scritto più brevemente attraverso il contatore?

 
Seric29:

L'ho letto (non so quante volte) e lo capisco male perché non ci sono esempi di come usarlo e non è chiaro a cosa serva. C'è un esempio.

Avete letto l'esempio sbagliato

Operazione OR bitwise

OR bitwise di rappresentazioni binarie di x e y. Il valore dell'espressione contiene 1 in tutti i posti dove x o y non contengono 0, e 0 in tutti gli altri posti.

b = x | y;

Esempio:

 char a='a',b='b';
//--- операция ИЛИ
   char c=a|b;
   Print("a = ",a,"  b = ",b);
   Print("a | b = ",c);
// Результат будет такой:
// a = 97   b = 98
// a | b = 99
Motivazione: