[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 215

 

Y aún así, ¿cómo limitar el número de órdenes abiertas en el EA, porque las abre como una bola de nieve?

 
stalkertula:

Y aún así, ¿cómo limitar el número de órdenes abiertas en el EA, porque las abre como una bola de nieve?

1. Se ha comprobado la necesidad de establecer una orden, en caso afirmativo.

2. Compruebe el número de pedidos existentes, si es así...

3. Comprobado el tiempo transcurrido desde que se fijó la orden anterior (o cualquier otro criterio de retraso), si es así...

4. Hice un pedido.

En general, es algo así...

Aunque... cada uno de estos elementos incluye otras comprobaciones necesarias para corregir los parámetros de configuración del pedido (para evitar que el CC devuelva un error)

Sugerencia:
Cuando decida colocar una orden o abrir una posición, ¿cuáles son sus propios criterios?
Ahora hágase la siguiente pregunta: "¿Por qué no dejo que mi EA evalúe todos los criterios de decisión como lo hago yo?
Una vez que haya tenido en cuenta todos los criterios en su EA, reducirá considerablemente los errores lógicos...

Tómese como norma describir primero toda la lógica de tal o cual bloque de programa en un papel (no hay nada malo en ello, al contrario: ayuda),
y luego traducirlo a código.

 
artmedia70:

1. Se ha comprobado si es necesario instalar una orden judicial, si es así

2. Compruebe el número de pedidos existentes, en caso afirmativo...

3. Comprobado el tiempo transcurrido desde que se fijó la orden anterior (o cualquier otro criterio de retardo), si es así...

4. Hice el pedido.

En general, es algo así...
Aunque... cada uno de estos puntos incluye también varias comprobaciones necesarias para corregir los parámetros de configuración de la orden (para evitar que el CC devuelva un error)

Gracias por su respuesta, pero el algoritmo está escrito en ruso, pero en mql, no soy fuerte, por lo menos un consejo sobre las funciones que fija el número (el número de prescripción en la configuración) órdenes abiertas vender / comprar, y luego la señal de prohibir la colocación de un sellstop / buystop.

//----------------------------------------------------------------------- проверка установленных стоп ордеров

double StopOrderUp,StopOrderDn,price,MinBuyOrder=1000000000,MaxSellOrder,OldBuyOrder,OldSellOrder,OldBuyLot,OldSellLot;

int TicketUp,TicketDn;

TimeOllOpenBuy=0;TimeOllOpenSell=0;

double OOL_BUYSTOP,OOL_SELSTOP;

for (i=0; i<OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)

{ price = OrderOpenPrice();

if (Magic==OrderMagicNumber() && OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUYSTOP ) {StopOrderUp = price; TicketUp=OrderTicket(); OOL_BUYSTOP=OrderLots();}

if (OrderType()==OP_SELLSTOP) {StopOrderDn = price; TicketDn=OrderTicket(); OOL_SELSTOP=OrderLots();}

if (OrderType()==OP_BUY )

{ TimeOllOpenBuy = TimeOllOpenBuy + TimeCurrent()-OrderOpenTime();

if (MinBuyOrder > price) MinBuyOrder = price;

OldBuyOrder=price;

OldBuyLot=OrderLots();

if (DrawInfo&&!IsTesting()){

NameLine="ордер Bay "+OrderTicket();ObjectDelete(NameLine);ObjectDelete(NameLine+" з");

ObjectCreate(NameLine, OBJ_TREND, 0, OrderOpenTime(),price,Time[0],Bid);

ObjectSet(NameLine, OBJPROP_COLOR,LightSkyBlue);

ObjectCreate(NameLine+" з",OBJ_ARROW,0,Time[0],Bid,0,0,0,0);

ObjectSet(NameLine, OBJPROP_STYLE, STYLE_DOT);// Стиль

ObjectSet(NameLine, OBJPROP_RAY, false); // Луч

ObjectSet(NameLine+" з",OBJPROP_ARROWCODE,3);ObjectSet(NameLine+" з",OBJPROP_COLOR,WhiteColor);}

}

if (OrderType()==OP_SELL)

{ TimeOllOpenSell = TimeOllOpenSell + TimeCurrent()-OrderOpenTime();

if (MaxSellOrder < price) MaxSellOrder = price;

OldSellOrder=price;

OldSellLot=OrderLots();

if (DrawInfo&&!IsTesting()){

NameLine="ордер Sell "+OrderTicket();ObjectDelete(NameLine);ObjectDelete(NameLine+" з");

ObjectCreate(NameLine, OBJ_TREND, 0, OrderOpenTime(),price,Time[0],Ask);

ObjectSet(NameLine, OBJPROP_COLOR,Pink);

ObjectCreate(NameLine+" з",OBJ_ARROW,0,Time[0],Ask,0,0,0,0);

ObjectSet(NameLine, OBJPROP_STYLE, STYLE_DOT);// Стиль

ObjectSet(NameLine, OBJPROP_RAY, false); // Луч

ObjectSet(NameLine+" з",OBJPROP_ARROWCODE,3);ObjectSet(NameLine+" з",OBJPROP_COLOR,WhiteColor);}

}

}

}

}

if (MinBuyOrder==1000000000 && MaxSellOrder==0 && OOL_BUYSTOP!=OOL_SELSTOP)//если серия закрылась

{

DELETEORDERS();

}
 
Roman.:

Pruebo los EAs en los precios de apertura de una nueva barra (para esto necesito especificar en el código del EA el control para la formación de una nueva barra)
Intento modificar las paradas de manera tic. Roman, ¿cuáles son las desventajas de esta modificación, aparte de la falta de flechas de modificación?
 

al pegar el indicador, el terminal se cuelga y escribe lo mismo en los registros: subventana desconocida número -1 para la función ObjectCreate

Tengo el índice de una ventana con el nombre de este indicador en todo ObjectCreate(x=WindowFind(short_name); ObjectCreate("fut "+i,OBJ_TREND,x,0,0,0);)

Siempre ha funcionado antes... No entiendo por qué es así.

 
eddy:

cuando inserto un indicador, el terminal se cuelga y escribe lo mismo en el registro: 15:18:16 RSI EURUSD,M15: número de subventana desconocido -1 para la función ObjectCreate

Tengo un índice de una ventana con el nombre de este indicador en todos los ObjectCreate (WindowFind(indikator_name), por ejemplo, ObjectCreate("fut "+i,OBJ_TREND,x,0,0,0);

siempre ha funcionado antes... No entiendo por qué es así

Puede ser porque ObjectCreate es llamado desde init(). En este caso la búsqueda de la ventana puede devolver -1 aunque el nombre del indicador sea correcto.
 
eso es lo que está haciendo... gracias
 
No puedo entenderlo.
2011.03.07 15:49:40     2011.01.19 10:50  RSI-тралинг EURUSD,H1: OrderSend error 131

Esto es en Alpari...con spread flotante...pero el spread fijo funciona bien...

Leí sobre el error, puse todos los volúmenes y 1 lote y 0,1 lote y 0,01 lote.....pis el mismo error((((((

 
Vovo4ka:
No puedo entenderlo, dice.

Esto es en Alpari...con spread flotante...pero el spread fijo funciona bien...

He leído lo del error, he puesto todos los volúmenes y 1 lote y 0,1 lote y 0,01 lote.....pis el mismo error((((((

En un código del error, se puede aprender la dirección en la que hay que cavar. Pero sin el código nadie te dirá de dónde viene este error.

 
Vovo4ka:
No puedo entenderlo.

Esto es en Alpari...con spread flotante...pero el spread fijo funciona bien...

Leí sobre el error, puse todos los volúmenes y 1 lote y 0,1 lote y 0,01 lote.....pis el mismo error((((((


Escribe el código.
Razón de la queja: