[¡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 112

 

¡Buenas noches!

Tengo una simple pregunta.

¿Por qué razón, el EA, después de la inicialización, no puede ir a start(); ?

¿Quizás alguien se ha enfrentado a un problema así?

De init(); Salgo return(0); .

¡Gracias de antemano por la respuesta!

 
¿Y cómo sabes que "no fue a Start"?
 
BBSL:

¡Buenas noches!

Tengo una simple pregunta.

¿Por qué razón, el EA, después de la inicialización, no puede ir a start(); ?

¿Quizás alguien se ha enfrentado a un problema así?

De init(); Salgo return(0); .

¡Gracias de antemano por la respuesta!

Si no hay presupuestos, no se puede empezar. Se necesitan garrapatas para pasar al inicio + la aprobación del experto.
 

¡Hola a todos y beneficios!

Tengo un problema así.

En mi ordenador de casa estoy haciendo un diseño gráfico. ¿Cómo transferirlo a otro ordenador? ¿Qué archivo debe sobrescribirse?

No puedo usar la salida como copiar toda la carpeta de MT4 y luego copiarla con un nuevo nombre en otro ordenador porque es demasiado complicado. Lo interesante es que si dejo la carpeta en otro ordenador con el nombre antiguo no hay nada nuevo en los gráficos...

Quién sabe, ¡ayuda!

 

BBSL ,yo solía escribir "start();" - ¿es así como lo escribiste? No necesitas dos puntos ahí, tal vez no hay corchetes

kiimar, ¿lo cerraste? Si es así, necesitas ver el código

 
BBSL:

¡Buenas noches!

Tengo una simple pregunta.

¿Por qué razón, el EA, después de la inicialización, no puede ir a start(); ?

¿Quizás alguien se ha enfrentado a un problema así?

De init(); Salgo return(0); .

¡Gracias de antemano por la respuesta!

La respuesta es aún más sencilla: la presencia del operador return(0) al final del cuerpo de una función no significa que este operador se ejecute nunca.
 

¿Cómo puedo comprobar si una orden se activa por TakeProfit o StopLoss? Gracias por su respuesta.

 
BBSL:

¿Por qué razón, el EA, después de la inicialización, no puede ir a start(); ?

¿Tal vez alguien se ha enfrentado a este problema?

A veces hay cálculos complejos o se carga el historial en init(), o el terminal tiene muchos indicadores y EAs que suspenden el terminal o...

pero si durante la inicialización del código los terminales interrumpen el código, aparecerá el siguiente error en el registro: ".... tiempo de espera en experto ...."

Si el registro no muestra ningún error, significa que la inicialización fue exitosa. La función start() en sí es fácil de comprobar - escriba start() : Print("new tick") en la primera línea;

 
Sayod ,¿en qué marco temporal operaste y con qué parámetros?
 
Jaguar1974:

¿Cómo puedo comprobar si una orden se activa por TakeProfit o StopLoss? Gracias por la respuesta.


Comprobar el historial de órdenes, si el precio de cierre es igual al SL o al TP - entonces ..., pero creo que sería más fácil comprobar el beneficio de una orden cerrada - si > 0 entonces tomar de lo contrario ...

aquí hay un trozo de código con un significado similar:

double history(){
int time = 0;double profit = 0;//обьявляем необходимые нам переменные куда мы положим интересующие нас характеристики ордера
for(int i = OrdersHistoryTotal();i>=0;i--){// Перебираем все закрытые ордера
  if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){//если ордер с таким номером (i) в списке закрытых ордеров есть ( не путать с тикетом)
    if(OrderSymbol() == Symbol()){//если выбранный ордер был открыт по нашей валютной паре
      if(time<OrderCloseTime()){//(сравниваем его с хранящимся в пероеменной time) 
        time=OrderCloseTime();//если время закрытия ордера больше - ложим его в переменную
        profit=OrderProfit();//и заодно запоминаем прибыль ордера
      }
    }
  }
}
//по окончании этой процедуры в наших переменных будут сидет наибольшее время закрытия, и его профит. Или по нулям если история чистая.
//теперь мы можем выставлять условия в зависимости от результата процедуры
   
if(profit == 0 &&time == 0){//действия если история чистая

}
if(profit >= 0){//действия если последний ордер был прибыльным, или нулевым

}
if(profit <  0 ){//действия если последний ордер был убыточным

}
return(0);
}