Se a mensagem já tiver sido executada, ela já foi excluída da fila.
Ok, eu tenho a seguinte pergunta.
#property indicator_chart_windowbool First = true;
int start(){
if(First){
int indexFirstLeftOnChart = WindowFirstVisibleBar();//иницилизируем под флагом, потому что в init() могут быть артефактыAlert("indexFirstLeftOnChart ", indexFirstLeftOnChart);
First = false;
}
if(WindowFirstVisibleBar() != indexFirstLeftOnChart){//проверяем на каждом тике, изменилось ли значениеAlert("first indexFirstLeftOnChart ", indexFirstLeftOnChart);
indexFirstLeftOnChart = WindowFirstVisibleBar();//если изменилось, записываем егоAlert("second indexFirstLeftOnChart ", indexFirstLeftOnChart);
}
return(0);
}
- Ele apita a cada tique, porque acontece que o primeiro índiceFirstLeftOnChart é zero. Como posso combater isto? Construir 509.
Zhunko: Normalmente eles o interceptam antes da execução. Caso contrário, não entendo para que você precisa interceptar?
Não há dúvidas antes da execução. Portanto, não vale a pena mudar o AccountNumber() para dll. Isso implica que o número da conta já está armazenado na dll.
Eu tenho algo sobre um ponto simples, uma dor de cabeça. Há uma função de busca de pedidos.
t - contador de todas as ordens.
p - contador de ordens pendentes.
//+-------------------------------------------------------------------------------------+//| Поиск своих ордеров |//+-------------------------------------------------------------------------------------+void FindOrders(int& t, int& p)
{
int total = OrdersTotal() - 1;
t = 0;
p = 0;
for (int i=total; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() != i_magic) continue;
if (OrderType() > 1)
{
p++;
}
t++;
pr ("FindOrders(): " + "t = " + t + " " + TimeToStr(TimeCurrent()));
pr ("FindOrders(): " + "p = " + p + " " + TimeToStr(TimeCurrent()));
}
}
Eu o chamo desde o início:
int start()
{
if (g_lastBarTime == Time[0]) // На текущем баре все необходимые действия..return (0); // ..уже были выполненыint oTotal = 0, oPending = 0;
FindOrders(oTotal, oPending);
int signal = GetGeneralSignal(oTotal);
if (signal != SIGNAL_NO)
{
if (!Trade(signal))
return(0);
}
else
Na verdade, quando a abrimos, mesmo quando não há ordens, vemos isso (mesmo quando não há ordens, ela imprime como se houvesse...):
Boa noite a todos. Decidi dominar a MQL4 recentemente (estive estudando o tutorial de Sergey Kovalev). Hoje decidi fazer um simples roteiro de abertura do pedido para a prática. O código é: int start() { OrderSend("EURUSD",OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point); Alert(GetLastError());
retornar;
}
O script não funcionou e o erro 4109 (Comércio não permitido) foi mostrado. Ao tentar mudar a situação, também apareceu o erro 4016 (Uninitialised array). Eu gostaria de saber o que causa esses erros e como criar um simples roteiro de abertura comercial, afinal de contas. Acabei de copiar o exemplo do tutorial https://book.mql4.com/ru/trading/ordersend (acabei de adicionar a função GetLastError nele) e recebi o erro 4109 de qualquer forma.
intstart()// Спец. функция start(){// Открытие BUYOrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
Alert(GetLastError());
return; // Выход из start()}
Кто может объяснить в чем проблема, буду очень признателен. Заранее спасибо.
me diga como tratar tais cercas em meta-cotações)?
Precisamos interceptar mensagens.
Se a mensagem já tiver sido executada, ela já foi excluída da fila.
Ok, eu tenho a seguinte pergunta.
- Ele apita a cada tique, porque acontece que o primeiro índiceFirstLeftOnChart é zero. Como posso combater isto? Construir 509.
Se uma mensagem já tiver sido executada, ela já foi excluída da fila.
Normalmente eles o interceptam antes da execução. Caso contrário, não entendo para que você precisa interceptar?
Não há dúvidas antes da execução. Portanto, não vale a pena mudar o AccountNumber() para dll. Isso implica que o número da conta já está armazenado na dll.
Eu tenho algo sobre um ponto simples, uma dor de cabeça. Há uma função de busca de pedidos.
t - contador de todas as ordens.
p - contador de ordens pendentes.
Eu o chamo desde o início:
Na verdade, quando a abrimos, mesmo quando não há ordens, vemos isso (mesmo quando não há ordens, ela imprime como se houvesse...):
Como isso é possível?
int start()
{
OrderSend("EURUSD",OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
Alert(GetLastError());
retornar;
}
O script não funcionou e o erro 4109 (Comércio não permitido) foi mostrado. Ao tentar mudar a situação, também apareceu o erro 4016 (Uninitialised array). Eu gostaria de saber o que causa esses erros e como criar um simples roteiro de abertura comercial, afinal de contas. Acabei de copiar o exemplo do tutorial https://book.mql4.com/ru/trading/ordersend (acabei de adicionar a função GetLastError nele) e recebi o erro 4109 de qualquer forma.