[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 51

 
vikon писал(а) >>

Eu sei como abrir um pedido usando código.

Preciso criar um sistema semi-automático com propriedades de gerenciamento.

Abro uma posição manualmente, mas a EA monitora o tamanho do lote e o altera por padrão na MT (serviço/definições/volume comercial/defaultos).

É possível fazer isso?

Não. Pelo menos não na MQL4

 
granit77 >> :

A referência seria útil:

duplo iWPR( símbolo de corda, período int, período int, turno int)

Portanto, correto é:

MUITO OBRIGADO

 
Pessoal, como você puxa o tempo de formação de uma coluna específica no MACD sem usar uma tabela de preços?
 
Noterday >> :
Pessoal, como você puxa o tempo de formação de uma determinada barra no MACD sem usar a tabela de preços?

A coluna corresponde ao tempo da formação da barra na tabela de preços,

Ou seja, você precisa saber o número de um determinado bar.

 

Quais são as regras para a otimização do código? Estou interessado nas regras de redação, não no algoritmo.

Para ser mais preciso, deixe-me dar-lhe um exemplo:

há dois roteiros "idênticos":

int start()
  {
//----
  int start=GetTickCount();
  int Massiv[100000000];
  int x=ArraySize( Massiv);
  for (int a=0; a<= x; a++)
    {
    Massiv[ a]= a;
    }
  Alert("прошло времени: ",GetTickCount()- start);
//----
   return(0);
  }

и

int start()
  {
//----
  int start=GetTickCount();
  int Massiv[100000000];
  for (int a=0; a<=ArraySize( Massiv); a++)
    {
    Massiv[ a]= a;
    }
  Alert("прошло времени: ",GetTickCount()- start);
//----
   return(0);
  }

o primeiro é duas vezes mais rápido do que o segundo. (para mim são 4 segundos)

É claro que matrizes de cem milhões não são usadas com freqüência :-) e na realidade o ganho é de alguns milissegundos para uma matriz comum e que o principal problema está nos algoritmos de buggy e não em tais bagatelas, mas mesmo assim...

 
beruk >> :

Quais são as regras para a otimização do código? Estou interessado nas regras de redação, não no algoritmo.

Para ser mais preciso, deixe-me dar-lhe um exemplo:

há dois roteiros "idênticos":

и

o primeiro é duas vezes mais rápido do que o segundo. (para mim são 4 segundos)

É claro que matrizes de cem milhões não são usadas com freqüência :-) e na realidade o ganho será de alguns milissegundos para uma matriz comum e que o principal problema está nos algoritmos de buggy e não em detalhes tão minúsculos, mas ainda assim...

Não há regras como tais. Ou seja, você pode escrevê-lo como achar conveniente e ele funcionará. Naturalmente, ele funcionará com eficiência diferente.

Para cada operação seu custo em termos de expressão de tempo é conhecido - você pode encontrá-lo nos padrões linguísticos, assim como o fluxo de trabalho dos loops e outras construções lingüísticas (o padrão C - menciono-o porque duvido que você tenha tentado entendê-lo, a partir do básico - o produtor recomendou consultar este mesmo padrão linguístico em todos os casos não especificados).

No segundo caso, você chama constantemente a função ArraySize(Massiv) - esta é a operação mais cara (chamada de função - qualquer, não esta), enquanto a operação de comparação é chamada em cada laço.

Neste caso: o laço

para (int a=ArraySize(Massiv)-1;a>0;a--)

fará a mesma coisa, mas significativamente mais rápido. Refiro-me à forma como o loop está organizado. Se você tiver cálculos volumosos em um loop, não haverá grande diferença.

Há um "mas" - se você estiver usando um testador ou redes reconfiguradas - a diferença será muito significativa e aparecerá muito, muito ....

Sim, mais uma coisa: você tem um erro no primeiro script - indo além dos limites da matriz. Leia os manuais - está tudo escrito ali. Você deve escrevê-lo assim:

int x=ArraySize(Massiv);
para (int a=0;a<x;a++)

Boa sorte.

 

Boa tarde

Favor explicar como interpretar esta passagem no tutorial FileOpen

===

O conteúdo das entradas nos arquivos

Com qualquer combinação de modos, os registros de dados são escritos no arquivo sem lacunas. Quando os arquivos são formados no modo FILE_BIN, os registros de dados são escritos consecutivamente. Dependendo do tipo de dados escritos no arquivo (e das funções de gravação utilizadas para este fim), uma combinação de caracteres de fim de linha ("\r\n") pode ser escrita entre grupos de registros. Quando arquivos são gerados no modo FILE_CSV, os registros de dados são separados com um delimitador de arquivo (geralmente ';'), e grupos de registros (consistindo de cordas) são separados com uma combinação de caracteres de fim de linha ("\r\n").

===

tudo está clarocom "int FileOpen(string filename, int mode, int delimiter=';')".

Onde devo colocar ("\r\n")? Pode ser usado com FILE_CSV? Dê-me um exemplo com ("\r\n") por favor, sou tão burro.

 
Olá! Preciso escrever um consultor especializado para isto: https://www.mql5.com/ru/code/8663 indicador, quero dizer HP.mq4 (se vai para cima compra, se vai para baixo venda). Ele faz um saque a mais, mas no caso de grandes períodos, por exemplo, 100-200, é suportável. Ou você pode adicionar um sinal MA se o sinal estiver abaixo deste indicador - comprar, se maior - vender.
 
teetrinker >> :

Boa tarde

Favor explicar como interpretar esta passagem no tutorial FileOpen

===

O conteúdo das entradas nos arquivos

Com qualquer combinação de modos, os registros de dados são escritos no arquivo sem lacunas. Quando os arquivos são formados no modo FILE_BIN, os registros de dados são escritos consecutivamente. Dependendo do tipo de dados escritos no arquivo (e das funções de gravação utilizadas para este fim), uma combinação de caracteres de fim de linha ("\r\n") pode ser escrita entre grupos de registros. Quando arquivos são gerados no modo FILE_CSV, os registros de dados são separados com um delimitador de arquivo (geralmente ';'), e grupos de registros (consistindo de cordas) são separados com uma combinação de caracteres de fim de linha ("\r\n").

===

tudo está clarocom "int FileOpen(string filename, int mode, int delimiter=';')".

mas onde deve ser usado o "r\n"? Pode ser usado com o FILE_CSV?

Em nenhum lugar. O manual diz claramente em russo: "grupos de registros (fazendo cordas) são separados com uma combinação de caracteres de fim de linha ("\r\n")".

 

Você poderia me dar uma dica?

no meu EA, vários alertas estão em fila em um bloco, e vários em fila em outro bloco

no log no teste eles não estão em ordem, mas classificados - 2 alertas do primeiro bloco, 3 do segundo, depois 3 do primeiro e os últimos 2 do segundo

colocar um deslizamento de 500 segundos após cada um, ou seja, meio segundo e nenhuma ação - todos ainda são aleatórios e em 1 segundo podem ser colocados todos os 10

qual é a razão?

como fazer com que os alertas fiquem em ordem?