Errores, fallos, preguntas - página 39

 
Lo he reproducido en otra hoja copiando, voy a hacer una petición al servicio técnico.
Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
alexvd:

¿Recuerdas exactamente dónde se estableció DebugBreak()?

Todavía no hay manera de replicarlo.

Hizo una solicitud en servicedesk #18435

He puesto DebugBreaks antes de todos los bucles.

 
Urain:

Hizo una solicitud en servicedesk #18435

Zy DebugBreaks puesto antes de todos los ciclos.

Sí, gracias.

Ya lo hice de nuevo.

 
alexvd:

Sí, gracias.

Ya lo hice de nuevo.

Más tarde añadí dos versiones compiladas más, una que funciona y otra rota, por alguna razón su peso difiere en casi dos veces.
 
ddd06:

Me gustaría saber el destino de la solicitud#18261 parauna llamada a un indicador desde un EA (el valor no coincide con el indicador).

Sería bueno que respondieran de alguna manera...

Compruebe de nuevo su servicio de atención al cliente, por favor, el problema se ha resuelto
 

Tengo una pregunta sobre la muestra MACD.

Configuré un Asesor Experto con SL 50 y TP200 en la demo de Alpari.

Abrí una posición en GBPUSD y después de algún tiempo el Asesor Experto modificó la posición e introdujo en el registro los siguientes datos

> 2010.07.08 20:01:46 Operaciones '3037120' : falló la modificación de la venta de 0.10 GBPUSD sl: 1.51740, tp: 1.49868 -> sl: 1.51740, tp: 1.49868 [Paradas inválidas]

La pregunta es por qué SL se convirtió en discapacitado. La posición parece haber sido modificada (o al menos se trasladó a BU antes)...

Al mismo tiempo, el probador de la estrategia no juró en absoluto...

PS

Se adjunta archivo con la configuración del indicador...

 

Existe una matriz bidimensional maVal[a][b] . Cómo copiar los valores de muVal a [b] ya que necesito recorrer el array por [a] y comparar los valores de [b]

CopyBuffer(maHandle,0,0,3,maVal); No es adecuado. Es un código engorroso.

   bool Buy_Condition_1=((ma1Val[2]<ma1Val[1]) && (ma1Val[1]<ma1Val[0])||
                         (ma2Val[2]<ma2Val[1]) && (ma2Val[1]<ma2Val[0])||
                         (ma3Val[2]<ma3Val[1]) && (ma3Val[1]<ma3Val[0])||
                         (ma4Val[2]<ma4Val[1]) && (ma4Val[1]<ma4Val[0])||
                         (ma5Val[2]<ma5Val[1]) && (ma5Val[1]<ma5Val[0])); // MA растет
 
Interesting:

sl: 1.51740, tp: 1.49868 -> sl: 1.51740, tp: 1.49868 [Paradas no válidas]

La pregunta es por qué SL se convirtió en discapacitado. Parece que esa posición se modificó (al menos se trasladó a BU antes)...

Mi diario también frunce el ceño si la modificación de la orden no cambia ni la SL ni la TP.
 

Escribimos un sencillo guión:

void OnStart(){
  Alert("-----------------------------------");
  Alert("Period() = ",Period()," минут");
  Alert("------------ ",Symbol()," ------------");
}

Lo lanzamos secuencialmente en diferentes marcos temporales del mismo instrumento de negociación, empezando por M1 y subiendo. Resultado: En el marco temporal de M1 a M30 el periodo es correcto:

Pero en el marco temporal H1 se lanza un número absolutamente fantástico.

Lo más interesante es que el timeframe H2, (así como el posterior horario) no está muy lejos del timeframe H1.


En H1 el periodo = 16386 , en H2 = 16387, en H3 = 16388 y así sucesivamente - los números se diferencian por el último dígito.

No me interesa el método para sortear este fallo, sino arreglar el fallo en sí. Quiero que se elimine del todo.

 
drknn:

Escribimos un sencillo guión:

Lo lanzamos secuencialmente en diferentes marcos temporales del mismo instrumento de negociación, empezando por M1 y subiendo. Resultado: En el marco temporal de M1 a M30 el periodo es correcto:

Pero en el marco temporal H1 se lanza un número absolutamente fantástico.

Lo más interesante es que el marco temporal H2 (así como los siguientes marcos temporales horarios) no está muy lejos del marco temporal H1.


En H1 el periodo = 16386 , en H2 = 16387, en H3 = 16388 y así sucesivamente - los números se diferencian por el último dígito.

No me interesa el método para sortear este fallo, sino solucionar el fallo en sí. Así que no estaba allí en absoluto.

> No estoy interesado en una forma de evitar este fallo, sino en arreglar el propio fallo. No quiero que esté ahí en absoluto.

No creas que estoy siendo maleducado o prepotente, sino señalando que este bicho que acabas de matar...

Sobre la esencia de la pregunta (sugerencias):

Esto no es MQL4, y Period() no representa el número de segundos/minutos en TF.

Para obtener el número de segundos en un período, debe utilizar la función PeriodSeconds.


Y si se intenta expresar Period como un número, entonces se obtendrá el valor numérico correspondiente al identificador del periodo en la enumeración ENUM_TIMEFRAMES.


PS

Cuando necesito traducir Period en formato MQL4, utilizo esta función:

//Fumction PeriodToMinute
int PeriodToMinute(ENUM_TIMEFRAMES Value)
//Возвращает число секунд в периоде
{
//----------------------------------------------------------------------------//
//Служебные переменные
int Result;
//----------------------------------------------------------------------------//
Result = PeriodSeconds(Value)/60;
//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}

Y para evitar preguntas innecesarias sobre la "periodización", aquí hay dos funciones más: MinuteToPeriod y PeriodToStr.

//Fumction MinuteToPeriod
ENUM_TIMEFRAMES MinuteToPeriod(int Value)
//Преобразовывает число сикунд в период, возвращаемый как ENUM_TIMEFRAMES
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
ENUM_TIMEFRAMES Result;
//----------------------------------------------------------------------------//
  switch(Value)
  {
  //Перирд текущещего графика
  case   0: return(PERIOD_CURRENT); break;
  //Минуты
  case   1: return(PERIOD_M1);  break;   //1 минута
  case   2: return(PERIOD_M2);  break;   //2 минуты
  case   3: return(PERIOD_M3);  break;   //3 минуты
  case   4: return(PERIOD_M4);  break;   //4 минуты
  case   5: return(PERIOD_M5);  break;   //5 минуты
  case   6: return(PERIOD_M6);  break;   //6 минуты
  case  10: return(PERIOD_M10); break;   //10 минуты
  case  12: return(PERIOD_M12); break;   //12 минуты
  case  15: return(PERIOD_M15); break;   //15 минуты
  case  20: return(PERIOD_M20); break;   //20 минуты
  case  30: return(PERIOD_M30); break;   //30 минуты
  //Часы
  case  60: return(PERIOD_H1); break;    //60 минут  - 1 час
  case 120: return(PERIOD_H2); break;    //120 минут - 2 часа  
  case 180: return(PERIOD_H3); break;    //180 минут - 3 часа
  case 240: return(PERIOD_H4); break;    //240 минут - 4 часа
  case 360: return(PERIOD_H6); break;    //360 минут - 6 часов
  case 480: return(PERIOD_H8); break;    //480 минут - 8 часов
  case 720: return(PERIOD_H12); break;   //720 минут - 12 часов
  //Старшие ТФ
  case 1440: return(PERIOD_D1); break;   //1 день
  case 10080: return(PERIOD_W1); break;  //1 неделя 
  case 43200: return(PERIOD_MN1); break; //1 месяц 
  //Default
  default: return(PERIOD_CURRENT);
  }
//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}
//Function PeriodToStr
string PeriodToStr(ENUM_TIMEFRAMES Value)
//Функция возвращает тексовое представление ТФ (периода)
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
string Result; //Возвращаемое значение
//----------------------------------------------------------------------------//

  switch(Value)
  {
  //Минуты
  case PERIOD_M1:  Result = "M1";  break; //1 минута
  case PERIOD_M2:  Result = "M2";  break; //2 минуты
  case PERIOD_M3:  Result = "M3";  break; //3 минуты  
  case PERIOD_M4:  Result = "M4";  break; //4 минуты    
  case PERIOD_M5:  Result = "M5";  break; //5 минут
  case PERIOD_M6:  Result = "M6";  break; //6 минут
  case PERIOD_M10: Result = "M10"; break; //10 минут
  case PERIOD_M12: Result = "M12"; break; //12 минут
  case PERIOD_M15: Result = "M15"; break; //15 минут
  case PERIOD_M20: Result = "M20"; break; //20 минут
  case PERIOD_M30: Result = "M30"; break; //30 минут
  //Часы
  case PERIOD_H1:  Result = "H1";  break; //60 минут   - 1 час
  case PERIOD_H2:  Result = "H2";  break; //120 минут  - 2 часа
  case PERIOD_H3:  Result = "H3";  break; //180 минут  - 3 часа
  case PERIOD_H4:  Result = "H4";  break; //240 минут  - 4 часа
  case PERIOD_H6:  Result = "H6";  break; //360 минут  - 6 часов  
  case PERIOD_H8:  Result = "H8";  break; //480 минут  - 8 часов
  case PERIOD_H12: Result = "H12"; break; //720 минут  - 12 часов
  //Старшие ТФ
  case PERIOD_D1:  Result = "Day";   break; //День
  case PERIOD_W1:  Result = "Week";  break; //Неделя
  case PERIOD_MN1: Result = "Month"; break; //Месяц
  //Unknown
  default: Result = "Unknown";
  break;
  }
//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}