Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 679
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
Estoy escribiendo un robot, conectando Ctrade, primero quiero empezar con una lógica donde hará una operación de Compra a precio de mercado al principio de cada hora, después de media hora venderá todo a un nuevo precio de mercado. Cuando lo pruebo en el probador, obtengo el error Tipo de pedido no válido.
Mi instrumento es SBER, mi cliente es Otkritie. Mi orden está en modo manual, mi orden no se pasa en la cuenta real o demo.
¿Cuál puede ser el error? ¿Es cierto que la bolsa no puede negociar a precio de mercado?
Estoy escribiendo un robot, conectando Ctrade, primero quiero empezar con una lógica donde hará una operación de Compra a precio de mercado al principio de cada hora, después de media hora venderá todo a un nuevo precio de mercado. Cuando lo pruebo en el probador, obtengo el error Tipo de pedido no válido.
Mi instrumento es SBER, mi cliente es Otkritie. Mi orden está en modo manual, mi orden no se pasa en la cuenta real o demo.
¿Cuál puede ser el error? ¿Es cierto que la bolsa no puede negociar a precio de mercado?
Buenas tardes, si el EA se está ejecutando en un portátil y éste ha entrado en modo de hibernación, ¿funcionará el EA conectado en este caso?
Y se incluirá la impresión en el registro de cualquier valor y se averiguará. Si no se imprime, no funciona.
Buenos días, si el EA se está ejecutando en un ordenador portátil y éste se ha puesto en modo de suspensión, ¿funcionará el EA conectado en este caso?
El modo de hibernación suele ser el que apaga la unidad,
Hace poco instalé un servidor, y sólo el día 3 vi que el ordenador estaba dormido, es decir, no funcionaba, es decir, todos los EAs no funcionaban,
He desactivado el modo de hibernación y todo está bien.
Está claro ...me preguntaba si alguien podría compartir su experiencia con un novato.
Hola, si el asesor se ejecuta en un ordenador portátil y está en modo de hibernación, ¿funcionará el asesor conectado en este caso?
No. No funcionará. En la configuración de la energía, ajuste la fuente de alimentación:
Sin su código, es difícil entender lo que ha escrito y por qué no funciona.
//| Gear.mq5 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include <Trade/Trade.mqh>
CTrade trade;
bool TimeFlag, FLG;
int TimeScale=50, TimeInMemory, TimeNow;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---Блок получения информации с биржи
MqlTick oCurrentTick;
SymbolInfoTick(Symbol(), oCurrentTick);
//---Блок определения начала нового временного интервала
TimeFlag=false;
datetime tm=TimeCurrent();
MqlDateTime stm;
TimeToStruct(tm,stm);
if(MathMod(StringToInteger((string)stm.min),TimeScale)==0)
{
TimeNow=StringToInteger((string)stm.min);
}
if(TimeNow != TimeInMemory)
{
TimeInMemory=TimeNow;
TimeFlag=true;
//Print(_Symbol);
}
if(TimeFlag)
{
if(FLG)
{
if(!trade.Buy(1,_Symbol))
{
//--- сообщим о неудаче
Print("Метод Buy() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
". Описание кода: ",trade.ResultRetcodeDescription());
}
else
{
Print("Метод Buy() выполнен успешно. Код возврата=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
FLG=false;
}
else
{
trade.Sell(1);
FLG=true;
}
}
}
//+------------------------------------------------------------------+
Esta no es la manera de hacerlo:
int TimeScale=50,TimeInMemory,TimeNow;
o más bien, después de tal declaración, debe inicializar explícitamente(asignar valores a) estas variables en OnInit().
El método Sell también debe estar rodeado de comprobaciones, como
" (",trade.ResultRetcodeDescription(),")");
Y también puede haber una pega: por la mañana, en la apertura de la negociación, la subasta no empieza inmediatamente, no desde el primer segundo, y es entonces cuando se pueden producir errores.