[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 572

 
neisseria:
Tentou criar um EA baseado em uma moeda, a cabeça compra, os rabos vendem. Mas não funciona. Ao testar em uma janela há uma inscrição: Ao abrir o erro de pedido 131, no aplicativo procurou - não é o volume correto. Procurei cuidadosamente, não encontrei nenhum erro. Há um ponto em toda parte, para separar a parte inteira, não uma vírgula. Por favor, ajude. O código está no arquivo.
A conta permite 0,01 lote? Talvez um lote mínimo de 0,1?
 
neisseria:
Tentou criar um EA, baseado em moeda, compra de águia, venda de rabos. Mas não funcionou. Ao testar, recebi a seguinte mensagem na janela: Erro 131 ao abrir a ordem, procurei na aplicação, o volume não está correto. Procurei cuidadosamente, não encontrei nenhum erro. Há um ponto em toda parte, para separar a parte inteira, não uma vírgula. Por favor, ajude. O código está no arquivo.


uso:

MinLot= MarketInfo( símbolo(),MODE_MINLOT )// Tamanho mínimo de lote possível

StepLot= MarketInfo( símbolo(),MODE_STEPLOT )// Etapa mínima de mudança de lote

O lote deve ser >= MinLot e normalizado usando Lot=NormalizeDouble(Lot,Dig);

onde Dígito = Número de_dígitos_após_ponto decimal StepLota, ou seja, StepLot=0,01 - Dígito=2 ... StepLot=0,1 - Dig=1 .....

Por exemplo, com MinLot=0,1 e StepLot=0,01:

O lote pode ser 0,1, 0,11,0,12 etc. Mas não pode ser 0,99, 0,98 e certamente não pode ser 0,998, 0,999, 0,111, 0,101.

 
Sepulca:


uso:

MinLot= MarketInfo( símbolo(),MODE_MINLOT )// Tamanho mínimo de lote possível

StepLot= MarketInfo( símbolo(),MODE_STEPLOT )// Etapa mínima de mudança de lote

O lote deve ser >= MinLot e normalizado usando Lot=NormalizeDouble(Lot,Dig);

onde Dígito = Número de_dígitos_após_ponto decimal StepLota, ou seja, StepLot=0,01 - Dígito=2 ... StepLot=0,1 - Dig=1 .....

Por exemplo, com MinLot=0,1 e StepLot=0,01:

O lote pode ser 0,1, 0,11,0,12 etc. Mas não pode ser 0,99, 0,98 e certamente não pode ser 0,998,0,999, 0,111, 0,101.


Por exemplo, com MinLot=0,1 e StepLot=0,01:

O lote pode ser 0,1,0,11,0,12 etc. Mas não pode ser 0,99, 0,98.

De jeito nenhum... realmente?

88 ou 89 vezes aumentar o lote no passo mínimo. Por exemplo - o lote de cada posição subseqüente aberta deve ser aumentado na etapa mínima. Ou seja, acrescente sem rodeios o passo mínimo de mudança de lote ao lote da posição anterior. A 98ª posição a ser aberta terá o lote 0,98, respectivamente, o lote da 99ª posição será aumentado em um passo mínimo 0,98+0,01=0,99...

Você acha que a DT não vai deixar abrir com tanta coisa?

 
artmedia70:

Por exemplo, com MinLot=0,1 e StepLot=0,01:

O lote pode ser 0,1, 0,11,0,12 etc. Mas não pode ser 0,99, 0,98

De jeito nenhum... realmente?

88 ou 89 vezes aumentar o lote no passo mínimo. Por exemplo - o lote de cada posição subseqüente aberta deve ser aumentado na etapa mínima. Ou seja, acrescente sem rodeios o passo mínimo de mudança de lote ao lote da posição anterior. A 98ª posição a ser aberta terá o lote 0,98, respectivamente, o lote da 99ª posição será aumentado em um passo mínimo 0,98+0,01=0,99...

Você acha que as corretoras não vão permitir a abertura com tal lote?


Maldição .... errado, é claro. não pode ser 0,09, 0,08.

E estúpido ou não estúpido - cabe ao escritor da EA decidir.

 
kellin:
Não, claro que tenho que abrir com uma ordem de compra ou venda na abertura do próximo ou de um dos seguintes bares. E também planejo fechar por uma ordem, atribuindo-a pelo número de pontos a partir da abertura.

Mais tarde (no fim de semana) postarei aqui o código para abrir ordem de mercado - comprar ou vender (à sua escolha), na abertura de uma vela nova.
 
Sepulca:


uso:

MinLot= MarketInfo( símbolo(),MODE_MINLOT )// Volume mínimo de lote possível

StepLot= MarketInfo( símbolo(),MODE_STEPLOT )// Etapa mínima de mudança de lote

O lote deve ser >= MinLot e normalizado usando Lot=NormalizeDouble(Lot,Dig);

onde Dígito = Número de_dígitos_após_ponto decimal StepLota, ou seja, StepLot=0,01 - Dígito=2 ... StepLot=0,1 - Dig=1 .....

Por exemplo, com MinLot=0,1 e StepLot=0,01:

O lote pode ser 0,1, 0,11,0,12 etc. Mas não pode ser 0,99, 0,98 e muito menos 0,998,0,999, 0,111,0,101

Eu já conheço estas informações. No lote min 0,01 do meu corretor, passo 0,01. Eu o mudei para 0,1 e 1 lote por causa da consciência, nada sai, o erro está em outra coisa.
 

A propósito, eu não pretendo usar este Expert Advisor, estou apenas aprendendo a linguagem de programação. Na verdade, decidi, por diversão, ver como funcionará no testador, acabei de ler que o gerador de números aleatórios não dá tais números aleatórios, pois se repete a si mesmo. O problema não parece estar na grafia errada do número, mas sim no algoritmo, qual é o problema?

 
T-G:
Ajuda com um problema.
A questão é esta: tenho uma coruja martin, abro os joelhos depois de um determinado número de pontos, mas com um novo majik. Acontece que o sinal abre uma ou três ordens com majic = 1, depois menos o próximo joelho em um sinal2 abre uma ou três ordens com um majic 2 e assim por diante.
Assim, cada joelho vai em 1-3 ordens com sua própria majestade.

Agora o ponto da questão é como calcular em um loop as ordens de cada majestoso, por exemplo, eu tentei fazer desta forma

Que tal isso?

int Count() {
   int i, Сounts[100];
   
   for (i=0; i<OrdersTotal(); i++) {
      if (OrderSelect(i,SELECT_BY_POS)) {
         if (OrderMagicNumber()>Magic+100)   continue;
         if (OrderType()>1)                  continue;
         Сounts[OrderMagicNumber()]++;
         }
      }//for 
   Comment(10, Сounts[0] +"="+ Сounts[1] +"="+ Сounts[2]);
}

Não a verifiquei, redigi-a no meu joelho.

 
artmedia70:

Que tal isso?

Não verifiquei, apenas esbocei de joelhos...

Não funcionou, mas você me deu a resposta certa, estou pronto, obrigado.
 
Se alguém sabe, tenho uma pergunta: preciso de um roteiro em loop que "pressione" o botão "Atualizar" uma vez a cada 0,5 segundos no gráfico atual e reinicialize os indicadores. "Eu tentei fazer um roteiro em loop usando o WindowRedraw(). Eu tentei fazer um roteiro em loop usando WindowRedraw() e Sleep(500), mas os indicadores não são reinicializados.