[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 66

 
pero, en realidad, suelo intentar utilizar GetLastError() más ampliamente en estos casos. Por supuesto, no soy un profesional.
 
pepsi писал(а) >>
De hecho, en estos casos suelo intentar utilizar GetLastError() de forma más amplia. Por supuesto, no soy un profesional.

Entiendo que GetLastError() se supone que debe decir por qué no se hace algo, por ejemplo si un hilo está ocupado, ¡pero no tengo nada en absoluto!

 
Skydiver >> :

¿Supongo que sólo se necesitan 3 órdenes para abrir diferentes instrumentos? Por qué no hacer una variable de bandera, por ejemplo

En las variables globales crear

int flag=0;
string Symb;

///////////////

entonces

int start()
{
if (условие открытия)
{flag=1;}

if (flag==1)
{
Symb="EURUSD";
OrderSend(Symb,...)///Открываем, переносим флаг во 2 состояние для открытия след ордера и
flag=2; ///выходим тк больше мы ни чего не можем сделать
return(0);
}

if (flag==2)
{
Symb="AUDUSD";
OrderSend(Symb,...)
flag=3;
return(0);
}

if (flag==3)
{
Symb="USDJPY";
OrderSend(Symb,...)
flag=0;//Возвращаем флаг в начальное состояние..
return(0);
}
return(0);}


También sería bueno añadir la comprobación de la apertura y sólo después de que la comprobación tenga éxito mover la bandera.

¡Muchas gracias! ¡Lo probaré!

 
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ("posición larga abierta al precio",OrderOpenPrice( ));
}

else Print ("Error al abrir una posición larga:",GetLastError());


devuelve un error si OrderSelect() falla.


if(OrderSend(Symbol(), OP_SELLSTOP, getLots, Bid, 0, 0, 0, WindowExpertName(),
Magic, 0, Red) < 0)
Print("Error Open Sellstop = ",GetLastError());


Devuelve un error si OrderSend() falla.
 
existe la teoría de que es OrderSend() el que falla
 
Estimados expertos, ¿quién tiene un indicador que muestre en cada marco de tiempo los niveles de max-min para 25 y 50 barras y si el precio rebota desde este nivel en cualquier marco de tiempo en este lugar se mantuvo una línea y se mantuvo hasta que el precio lo rompe?
 
pepsi писал(а) >>
hay una versión que es OrderSend() que no funciona

¿alguna idea de por qué funciona en el probador?

 
sten1981 >> :

¿alguna idea de por qué funciona en el probador?

No. Pero lo que digo es que al usar la función Print más extensamente (aunque sin el posterior GetLastError),

se puede ver mucho mejor cómo el EA está operando.

 

por ejemplo, así:




if(MA1>MA2 && StochPrev<StohCur && StochPrev<SignPrev )

{

print(" Se cumple la condición para una orden de compra");

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,",16895,0,DeepSkyBlue);

if(ticket>0)

}

 
entonces la demostración del cuaderno de bitácora mostrará todo con mayor claridad. Está más claro dónde buscar el error. Por su cuenta...
Razón de la queja: