[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 588

 
link1:

la fecha es la misma, del 15 de febrero al 16 de febrero


o cualquier otra fecha. las condiciones son todas iguales, pero cada vez el resultado es diferente

 

¿Cómo puedo saber si una orden pendiente se activa o no?

O en general - dos órdenes pendientes en diferentes direcciones, tan pronto como uno ha disparado, cerramos el segundo ... Estoy aburrido - ayúdame.

 
link1:


o cualquier otra fecha. las condiciones son todas iguales, pero cada vez el resultado es diferente

el diferencial se toma del mercado en el momento y se considera que es el mismo durante todo el periodo de prueba
 
ilunga:
el diferencial se toma del mercado en el momento y se considera igual durante todo el periodo de prueba


Ahhhh... eso es, ya lo tengo, ¡muchas gracias! )

También hay un elemento de calidad de modelado en el informe, siempre es el 25%. ¿hay alguna forma de mejorarlo?

 
link1:


Ahhhh..., eso es, ya lo tengo, ¡muchas gracias! )

También hay un elemento de calidad de modelado en el informe, siempre es el 25%. ¿hay alguna forma de mejorarlo?

leer algunos artículos sobre el modelado

como https://www.mql5.com/ru/articles/1513

 
ilunga:

Lea algunos artículos sobre el modelado

Por ejemplo, https://www.mql5.com/ru/articles/1513


oh, gracias de nuevo, justo lo que necesitaba, gracias )
 

¿Cómo puedo saber si una orden pendiente se ha activado y comparar su ticket?

 
DOCTORS:

¿Cómo puedo saber si una orden pendiente se ha activado y comparar su ticket?

Seleccione una orden con OrderSelect y vea su OrderType
 

//+------------------------------------------------------------------+
//| Stas_helper_v01.mq4 |
//| DOC |
//| DR_GAD@mail.ru |
//+------------------------------------------------------------------+
#property copyright "DOC"
#property link "DR_GAD@mail.ru"

//--- input parameters
extern double Stop=15;
extern double Profit=35;
extern double Lots=1;

extern int k=1;
extern int x;
extern int y;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
int i;
//----
ObjectsDeleteAll();

for(i=OrdersTotal()-1; i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS))
{
if (OrderType() == OP_BUYSTOP)
{
OrderDelete(OrderTicket());
}
if (OrderType() == OP_SELLSTOP)
{
OrderDelete(OrderTicket());
}
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
int ticket1,ticket2, total,i;
double price;
string Symb;
//1.выставление отложенных ордеров
Symb=Symbol();

if(k==1)
{
price=NormalizeDouble((Ask-Bid)/2,Digits);

ticket1=OrderSend(Symb,OP_BUYSTOP,Lots,Bid+((Stop*Point))+price,3,Bid+(Ask-Bid)/2,Bid+((Stop*Point))+price+Profit*Point, "Отложенник",1,0,Green);
if(ticket1<0)
{
Print("Ошибка!#",GetLastError());
return(0);
}
ticket2=OrderSend(Symb,OP_SELLSTOP,Lots,Bid-((Stop*Point))+price,3,Ask-(Ask-Bid)/2,Bid-((Stop*Point))+price-Profit*Point, "Отложенник2",2,0,Green);
if(ticket2<0)
{
Print("Ошибка!#",GetLastError());
return(0);
}
k=2;
}
//1.-----------------------------

//2. Если ордер открылся.

if (k==2)

{
OrderSelect(ticket1,SELECT_BY_TICKET,MODE_TRADES);
if (OrderType()==OP_BUY)
{
OrderDelete(ticket2);
k=3;

}
OrderSelect(ticket2,SELECT_BY_TICKET,MODE_TRADES);
if (OrderType()==OP_SELL)
{
OrderDelete(ticket1);
k=3;

}



}


//2----------------------
return(0);
}
//+------------------------------------------------------------------+

¿Por qué no se cierra la otra orden pendiente?

 
DOCTORS:


//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{

int ticket1,ticket2, total,i;

¿Por qué no se cierra la otra orden pendiente?

Porque se trata de variables locales que ya en el segundo tick almacenan basura en lugar de billete
Razón de la queja: