Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1380
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Presumo que se a barra actual tiver um índice com o seu próprio tempo, então esta combinação nunca irá mudar.
Ou será possível que como resultado da paginação histórica este índice seja atribuído a alguma barra histórica, e a barra actual obtenha um novo índice, maior pelo número de barras paginadas?
Também por outras palavras:
é correcto compreender que a barra actual só se torna disponível (índice, preço e tempo) depois de uma troca de histórico completo e os seus parâmetros nunca mudam depois disso?
Por favor, diga-me como obter o número de filas numa tabela MySQL
Devolve um erro
Obter a última identificação
tente também isto, não consegue obter o número de filas
O que está errado, porque não posso obter um valor da consulta?
Se eu comparar a consulta com a base de dados, esta regressa como está
Certo
int id= DatabaseRead(request);
A base de dados é um bool , e a id é int
Como posso obter o resultado da consulta?
Funcionou. Criei uma classe extra sql
Vários segundos decorrem entre a descarga do indicador e a chamada ao DeInit.
Porque é que existe uma pausa e pode ser evitada?
Estou a utilizar este bloco, retirado da documentação (tanto tp como sl)
//+------------------------------------------------------------------+
void Open_order_BUY()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.1 лот
request.type =ORDER_TYPE_BUY; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
request.sl =bid-SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =ask+TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
//+------------------------------------------------------------------+
void Open_order_SELL()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.2 лот
request.type =ORDER_TYPE_SELL; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_BID); // цена для открытия
request.sl =ask+SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =bid-TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
Uma ordem abre-se em cada tic tac. Como posso corrigir para ter apenas uma encomenda aberta?
Estou a utilizar este bloco, retirado da documentação (tanto tp como sl)
//+------------------------------------------------------------------+
void Open_order_BUY()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.1 лот
request.type =ORDER_TYPE_BUY; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
request.sl =bid-SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =ask+TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
//+------------------------------------------------------------------+
void Open_order_SELL()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.2 лот
request.type =ORDER_TYPE_SELL; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_BID); // цена для открытия
request.sl =ask+SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =bid-TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
Resolvido.
Como prolongar a linha para a direita? Mais longe do que a barra actual.
Existem coordenadas de tempo e preço. O preço é claro, mas como definir o tempo (tentei iTime(Symbol(), PERIOD_CURRENT, 0), mas o seu índice é zero)
Como prolongar a linha para a direita? Mais longe do que a barra actual.
Existem coordenadas de tempo e preço. Compreendo o preço, mas como definir o tempo (tentei iTime(Symbol(), PERIOD_CURRENT, 0), mas o seu índice é zero)
Boa tarde.
Aqui vai uma pergunta:
Estou a escrever um indicador que desenha zonas com estilo de desenho DRAW_FILLING. Há vários outros indicadores, incluindo muitos muwings, no gráfico, para além da zona desenhada. Quando uma zona é desenhada, as linhas de outros indicadores mudam acentuadamente as suas cores.
A questão: Posso desenhar as zonas em MT5 de tal forma, que a sua cor não se sobreponha e não altere as cores das linhas de outros indicadores?
P.S. Cavei todas as propriedades dos amortecedores indicadores (métodos como PlotIndexSetInteger), não há nada de semelhante.
P.S2. anexado é um screenshot do MT5.
Boa tarde.
Aqui vai uma pergunta:
Estou a escrever um indicador que desenha zonas com estilo de desenho DRAW_FILLING. Há vários outros indicadores, incluindo muitos muwings, no gráfico, para além da zona desenhada. Quando uma zona é desenhada, as linhas de outros indicadores mudam acentuadamente as suas cores.
A questão: podemos desenhar as zonas em MT5 de tal forma, que a sua cor não se sobreponha e não altere as cores das linhas de outros indicadores?
P.S. Cavei todas as propriedades dos amortecedores indicadores (métodos como PlotIndexSetInteger), não há nada de semelhante.
P.S2. Aqui está uma captura de ecrã do MT5.
Tudo depende da sequência de sobreposição, quem é o último está no topo
Definir buffer comDRAW_FILLING primeiro