El error realmente no estaba en el código, debería haber puesto "Todos los ticks" en lugar de "Por precios de apertura" como modelo de prueba. Es mucho tiempo para probar así, por supuesto.
Muchas gracias por la ayuda. Perdón por tomarme mi tiempo con semejante estupidez)
El error realmente no estaba en el código, debería haber puesto "Todos los ticks" en lugar de "Por precios de apertura" como modelo de prueba. Es mucho tiempo para probar así, por supuesto.
Muchas gracias por la ayuda. Perdón por tomarme mi tiempo con semejante estupidez)
Para comprobar los precios de apertura, sustituya el 0 por el 1 en las líneas para comprobar la dirección de la vela. Pero entonces mirará la primera barra para ver la dirección. Con 0, sólo tienes precios de apertura y cierre iguales.
Dime cómo enseñar al experto a extraer los datos correctamente:
Le pido que encuentre el valor del último precio. Lo encuentra, pero lo emite con cuatro decimales y redondea el quinto. El quinto carácter debe tenerse en cuenta para el correcto funcionamiento del robot.
También redondea un poco el precio medio. También redondea el precio medio al cuarto carácter.
Obtengo números diferentes con la calculadora.
NormalizeDouble() ha intentado aplicarse, pero aún no he obtenido ningún resultado.
int Oldticketnumber;
double Unused = 0;
int Ticketnumber = 0;
RefreshRates();
for(int cnt = OrdersTotal()-1; cnt >= 0; cnt --) //Для всехоткрытых ордеров
{
if (OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES)) // Выбираем со всего масива ордеровif(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)//Выбирам ордера експерта
{
if(OrderType()==OP_BUY)
{
BuyAP += OrderOpenPrice()*OrderLots(); // Средневзвешаная цена всех позиций
Oldticketnumber = OrderTicket(); // присваиваем тикетыif (Oldticketnumber > Ticketnumber) // ищем последний тикет
{
LastPrise = OrderOpenPrice(); // присваиваем последнюю цену
Unused = LastPrise; // задаем цену переменной
Ticketnumber = Oldticketnumber; // последный заданый тикет
}
// далее по тексту---------------------------------------------------------------------if (BuyLots != 0) // Если есть ордера BUY, то вычисляется их средняя цена открытия
BuyAP /= BuyLots;
Dime cómo enseñar al experto a extraer los datos correctamente:
Le pido que encuentre el valor del último precio. Lo encuentra, pero lo emite con cuatro decimales y redondea el quinto. El quinto carácter debe tenerse en cuenta para el correcto funcionamiento del robot.
También redondea un poco el precio medio. También redondea elprecio medio al cuarto carácter.
Obtengo números diferentes con la calculadora.
NormalizeDouble() ha intentado aplicarse, pero aún no he obtenido ningún resultado.
Determinar la aparición de una nueva barra (sintética), utilizando un mínimo de código y sin utilizar variables ligadas a la hora de apertura de la barra. La solución es la siguiente:
if (Bid>Open[0] || Bid<Open[0]) return;
¿Cuáles son las posibles dificultades al utilizarlo en el probador y en la demostración?
Determinar la aparición de una nueva barra (sintética), utilizando un mínimo de código y sin utilizar variables ligadas a la hora de apertura de la barra. Lo resolví de la siguiente manera:
¿Cuáles son los posibles inconvenientes de su uso en el probador y en la demostración?
Cuando se negocia con sintéticos no se tiene una sola barra para este instrumento, sino un conjunto de instrumentos para cada uno de los cuales se puede tratar de identificar una nueva barra. Cuantos más instrumentos haya en el comercio, más probable será el error o el deslizamiento en el tiempo, porque el EA se cuelga de un par y ve otros ticks sólo cuando llega un tick para este instrumento. Puedes usar variables globales, pero no ayuda mucho porque si rastreas un nuevo tick en otro par de divisas sin el robot, sigues sin poder operar porque no hay ningún tick en tu par. Si no tienes muchos instrumentos, lo más fácil es escribir un robot, teniendo en cuenta que estará presente en todas partes a la vez.
¿Alguien sabe si es posible no mostrar todos los valores de los búferes en una ventana de indicador separada? Es esa línea blanca en la esquina superior izquierda de la ventana del indicador, es molesto ver tantos dígitos innecesarios en los 8 buffers utilizados.
¿Alguien sabe si es posible no mostrar todos los búferes en una ventana indicadora separada? Es la línea blanca que se escribe en la esquina superior izquierda de la ventana del indicador, es molesto ver tantos números innecesarios en los 8 buffers utilizados.
Inite SetIndexLabel(...,"), pero el buffer también desaparecerá de la ventana de datos.
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
¿Cuál es el problema? Funciona.
¿Cuál es el problema? Funciona.
El error realmente no estaba en el código, debería haber puesto "Todos los ticks" en lugar de "Por precios de apertura" como modelo de prueba. Es mucho tiempo para probar así, por supuesto.
Muchas gracias por la ayuda. Perdón por tomarme mi tiempo con semejante estupidez)
El error realmente no estaba en el código, debería haber puesto "Todos los ticks" en lugar de "Por precios de apertura" como modelo de prueba. Es mucho tiempo para probar así, por supuesto.
Muchas gracias por la ayuda. Perdón por tomarme mi tiempo con semejante estupidez)
Dime cómo enseñar al experto a extraer los datos correctamente:
Le pido que encuentre el valor del último precio. Lo encuentra, pero lo emite con cuatro decimales y redondea el quinto. El quinto carácter debe tenerse en cuenta para el correcto funcionamiento del robot.
También redondea un poco el precio medio. También redondea el precio medio al cuarto carácter.
Obtengo números diferentes con la calculadora.
NormalizeDouble() ha intentado aplicarse, pero aún no he obtenido ningún resultado.
Dime cómo enseñar al experto a extraer los datos correctamente:
Le pido que encuentre el valor del último precio. Lo encuentra, pero lo emite con cuatro decimales y redondea el quinto. El quinto carácter debe tenerse en cuenta para el correcto funcionamiento del robot.
También redondea un poco el precio medio. También redondea elprecio medio al cuarto carácter.
Obtengo números diferentes con la calculadora.
NormalizeDouble() ha intentado aplicarse, pero aún no he obtenido ningún resultado.
¿Dónde ves todo esto?
No se puede evitar el redondeo. Pero la cuestión de qué redondeo a partir del 5º o 4º dígito
en el código de abajo:
No se puede evitar el redondeo. Pero la cuestión es si hay que redondear a partir de la 5ª o 4ª cifra
en el código siguiente:
Lo intenté de esta manera
Hola a todos, tengo esta tarea:
Determinar la aparición de una nueva barra (sintética), utilizando un mínimo de código y sin utilizar variables ligadas a la hora de apertura de la barra. La solución es la siguiente:
¿Cuáles son las posibles dificultades al utilizarlo en el probador y en la demostración?Hola a todos, tengo esta tarea:
Determinar la aparición de una nueva barra (sintética), utilizando un mínimo de código y sin utilizar variables ligadas a la hora de apertura de la barra. Lo resolví de la siguiente manera:
¿Cuáles son los posibles inconvenientes de su uso en el probador y en la demostración?Cuando se negocia con sintéticos no se tiene una sola barra para este instrumento, sino un conjunto de instrumentos para cada uno de los cuales se puede tratar de identificar una nueva barra. Cuantos más instrumentos haya en el comercio, más probable será el error o el deslizamiento en el tiempo, porque el EA se cuelga de un par y ve otros ticks sólo cuando llega un tick para este instrumento.
Puedes usar variables globales, pero no ayuda mucho porque si rastreas un nuevo tick en otro par de divisas sin el robot, sigues sin poder operar porque no hay ningún tick en tu par. Si no tienes muchos instrumentos, lo más fácil es escribir un robot, teniendo en cuenta que estará presente en todas partes a la vez.
¿Alguien sabe si es posible no mostrar todos los valores de los búferes en una ventana de indicador separada? Es esa línea blanca en la esquina superior izquierda de la ventana del indicador, es molesto ver tantos dígitos innecesarios en los 8 buffers utilizados.
¿Alguien sabe si es posible no mostrar todos los búferes en una ventana indicadora separada? Es la línea blanca que se escribe en la esquina superior izquierda de la ventana del indicador, es molesto ver tantos números innecesarios en los 8 buffers utilizados.
Inite SetIndexLabel(...,"), pero el buffer también desaparecerá de la ventana de datos.