[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.
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?
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.
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]);
}
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.
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.
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.
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?
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.
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.
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
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?
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?
Não a verifiquei, redigi-a no meu joelho.
Que tal isso?
Não verifiquei, apenas esbocei de joelhos...