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

 
forexnew:

Puede escribir cero dividir, por lo que recuerdo. Pero esto se debe a que ciertos parámetros no se recalculan. En otras palabras, el EA simplemente no se inicia correctamente porque se inició antes del comienzo de la sesión de trabajo.

Por supuesto, estas casillas se han eliminado.

Si se produce este error(división por cero), el Asesor Experto deja de funcionar. Busque un lugar en el código donde se produzca la división por cero - lo más probable es que el cero se obtenga como resultado del cálculo de algún parámetro.
 
Sí, gracias.
 

Hola querida gente de mql. Aquí viene mi primer problema de código.

Es un indicador de tendencia. La tarea es un indicador de tendencia con coordenadas 1ra línea = máximo del último día y del día anterior y 2da línea = mínimo del último día y del día anterior.

Estaría bien, pero cuando se cambia a un marco temporal inferior, la coordenada se aferra al principio del día, aunque al nivel de precios correspondiente.... y el sentido de la línea se pierde por completo.

Al crear un objeto de línea de tendencia, el parámetro datetime es el culpable. No se me ocurre cómo llegar a ella. Es necesario calcular el tiempo de formación de los extremos del precio. Parece que esta información

Parece que esta información está incrustada en el marco de tiempo de 1 minuto y estoy teniendo un tiempo difícil aquí. Cómo determinar la fecha en la que cambia el marco temporal para que se vuelva a dibujar una tendencia y se adjunten coordenadas a las barras correspondientes a los extremos.

Desgraciadamente, la búsqueda no ha aportado nada sobre el tema. Me gustaría que me aconsejaran.

 

Necesito ver el comportamiento del precio a lo largo de toda la historia del instrumento por MA, pero el indicador no se dibuja cuando se inserta en el gráfico.

¿Cuál es el problema?

Cuando se compila = 0 y 0.

Por cierto, ¡el terminal MT4 se cuelga!

//--------------------------------------------------------------------
// separatewindow.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
#property indicator_chart_window    // Индик. рисуется в основном окне
#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_color2 Red      // Цвет второй линии

extern int History  =1000000;            // Колич.баров в расчётной истории
extern int Aver_Bars=1000000;             // Количество баров для расчёта

double Buf_0[];                     // Открытие индикаторного массива
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
   int i,                           // Индекс бара
   n,                               // Формальный параметр
   Counted_bars;                    // Количество просчитанных баров 
   double
   Sum_H,                           // Сумма значений High за переиод
   Sum_L;                           // Сумма значений Low  за переиод
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   if (i>History-1)                 // Если много баров то ..
      i=History-1;                  // ..рассчитывать заданное колич.
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Sum_H=0;                      // Обнуление в начале цикла
      Sum_L=0;                      // Обнуление в начале цикла
      for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений 
        {
         Sum_H=Sum_H + High[n];     // Накопление суммы макс.значений
         Sum_L=Sum_L + Low[n];      // Накопление суммы мин. значений
        }
      Buf_0[i]=(Sum_H-Sum_L)/Aver_Bars;// Знач. 0 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//--------------------------------------------------------------------
 

Estoy escribiendo un EA con la transferencia de más paradas a Breakeven y el aumento de Breakeven. Todo parece funcionar, pero sólo hay un problema. El stop ha saltado cuando el precio se ha movido al Breakeven o al punto de equilibrio. No puedo solucionar este problema.

Quién sabe ayuda plz.

Aquí está el código:

int poz=OrdersTotal();
for (n=0;n<poz;n++){
            if (OrderSelect(n,SELECT_BY_POS,MODE_TRADES)==true){
            if (OrderType()==OP_BUY){
            Prise2=Bid-OrderOpenPrice();
            if(Prise2>(25*Point)){
            OrderModify(OrderTicket(),0,OrderOpenPrice(),OrderTakeProfit(),0,Blue);}
            if(Prise>Prise3){
            Prise3=(OrderOpenPrice()+(35*Point));
            SL2=OrderOpenPrice()+(10*Point);
            OrderModify(OrderTicket(),0,SL2,OrderTakeProfit(),0,Blue);}}
 
Vodya:

Estoy escribiendo un EA con la transferencia de más paradas a Breakeven y el aumento de Breakeven. Todo parece funcionar, pero sólo hay un problema. El stop ha saltado cuando el precio se ha movido al Breakeven o al punto de equilibrio. No puedo solucionar este problema.

Quién sabe ayuda plz.

Aquí está el código:

¿Tal vez sean los soportes?
 
alex12:
¿Tal vez sean los soportes?

¿Cuáles? Si es después de para entonces no es la parte completa. Acabo de mostrar el código para comprar, pero también hay un código para vender.
 

ayuda por favor, la orden debe cerrar a 4 veces la distancia de alta a orderopenprice

¿En qué me he equivocado?

todas las órdenes se cierran dentro de los 3 pips de la apertura

OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
if ((High[0]-OrderOpenPrice())*4<OrderOpenPrice()-Bid&&OrderType()==OP_BUY&&OrdersTotal()>0)
 {
 OrderClose(OrderTicket(),OrderLots(),Bid,3);
 }
 
LazarevDenis:

ayuda por favor, la orden debe cerrar a 4 veces la distancia de alta a orderopenprice

¿En qué me he equivocado?

aquí
(High[0]-OrderOpenPrice())*4<OrderOpenPrice()-Bid
 
sergeev:
aquí


Capitán Obviedad... ¿y puede alguien darme una pista?
Razón de la queja: