![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
El volumen de MT4 Batter también es inadecuado en el probador
¿Puede decirme por qué se abre en cada tic?
{
Alert(Sborinfo(Magic));
if(Sborinfo(Magic)<=0)
{
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,0,0,0,NULL,0,0,Blue);
if(tiket>=0)
LastPrice=Ask;
else LastPrice=-1;
}
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,0,0,0,NULL,0,0,Red);
if(tiket>=0)
LastPrice=Bid;
else LastPrice=-1;
}
//+------------------------------------------------------------------+
int Sborinfo(int magic)
{
for(int i=0; i<OrdersTotal(); i++)
{
Print("колличество ордеров ",kol);
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==magic)
kol++;
}
Print("новые ордера ",kol);
return(kol);
}
¿Puede decirme por qué se abre en cada tic?
Porque siempre pruebo en este modo
{
Alert(Sborinfo(Magic));
if(Sborinfo(Magic)<=0)
{
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,0,0,0,NULL,0,0,Blue);
if(tiket>=0)
LastPrice=Ask;
else LastPrice=-1;
}
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,0,0,0,NULL,0,0,Red);
if(tiket>=0)
LastPrice=Bid;
else LastPrice=-1;
}
//+------------------------------------------------------------------+
int Sborinfo(int magic)
{
for(int i=0; i<OrdersTotal(); i++)
{
Print("колличество ордеров ",kol);
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==magic)
kol++;
}
Print("новые ордера ",kol);
return(kol);
}
¿Puede decirme por qué se abre en cada tic?
Porque así es como está escrito el código.
En términos sencillos, su algoritmo es el siguiente: si no hay órdenes, abre Compra, y en cada tick, abre Venta.
Porque así es como está escrito el código.
En términos sencillos, su algoritmo es el siguiente: si no hay órdenes, abre una Compra, y en cada tick, abre una Venta.
// Closse(Magic);
if(Sborinfo(Magic)==0)
{
Print("количество ордеров ",Sborinfo(Magic));
MassivPrice(step);
if(OrdersTotal()<2)// без таких условий
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,slippage,0,0,NULL,0,0,Green);
if(tiket>=0)
LastPrice=Ask;
}
MassivPrice(step);
if(OrdersTotal()<2)// без таких условий
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,slippage,0,0,NULL,0,0,Red);
if(tiket>=0)
LastPrice=Bid;
}
//+------------------------------------------------------------------+
int Sborinfo(int magic)
{
kol=0;
for(int i=0; i<OrdersTotal(); i++)
{
Print(" чему ровно кол " , kol );
if(OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber()==magic)
{
Print(" ордера после " , kol );
// kol++;
}
}
return(kol);
}
¿Cómo se cambia el código para que funcione sin condiciones adicionales?
Pero no puedes, si necesitas tanto comprar como vender y limitar su número. Sólo que no miraríaOrdersTotal(), y contaría cuánto compra y cuánto vende.
Y de nuevo, ¿por qué necesitas este "if(Sborinfo(Magic)==0)" si luego utilizasOrdersTotal()?
Pero no puedes, si necesitas tanto comprar como vender y limitar su número. Sólo que yo no miraríaOrdersTotal(), y contaría cuánta compra y cuánta venta.
Y de nuevo, ¿por qué necesita este "if(Sborinfo(Magic)==0)", si luego utilizaOrdersTotal()?
CloseFirst(Magic);
int b=0;
int s=0;
for(int i=0; i<=OrdersTotal(); i++)
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderMagicNumber()==Magic && OrderSymbol()==_Symbol )
{
if(OrderType()==OP_BUY)
b++;
if(OrderType()==OP_SELL)
s++;
}
if(b==0)
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,slippage,0,0,NULL,Magic,0,Green);
if(s==0)
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,slippage,0,0,NULL,Magic,0,Red);
}
¡Camaradas! Tengo una pregunta.
El Asesor Experto abre las órdenes pendientes a las 00:00 del comienzo del día basándose en los extremos del día anterior.
Entre semana, todo funciona bien, pero con la apertura del lunes,las órdenes pendientes no se colocan en los extremos del viernes, sino en los niveles del jueves por alguna razón. ¿Por qué?
currtime=TimeToStr(TimeCurrent(),TIME_MINUTES);
Format=Digits();
DH=NormalizeDouble(iHigh(NULL,PERIOD_D1,1),Format) ;
DL=NormalizeDouble(iLow(NULL,PERIOD_D1,1),Format);
if (currtime==OpenTime)
{
отложки
}
¿Te refieres a esto? ¿Hay otras opciones más sencillas?
Sí, así es. ¿Cuánto más simple?
Sí, así es. ¿Cuánto más fácil puede ser?