Funciones útiles de KimIV - página 6

 
Lukyanov:
Podría ser útil. :-)
No te preocupes si lo pones por ahí :-) :-)
 
Hola
¿Me puedes decir si hay alguna "oficina" que proporcione su propio servidor para probar EAs. Es decir, subo mi EA a su servidor, donde se prueba en modo "on line" en una cuenta demo.
 
KimIV:

¡Atención! En mi post del 12.03.2008 07:24 he cambiado el archivo adjunto SetOrder.mq4

He probado tu código, pero no ha funcionado (quizás mis manos están mal :( ... ). Al compilar muestra un montón de errores.
Mensaje" - la función no está definida - ¿qué es?
'break' - 'break' o 'continue' utilizados sólo dentro de algún ciclo - ¿qué pasa con los bucles?
'GetNameTF' - la función no está definida - ¿cómo definirla?
...etc. :(
Todavía no puedo entenderlo. Por favor, ayúdame, si no tienes problemas.

 
sasa999 писал (а):
Mensaje" - la función no está definida - ¿qué es?
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Вывод сообщения в коммент и в журнал                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    m - текст сообщения                                                     |
//+----------------------------------------------------------------------------+
void Message(string m) {
  Comment(m);
  if (StringLen(m)>0) Print(m);
} 
sasa999 escribió:
'break' - 'break' o 'continue' se usa dentro de algunos bucles solamente - ¿qué pasa con los bucles?

Ignora la pausa por ahora. Primero hay que ordenar las descripciones de las funciones.

sasa999 escribió:
'GetNameTF' - la función no está definida - ¿cómo definirla?
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Возвращает наименование таймфрейма                             |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    TimeFrame - таймфрейм (количество секунд)      (0 - текущий ТФ)         |
//+----------------------------------------------------------------------------+
string GetNameTF(int TimeFrame=0) {
  if (TimeFrame==0) TimeFrame=Period();
  switch (TimeFrame) {
    case PERIOD_M1:  return("M1");
    case PERIOD_M5:  return("M5");
    case PERIOD_M15: return("M15");
    case PERIOD_M30: return("M30");
    case PERIOD_H1:  return("H1");
    case PERIOD_H4:  return("H4");
    case PERIOD_D1:  return("Daily");
    case PERIOD_W1:  return("Weekly");
    case PERIOD_MN1: return("Monthly");
    default:         return("UnknownPeriod");
  }
}

Busca la función ExistOrders en este hilo. Ya lo he publicado. ErrorDescription se introduce con la directiva del compilador:

#include <stdlib.mqh>

Bien, todavía existe la función GetNameOP:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Возвращает наименование торговой операции                      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    op - идентификатор торговой операции                                    |
//+----------------------------------------------------------------------------+
string GetNameOP(int op) {
  switch (op) {
    case OP_BUY      : return("Buy");
    case OP_SELL     : return("Sell");
    case OP_BUYLIMIT : return("Buy Limit");
    case OP_SELLLIMIT: return("Sell Limit");
    case OP_BUYSTOP  : return("Buy Stop");
    case OP_SELLSTOP : return("Sell Stop");
    default          : return("Unknown Operation");
  }
}
 
KimIV:
sasa999 escribió (a):
'Mensaje' - la función no está definida - ¿qué es?
sasa999 escribió (a):
'break' - 'break' o 'continue' se usan sólo dentro de algún ciclo - ¿qué tienen de malo los ciclos?

Ignora el "descanso " por ahora. Primero hay que ordenar las descripciones de las funciones.

sasa999 escribió:
'GetNameTF' - la función no está definida - ¿cómo definirla?

Busca la función ExistOrders en este hilo. Ya lo he publicado. ErrorDescription se introduce con la directiva del compilador:

#include <stdlib.mqh>

Bien, aún queda la función GetNameOP:


Siento que debería poner las bibliotecas (las dos) y hacer algo de divulgación. Las bibliotecas no serán rechazadas.
 
Gracias - muy útil, pero hay otros problemas de nuevo... :(
ahora todas estas funciones muestran - La función "ххххххххх" no está referenciada y será eliminada del exp-file
tal vez las puse en el lugar equivocado... :( Espero que pueda ayudar.
..es difícil para un principiante en MQL4 :)
 
Vinin:
Siento que tengo que poner las bibliotecas (las dos) y hacer un trabajo explicativo. No abandonaré las bibliotecas.

Probablemente lo publique... pero no antes de haber revisado todas las características... si no, ¿para qué estoy aquí? Ponerlo en codebase, la gente lo descargaría y se olvidaría de él. Yo también soy así :-) Tengo un montón de código de otras personas por ahí sin tocar. Y cuando tienes la oportunidad de indagar, de hacer preguntas, es otra cosa.

SZY. Mis archivos con el prefijo test_ compilan y funcionan bien.

 
sasa999:
Gracias - muy útil, pero otros problemas de nuevo... :(
ahora todas estas funciones muestran - La función "xxxxxxxxxx" no está referenciada y será eliminada de exp-file
Tal vez los puse en el lugar equivocado... :( Espero que pueda ayudar.
...estoy teniendo dificultades con MQL4 :)
Mira cómo todo se junta en test_SetOrder.mq4
 



Si he entendido bien, sustituir OrderSend por OrderModify

puede utilizarse al modificar una orden?
así como al cerrar... ??

...pero ¿cómo podemos combinar estas funciones en una sola?

también...

if (mn<0 || OrderMagicNumber()==mn)

¿por qué mn<0? ¿no puede ser Magic negativo?

 
sasa999 писал (а):
si entiendo bien, al sustituir OrderSend por OrderModify

¿puede utilizarse para modificar una orden?
...así como para cerrar... ??

pero ¿cómo combinar esto en una función para que no se repita?

Más adelante habrá una función para modificar

sasa999 escribió (a):
más...
if (mn<0 || OrderMagicNumber()==mn)
¿por qué mn<0? ¿no puede ser Magic negativo?
puede... Pero en mis EAs, sólo utilizo Magic positivo en formato AAAAMMDD, por ejemplo, 20080323. Esta es la fecha en la que se desarrolló la EA.
Razón de la queja: