Funciones útiles de KimIV - página 81

 
KimIV >> :

En la página 76...

Gracias

 

La función isTradeTimeInt().

Esta función devuelve una bandera para permitir la negociación temporizada. El valor devuelto es verdadero o falso. La función isTradeTimeInt() es similar a la función isTradeTimeString() por el principio de reconocimiento del intervalo de tiempo, es decir, la hora de inicio de la operación puede ser tanto mayor (intervalo de tiempo dentro de un día) como menor (intervalo de tiempo en diferentes días). La función isTradeTimeInt() acepta los siguientes parámetros opcionales:

  • hb - Número, especifica la hora de inicio de la operación. El valor por defecto es 0.
  • mb - Un número, especifica los minutos de inicio de la operación. Valor por defecto - 0.
  • he - Un número para especificar las horas de finalización del comercio. El valor por defecto es 0.
  • me - Un número para especificar los minutos de finalización de la operación. Valor por defecto - 0.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.04.2009                                                     |
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    hb - часы времени начала торговли                                       |
//|    mb - минуты времени начала торговли                                     |
//|    he - часы времени окончания торговли                                    |
//|    me - минуты времени окончания торговли                                  |
//+----------------------------------------------------------------------------+
bool isTradeTimeInt(int hb=0, int mb=0, int he=0, int me=0) {
  datetime db, de;           // Время начала и окончания работы
  int      hc;               // Часы текущего времени торгового сервера

  db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+ hb+":"+ mb);
  de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+ he+":"+ me);
  hc=TimeHour(TimeCurrent());
  if ( db>= de) {
    if ( hc>= he) de+=24*60*60; else db-=24*60*60;
  }

  if (TimeCurrent()>= db && TimeCurrent()<= de) return( True);
  else return( False);
}
 

Ejemplos de cómo utilizar isTradeTimeInt().

  1. Periodo de tiempo dentro de un día. Hora actual del servidor de comercio dentro de un período y que sea "08:30".
    if (isTradeTimeInt(6, 0, 9, 30)) Message("Торгуем...");
    else Message("Отдыхаем...");
  2. Plazo de tiempo dentro del día. Hora actual del servidor comercial fuera del segmento y que sea igual a "08:30".
    if (isTradeTimeInt(12, 0, 16, 30)) Message("Торгуем...");
    else Message("Отдыхаем...");
  3. La franja horaria incluye el límite del día. Hora actual del servidor de comercio dentro del segmento y que sea igual a "08:30".
    if (isTradeTimeInt(21, 15, 9, 30)) Message("Торгуем...");
    else Message("Отдыхаем...");
  4. La franja horaria incluye el límite del día. Hora actual del servidor de comercio fuera del segmento y que sea "08:30".
    if (isTradeTimeInt(22, 0, 5, 30)) Message("Торгуем...");
    else Message("Отдыхаем...");

SZY. Se adjunta un script para probar la función isTradeTimeInt().

Archivos adjuntos:
 

Lista actualizada de características con breves descripciones y enlaces...

Archivos adjuntos:
f_kimiv.rar  12 kb
 
KimIV >> :

La función isCloseLastPosByStop().

Esta función devuelve una bandera para cerrar la última posición por parada. La bandera está levantada - Verdadero - El StopLoss se ha activado. Bandera bajada - Falso - la posición ha sido cerrada por otra razón. La selección más precisa de las posiciones a tener en cuenta se establece mediante parámetros externos:


Hola

Tratando de utilizar su función para mis propios fines. Pequeño asesor experto de trabajo. Sólo vende y cierra, una posición. A veces atrapa varios stoplosses seguidos. Quiero cambiar las condiciones de venta después del primer stop, el Asesor Experto abre posiciones, pero no las cierra. Por favor, dígame qué estoy haciendo mal .

..........................................................

if ( isCloseLastPosByStop(NULL,OP_SELL, MagicNamber) == 0)
{
if ( (StochK_0<StochD_1) && (StochD_1 > 80) ) // 1º Vender lentamente
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green); // vender

OrderSelect(0, SELECT_BY_POS);

if (OrderSelect(0, SELECT_BY_POS)==true )
Print("SELECT_BY_POS");
si no
Print("error de selección : ",GetLastError());
RefreshRates();
if((StochK_0<30)&& (StochD_1 < 30))
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);
}
si no
if ( isCloseLastPosByStop(NULL,OP_SELL, MagicNamber) == 1)
{
if ((StochK_0<StochD_1) && (StochK_0 < 60) && (StochD_1 < 60) )

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, "My EXP", MagicNamber,0,Green); //

...........................

 
KoZaNOStra писал(а) >>
El experto abre posiciones, pero no las cierra.

Imprimir las variables StochK_0 y StochD_1. Tal vez tomen valores que no entran en sus condiciones de cierre.

 

a KimIV

Hola, ¿podría ayudar a convertir este indicador de clúster en una función con el mismo dibujo y + Valores de la tasa de cambio de par volver (esquina superior derecha) por el parámetro de entrada - Nombre del par. Se lo agradezco de antemano.

P.S..... Llevo una semana luchando

Archivos adjuntos:
cc_240.mq4  13 kb
 
¿hay alguna función para mostrar las noticias en la ventana abierta de un par de divisas?
 
¿Y cómo expresamos en el código que al comienzo de cualquier hora, en el primer segundo abrimos dos posiciones dirigidas de forma diferente, y en el último segundo de la hora cerramos la orden fallida?
 
VAM_ писал(а) >>
¿Y cómo expresamos en el código que al comienzo de cualquier hora, en el primer segundo abrimos dos posiciones dirigidas de forma diferente, y en el último segundo de la hora cerramos la orden fallida?

¿Y si no lo hay, en primer y último lugar?