[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 477
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
demlin:
Еще вопрос: какой функцией можно вытащить стоимость одного пункта инструмента?
https://docs.mql4.com/ru/constants/marketinfo
MarketInfo(Symbol(), MODE_TICKVALUE);
Por favor, diga-me qual código deve ser escrito na EA para fazer o comércio da EA apenas uma vez por hora
Por exemplo, a EA acionou, uma ordem é aberta (não estou interessado em mais), eu gostaria que a ordem não fosse aberta no bar atual em um período de uma hora
tudo é parecido:
int hh;
em Hora Atual;
CurrentHour=TimeHour(TimeCurrent());
se (CurrentHour!=hhh)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point);
hh=TimeHour(TimeCurrent());
}
mas tenho incontáveis pedidos abertos
Olá a todos!
Por favor, diga-me o que isto significa:
Pedido de compra ...... falhou [Tempo limite de troca].
Estou especificamente interessado em que tipo de tempo de espera é.
https://www.mql5.com/ru/forum/112612
Esta é uma resposta de servidor expirada --- quer o negócio tenha sido aberto ou não. E não há garantia de que o comércio não tenha sido aberto.
Portanto, tenho que verificar se a ordem é aberta em um minuto e depois continuar as negociações.
rlx:
precisa ser definido antes de começar() e init()
int hh = 0;
int init()
{
return(0);
}
int start()
{
//
int countorder;
countorder=OrdersTotal();
if (countorder==0)
{
Alert ("no open orders");
}else
{
Alert ("have open orders"); }
int hh;
int CurrentHour;
CurrentHour=TimeHour(TimeCurrent()));
if ((CurrentHour!=h)&&(countorder==0))
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point);
hh=TimeHour(TimeCurrent());
}
//-------------------------------------------------
return(0);
}
int deinit()
{
return(0);
}
Eu fiz como você disse, sem efeito, acrescentei contagem de pedidos abertos, agora abre os pedidos logo após o fechamento
Trabalhei em torno dele através do OrderCloseTime() - parece funcionar agora
int countorder;
countorder=OrdersTotal();
if (countorder==0)
{
Alert ("no open orders");
}else
{
Alert ("have open orders");
}
int hh;
int CurrentHour;
int LastOrderCloseTime;
CurrentHour=TimeHour(TimeCurrent()));
OrderSelect(HistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
hh=TimeHour(OrderCloseTime());
if ((CurrentHour!=hhh)&&(countorder==0))
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point);
}
https://www.mql5.com/ru/forum/112612
Este é o período de espera para que o servidor responda --- quer um acordo tenha sido aberto ou não. E não há garantia de que o negócio não tenha sido aberto.
Portanto, como recomendado pelos desenvolvedores, verifique após um minuto se um pedido foi aberto e só então prossiga.
Não quero ser um chato, porém.
Explique-me como uma ordem será aberta se OrderTotal() for zero.
Obrigado.
Abaixo está a figura com parênteses que limitam o bloco de código que é executado sob a condição
As operações de OrderSend() não são afetadas por esta condição.
como obter um número de barra, no "futuro" :)
iBarShift() funciona bem para obter o número de barra do histórico, mas como você obteria o número de barra para este código se você mover a linha para a direita - além da barra zero?
como obter um número de barra, no "futuro" :)
iBarShift() funciona bem para obter o número de barra do histórico, mas como posso obter o número de barra deste código se eu mover a linha para a direita - além da barra zero?
Você pode obter uma compensação em relação ao Tempo[0]
Você pode obter uma compensação em relação ao Tempo[0]
Obrigado! Tudo está bem agora!