[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 214
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Boa tarde. Escrevi uma função que deve retornar o número de barras quando uma ordem foi aberta:
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
return (iBarShift(Symbol(),Period(),t,true));
}
No entanto, ele sempre retorna -1. Onde eu cometi um erro? Obrigado de antemão.
Boa tarde. Escrevi uma função que deve retornar o número de barras quando uma ordem foi aberta:
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
return (iBarShift(Symbol(),Period(),t,true));
}
No entanto, ele sempre retorna -1. Onde eu cometi um erro? Obrigado de antemão.
Talvez seja assim:
retorno(iBarShift(Símbolo(),Período(),t)); ou seja, sem verdade.
Boa tarde. Escrevi uma função que deve retornar o número de barras quando uma ordem foi aberta:
int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice()) t=OrderOpenPrice();
}
}
return (iBarShift(Symbol(),Period(),t,true));
}
No entanto, ele sempre retorna -1. Onde eu cometi um erro? Agradecemos antecipadamente.
À variável t é atribuído o preço de abertura, embora seja declarada como um número inteiro
À variável t é atribuído o preço de abertura, embora seja declarada como um número inteiro
Como você descreve tal condição?
Por favor, informe.
Se um extremo (por exemplo, alto) da primeira barra de 5 minutos do dia atual coincide com um extremo do dia atual (no diário), então fazemos algo. Como você o descreveria?
ajudem as pessoas boas!!!
Olá, caros usuários do recurso!
Por favor, ajude quem se deparou com a leitura/escrita de um número real em um arquivo.
A tarefa é ler a partir de um saldo de arquivo, se o saldo atual for maior - sobrescrever o arquivo.
O problema é que ele sempre sai 0 (zero).
Com os números inteiros escritos/leitura não encontrei tais problemas.
Aqui está o código:
equilíbrio duplo;
int file_handle_bala;
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_READ);
//copiar posição, no caso de um arquivo vazio - posição = 0
if (FileSize(file_handle_bala)>0)
{
balance=FileReadDouble(file_handle_bala,DOUBLE_VALUE);
Alerta(saldo); ------------------------------------- é aqui que deve ser escrito zero, embora o saldo guardado anteriormente deva ser escrito
FileClose(file_handle_bala);
se (AccountBalance()>balance) ------------------------------------ e esta regra não funciona porque o alerta abaixo não emite nada
{
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE);
balanço=ContaBalanço();
Alerta(saldo);
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE);
FileClose(file_handle_bala);
}
}
caso contrário // se o arquivo estiver vazio
{
FileClose(file_handle_bala); // primeiro, feche o arquivo aberto
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE); //abrir para escrita
balanço=ContaBalanço();
FileWriteDouble(file_handle_bala,balance,DOUBLE_VALUE);
FileClose(file_handle_bala);
}
Muito obrigado mais cedo!!!
Observe esta linha
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE);
1. Você deve ser mais respeitoso e amigável ao publicar seu código.
2. Você está tentando escrever um número inteiro de 8 bytes. A MQL4 não possui tal tipo de dados.
\O que eu fiz de errado? Por que tantos erros? (Eu preciso saber o máximo(Preciso saber o valor máximo do indicador nas últimas 10 barras). obrigado com antecedência.
Bom dia a todos!
Estou escrevendo meu primeiro bot e, ao mesmo tempo, estou me familiarizando com a MQL. Eu tenho o seguinte problema durante os testes:
A ordem OP_BUYSTOP é executada logo após a ordem ser colocada, embora a julgar pelo gráfico, o preço não atinja o valor alvo (ver abaixo)
USDJPY,M5 (visual)
Data 2011.09.19
Hora 02:15
Aberto 76.903
Alto 76.909
Baixo 76.890
Fechar 76.890
Volume 66
Estou testando todos os carrapatos.
Talvez eu não entenda corretamente o pedido OP_BUYSTOP? Comprar se o preço exceder um determinado valor, certo?
Aqui está um pouco do código fonte que faz um pedido
int ticket=OrderSend(Symb, OP_BUYSTOP, Lot, Price, 0, SL, TP);
\O que eu fiz de errado? Por que tantos erros? (Preciso saber o valor máximo do indicador para as últimas 10 barras). obrigado com antecedência.
Você está declarando a função Olá:
dentro da função start()