Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1085

 
Alexandr Nikolaev:
Então acontece que OrderSelect by ticket de pedidos fechados e deletados procura apenas entre o histórico carregado no terminal? Não há informações sobre isto no manual.

sim

Na verdade, a EA só tem acesso aos dados que você pode encontrar no terminal

Isto também se aplica ao histórico do gráfico, se você limitá-lo, a EA também não poderá acessar as barras do gráfico que você não pode ver no terminal


Aleksey Mavrin:

Na descrição de OrderHistoryTotal diz

Ao selecionar um pedido por bilhete:

O parâmetro do pool é ignorado

https://docs.mql4.com/ru/trading/orderselect
 
Alguém pode me dizer como obter a manipulação do último arquivo na pasta sem saber seu nome. Isto é, ao executar o roteiro preciso me referir ao arquivo criado mais recentemente, que não consigo descobrir o que colocar no laço. MQL4
 
hoka777:
Alguém pode me dizer como posso obter a manipulação do último arquivo na pasta sem saber seu nome. Isto é, ao executar o roteiro preciso me referir ao arquivo criado mais recentemente, não consigo descobrir o que colocar no laço. MQL4

FileFindFirst, FileFindNext, FileGetInteger

 

o que significa esta entrada?

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

o que significa esta entrada?

Igual a isto:

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

Alguém está usando bandeiras em algum lugar para alguma coisa. Esta entrada diz que há 7 bandeiras armazenadas na variável tf, e todas elas são levantadas.

 

Rastreamento de pedidos.

Olá a todos, Cavalheiros do fórum.

Diante da necessidade de rastrear as encomendas para a copiadora e ficou surpreso com a complexidade do assunto.

Tarefa.

Rastrear a abertura, fechamento e modificação de ordens de mercado e pendentes com o menor atraso e carga possível no sistema.

Possíveis soluções.

1. O monitoramento de toda a lista de pedidos ainda não é muito atraente.

2. A MQL5 tem boas funções OnTrade() e OnTradeTransaction(), mas eu não encontrei análogos na MQL4.

3. As últimas linhas de pedido e suas manipulações de TP eSL no gráfico parecem ser bastante atraentes, usando OnChartEvent, mas estes objetos não são visíveis e não são manuseados pela função. Talvez haja uma maneira de detectá-los?

4. agora estou pensando sobre a possibilidade de obter informações do diário de bordo geral. Você terá que monitorar lá também, mas menos.

Eu ainda não encontrei uma solução satisfatória, talvez alguém já tenha feito alguma escavação?

 
Artyom Trishkin:

Igual a isto:

Alguém em algum lugar está usando bandeiras para alguma coisa. Esta entrada diz que há 7 bandeiras armazenadas na variável tf, e todas elas são levantadas.

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

E por que eles estão escritos através de um bastão vertical como usar isso? Cada parte desta bandeira pode ser acessada? Aqui está um código como este.

    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 por que eles são escritos através de um bastão vertical como usá-lo?

desde que você o chame de "pau vertical", você não pode ler este código

leia a ajudahttps://www.mql5.com/ru/docs/basis/operations/bit

 
Igor Makanu:

enquanto você chamá-lo de "pau vertical" você não será capaz de ler este código

leia a ajudahttps://www.mql5.com/ru/docs/basis/operations/bit

Eu o li (não sei por quantas vezes agora) e o entendo mal porque não há exemplos de seu uso e não está claro para que serve. Há um exemplo

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

Existe alguma maneira de fazer esta linha

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

pode ser escrito mais curto através do balcão?

 
Seric29:

Eu o li (não sei quantas vezes) e o entendi mal porque não há exemplos de como utilizá-lo e não está claro para que serve. Há um exemplo.

Você leu o exemplo errado

Operação Bitwise OR

Bitwise OR de representações binárias de x e y. O valor da expressão contém 1 em todos os lugares onde x ou y não contém 0, e 0 em todos os outros lugares.

b = x | y;

Exemplo:

 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
Razão: