Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1380
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Supongo que si la barra actual tiene un índice con su propio tiempo, entonces esta combinación nunca cambiará.
¿O es posible que como resultado de la paginación de la historia este índice sea asignado a alguna barra histórica, y la barra actual obtenga un nuevo índice, mayor por el número de barras paginadas?
También en otras palabras:
¿es correcto entender que la barra actual pasa a estar disponible (índice, precio y hora) sólo después de un intercambio de historial completo y sus parámetros nunca cambian a partir de entonces?
Por favor, dígame cómo obtener el número de filas en una tabla de MySQL
Devuelve un error
Obtener la última identificación
también intente esto, no puede obtener el número de filas
¿Qué pasa, por qué no puedo obtener un valor de la consulta?
Si compruebo la consulta con la base de datos, me devuelve tal cual
A la derecha
int id= DatabaseRead(request);
La base de datos es un bool , y el id es un int
¿Cómo puedo obtener el resultado de la consulta?
Funcionó. Creé una clase sql extra
Pasan varios segundos entre la descarga del indicador y la llamada a DeInit.
¿Por qué hay una pausa y puede evitarse?
Estoy utilizando este bloque, tomado de la documentación (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);
}
Se abre una orden en cada tick. ¿Cómo puedo arreglar para tener sólo una orden abierta?
Estoy usando este bloque, tomado de la documentación (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);
}
Resuelto.
¿Cómo extiendo la línea hacia la derecha? Más allá de la barra actual.
Hay coordenadas de tiempo y precio. El precio está claro, pero cómo establecer el tiempo (he intentado iTime(Symbol(), PERIOD_CURRENT, 0), pero su índice es cero)
¿Cómo extiendo la línea hacia la derecha? Más allá de la barra actual.
Hay coordenadas de tiempo y precio. Entiendo el precio, pero cómo establecer el tiempo (he intentado iTime(Symbol(), PERIOD_CURRENT, 0), pero su índice es cero)
Buenas tardes.
He aquí una pregunta:
Estoy escribiendo un indicador que dibuja zonas con el estilo de dibujo DRAW_FILLING. Hay varios otros indicadores, incluyendo un montón de muwings, en el gráfico además de la zona dibujada. Cuando se dibuja una zona, las líneas de otros indicadores cambian bruscamente de color.
La pregunta: ¿podemos dibujar las zonas en MT5 de manera que su color no se superponga y no cambie los colores de las líneas de otros indicadores?
P.D. He excavado todas las propiedades de los buffers de los indicadores (métodos como PlotIndexSetInteger), no hay nada similar.
P.S2. Se adjunta una captura de pantalla de MT5.
Buenas tardes.
He aquí una pregunta:
Estoy escribiendo un indicador que dibuja zonas con el estilo de dibujo DRAW_FILLING. Hay varios otros indicadores, incluyendo un montón de muwings, en el gráfico además de la zona dibujada. Cuando se dibuja una zona, las líneas de otros indicadores cambian bruscamente de color.
La pregunta: ¿podemos dibujar las zonas en MT5 de manera que su color no se superponga y no cambie los colores de las líneas de otros indicadores?
P.D. He excavado todas las propiedades de los buffers de los indicadores (métodos como PlotIndexSetInteger), no hay nada similar.
P.S2. Aquí hay una captura de pantalla de MT5.
Todo depende de la secuencia de solapamiento, quien es el último está arriba
Definir el buffer conDRAW_FILLING primero