Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 841

 
Gracias por la respuesta, pero me refería a qué funciones de mql4 se pueden utilizar para implementar esto?
 
MiroshA:
Gracias por la respuesta, pero me refería a qué funciones de mql4 pueden implementar esto?
Diferentes. Dependiendo del algoritmo que decida desarrollar.
 

Hola. Mi Asesor Experto está unido a muchas ventanas de pares de divisas y compra en los pullbacks más probables. Utilizo variables globales para el intercambio de información entre las copias en ejecución del EA. los datos se actualizan cada segundo. Se me ocurrió guardar toda esta información en un archivo, pero no lo hice porque recurriría al pendrive con demasiada frecuencia.

La verdad es que no se me ocurre ninguna forma de evitarlo, la única manera es establecer cada moneda en un número específico por defecto y utilizar las mismas variables globales por ejemplo 01023334455 donde 01 es USD, 02 es EUR, 3, 4, 5 son los datos para el cambio.

 
pycha:

Hola. Mi Asesor Experto está unido a muchas ventanas de pares de divisas y compra en los pullbacks más probables. Utilizo variables globales para el intercambio de información entre las copias en ejecución del EA. los datos se actualizan cada segundo. Se me ocurrió guardar toda esta información en un archivo, pero no lo hice porque recurriría al pendrive con demasiada frecuencia.

La verdad es que no se me ocurre ninguna forma de evitar esto, la única forma es establecer cada moneda en un número específico por defecto y utilizar las mismas variables globales por ejemplo 01023334455 donde 01 es USD, 02 es EUR, 3, 4, 5 son los datos para el cambio.

¿Qué pasa con el símbolo en el nombre de la variable? En consecuencia, si existe una variable GV de este tipo... ...y es posible almacenar un valor en él. De este modo, tenemos 1 variable que sirve para dos propósitos.

 

Sólo quiero que el software sea más universal. de esta manera puedes poner 01 -usd , 02 eur en un archivo y cuando abres la ventana de usdaud encontrará que aud no está en la lista y le dará el número 03, guardando la información en el archivo. de esta manera no necesito recompilar el software cada vez que abro una nueva moneda que no ha sido probada

 
AlexeyVik:

¿Pero qué pasa con la inserción de un símbolo en el nombre de una variable? En consecuencia, si existe una variable GV de este tipo... ...y se puede escribir un valor en él. Así, tenemos una variable que sirve para dos propósitos.


Voy a explicar por qué no funciona. una vez que una cierta cantidad de tiempo, el programa borra todas sus variables para eliminar la basura innecesaria, si es que hay. GV1 GV2 y así sucesivamente hasta que se agote. así que si hay una variable creada por otra copia del programa, también será eliminado, y se restauran después de 1 segundo. y si me nombre una variable por un símbolo, tengo que ir a través de todas las posibles variaciones de símbolos para eliminar todos.



Mi pregunta es: ¿existen otros trucos además de GV - variables que permitan pasar datos de una instancia de un programa a otra a través del sistema operativo?

 
pycha:

Sólo quiero que el software sea más universal. de esta manera puedes poner 01 -usd , 02 eur en un archivo y cuando abres la ventana de usdaud encontrará que aud no está en la lista y le dará el número 03, guardando la información en el archivo. de esta manera no necesito recompilar el software cada vez que abro una nueva moneda que no ha sido probada


¿Por qué tengo que reasignarlo? Hay una lista de símbolos. Es independiente de la clasificación. Resulta que puedes encontrar el número de símbolo en la lista y utilizarlo.
 
Bien, gracias a todos
 
pycha:

Voy a explicar por qué no funciona. una vez durante un cierto tiempo el programa borra todas sus variables para eliminar la basura innecesaria si la hay. GV1 GV2 y así hasta que se agote. por lo tanto, si hay una variable creada por otra copia del programa también se borrará, y se restauran después de 1 segundo. y si usted hace un nombre de variable por un símbolo, usted tiene que ir a través de todas las posibles variaciones de símbolos para eliminar todos .



Mi pregunta es: ¿existen otros trucos además de GV - variables que permitan transferir datos de una copia del programa a otra a través de la RAM?

Pues entonces intenta hacer una estructura en una biblioteca, rellena y lee desde allí.
 

Buenas noches! Ayúdame a entender el código de abajo, vender está escrito en el mismo principio, ¿por qué tres opciones para abrir, porque tuve que juguetear con la opción para evitar la apertura de un orden entonces - cuando la orden se abre en la barra actual y se cierra en un no sorteo,

y la señal permanece y se abre de nuevo, por lo que he tenido que escribirlo así. El problema es que sólo se abre una orden de compra y de venta y todo lo demás está en silencio. Se lo agradezco de antemano.

//+------------------------------------------------------------------+
//| Open Order Buy                                                   |
//+------------------------------------------------------------------+
if (!OrdersTotal()==true)
{
if (PLO0>S0 && PLO1<=S1 && PLO2<S2)
if (!OrdersHistoryTotal()==true)
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,StopLossBuy,0,NULL,0,0,clrGreen);
RefreshRates();
{
if(ticket<0)
{
Print("OrderSend OP_BUY завершилась с ошибкой #",GetLastError());
}
else
Print("Функция OrderSend OP_BUY успешно выполнена");
}
}
if (OrdersHistoryTotal()==true)
if(OrderSelect(ticket,SELECT_BY_TICKET)>0 && OrderCloseTime()>0 && OrderType()==OP_BUY && OrderSymbol()==Symbol()&& PLO0>S0 && PLO1<=S1 && PLO2<S2 && OrderCloseTime()< Time[0])
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,StopLossBuy,0,NULL,0,0,clrGreen);
RefreshRates();
{
if(ticket<0)
{
Print("OrderSend OP_BUY завершилась с ошибкой #",GetLastError());
}
else
Print("Функция OrderSend OP_BUY успешно выполнена");
}
}
if (OrdersHistoryTotal()==true)
if(OrderSelect(ticket,SELECT_BY_TICKET)>0 && OrderCloseTime()>0 && !OrderType()==OP_BUY && OrderSymbol()==Symbol()&& PLO0>S0 && PLO1<=S1 && PLO2<S2)
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,StopLossBuy,0,NULL,0,0,clrGreen);
RefreshRates();
{
if(ticket<0)
{
Print("OrderSend OP_BUY завершилась с ошибкой #",GetLastError());
}
else
Print("Функция OrderSend OP_BUY успешно выполнена");
}
}
}