No se accede al asesor, al script, al indicador, sino que se trabaja en la ventana actual. Y las variables globales de diferentes ventanas/gráficos no se superponen. Por lo tanto, debería funcionar)
string AUDUSD; // Esta es una variable de texto, además de estar inicialmente vacía, es decir, igual a ""
(Symbol() == AUDUSD) // esta cadena no tiene nada que ver con la variable AUDUSD.
Pero los criterios de apertura de la orden no deben ser los mismos para diferentes instrumentos/ventanas. Si son iguales, efectivamente se abrirá en todas las ventanas.
Gracias.
Implementé la lógica para que el Asesor Experto no recibiera la señal de abrir órdenes cuando se abrieran en varias ventanas y entendiera que la señal de compra se daba para tal símbolo para que el EA no interfiriera con otros.
El problema no está en los valores de la variable en mi opinión. Acabo de tener en mi código uulsovii recálculo en la ocurrencia de una nueva hora. y resulta que el símbolo actual nueva barra aparece y calcula el valor de la barra = 1, pero el símbolo de la señal es una nueva barra aún no se ha formado o lo que si y valores calculados para la barra = 2
El problema se resuelve fácilmente: sólo he rastreado el inicio de una nueva barra por el símbolo de la señal
¿Es posible pasar varios parámetros de switch case desde el cuerpo de la función? Tengo tipos de órdenes a abrir en caso de switch y he conseguido pasar sólo 1 parámetro para abrir una orden desde la función que define el punto de entrada al mercado, como ya he entendido es imposible, así que no sé cómo implementarlo ni siquiera secuencialmente
¿Es posible pasar varios parámetros de switch case desde el cuerpo de la función? Tengo tipos de órdenes a abrir en caso de switch y he conseguido pasar sólo 1 parámetro para abrir una orden desde la función que define el punto de entrada al mercado, como ya he entendido es imposible, así que no sé cómo implementarlo ni siquiera secuencialmente todavía
Por favor, muéstreme en el código qué es exactamente lo que le interesa
¿Es posible pasar varios parámetros de switch case desde el cuerpo de la función? Tengo tipos de órdenes a abrir en caso de switch y he conseguido pasar sólo 1 parámetro para abrir una orden desde la función que define el punto de entrada al mercado, como ya he entendido es imposible, así que no sé cómo implementarlo aunque sea secuencialmente
int OpenOrder()
{
switch(AUDUSD_Analizing)
{
case0 : Alert("Нет условий для открытия ордера. Выход"); break;
case1 : // кейс для открытия Buy по AUD/USDif(TimeServer() == true)
{
if(Symbol() == AUDUSD)
{
RefreshRates();
Open_Order = OrderSend("AUDUSD",OP_BUY,lot,Ask,0,0,0);
Alert("Тикет открытого ордера ", Open_Order, GetLastError());
case2 : // кейс для открытия Sell по AUD/USDif(TimeServer() == true)
{
if(Symbol() == AUDUSD)
{
RefreshRates();
Open_Order = OrderSend("AUDUSD",OP_SELL,lot,Bid,0,0,0);
Alert("Тикет открытого ордера ", Open_Order, GetLastError());
//-------------------------------------------------------------------------------------------------------------// другая функция//-------------------------------------------------------------------------------------------------------------int AUDUSD_Analizing()
{
if(AUDUSD_Prices_new > AUDUSD_Prices_old)
{
s1 = AUDUSD_Prices1;
s2 = AUDUSD_Prices2;
s3 = s1 - s2;
if(raznica > s5)
{
Alert("--- ВРЕМЯ ОТКРЫВАТЬ ОРДЕР НА ПОКУПКУ ---");
и вот тут я могу либо прописать конкретное открытие ордера или несколько их штук(чем и решил заняться так
как не нашел решения), либо вернуть номер кейса в первую функцию(что сократило бы код).
Но мне нужно по условиям открывать сразу несколько сделок. К примеру нужно 2 на бай разом открыть,
а возвращается только одно значение и исполняется один кейс и дальше уже на новый круг все идет,
а мне нужно сразу несколько кейсов, допустим 5 выполнить, поставить 5 отложек и вот как передать не пойму,
или как вызвать срабатывание кейсов в последовательности. Если с кейсами можно как-то придумать, то по
факту код влезет в рамку 400-600 строк, а так полагаю все 1000+ выйдет в лучшем случае
(разбитые по 100-200 строк на .mqh, но и из файлов тоже помойка сложится)
cadena AUDUSD = "AUDUSD";
Al menos así.
¡¡Eso es!! Así fue para mí))), borrado y olvidado))
¡¡¡Muchas gracias!!! ¡Paz en tu casa!
No se accede al asesor, al script, al indicador, sino que se trabaja en la ventana actual. Y las variables globales de diferentes ventanas/gráficos no se superponen. Por lo tanto, debería funcionar)
string AUDUSD; // Esta es una variable de texto, además de estar inicialmente vacía, es decir, igual a ""
(Symbol() == AUDUSD) // esta cadena no tiene nada que ver con la variable AUDUSD.
Pero los criterios de apertura de la orden no deben ser los mismos para diferentes instrumentos/ventanas. Si son iguales, efectivamente se abrirá en todas las ventanas.
Gracias.
Implementé la lógica para que el Asesor Experto no recibiera la señal de abrir órdenes cuando se abrieran en varias ventanas y entendiera que la señal de compra se daba para tal símbolo para que el EA no interfiriera con otros.
¡¡Ahí está!! Así fue para mí))), borrado y olvidado))
¡¡¡Muchas gracias!!! ¡La paz en tu casa!
O así, a nivel de variable global
O como esto en el nivel de la variable global
En realidad es genial)) Ahora el robot recibe una señal y abre órdenes en diferentes pares en varias ventanas a la vez))
Gracias de nuevo.
El problema no está en los valores de la variable en mi opinión. Acabo de tener en mi código uulsovii recálculo en la ocurrencia de una nueva hora. y resulta que el símbolo actual nueva barra aparece y calcula el valor de la barra = 1, pero el símbolo de la señal es una nueva barra aún no se ha formado o lo que si y valores calculados para la barra = 2
El problema se resuelve fácilmente: sólo he rastreado el inicio de una nueva barra por el símbolo de la señal
Por favor, avisa.
Por favor, muéstreme en el código qué es exactamente lo que le interesa
Por favor, avisa.
¿Se refiere a un rango de valores?
Muestre el código exactamente lo que le interesa
¿Se refiere a un rango de valores?
No, por ejemplo pasar primero el caso 1, luego el caso 2, etc.
casos ejecutan la apertura de pedidos