Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 271

 
Alexey Viktorov:

Y luego está esta idea.

Si quiere el primer viernes, el número debe ser inferior a 8. Si el primer viernes del mes es viernes, el siguiente viernes será el octavo. En consecuencia, puede recalcular fácilmente cualquier día de la semana y cualquier día del mes, segundo, tercero...


//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start() {
  int bs=0;

  if (DayOfWeek()==5 && Minute()<5) {  Добавьте сюда пожалуйста 
    bs=GetSignal();
    if (Hour()==lHourOpenPos && bs>0) OpenPosition();
    if (Hour()==sHourOpenPos && bs<0) OpenPosition();
  }

  if (bLastBuy) {
    if (DayOfWeek()==lDayForClose && Hour()>=lHourClosePos) CloseAllPositions();
    TrailingStop=lTrailingStop;
    if (lUseTrailing) TrailingPositions();
  } else {
    if (DayOfWeek()==sDayForClose && Hour()>=sHourClosePos) CloseAllPositions();
    TrailingStop=sTrailingStop;
    if (sUseTrailing) TrailingPositions();
  }
}
 
Darirunu:

No tengo ganas de recordar las antiguas funciones de mql4. Aquí está la segunda versión de trabajo de la secuencia de comandos

/********************Script program start function********************/
void OnStart()
{
 MqlDateTime mqlDateTime;
 datetime arrDateTime[1];
 CopyTime(_Symbol, PERIOD_D1, 1, 1, arrDateTime);
 TimeToStruct(arrDateTime[0], mqlDateTime);
 if(mqlDateTime.day_of_week == FRIDAY && mqlDateTime.day < 8)
  {
   Print("Ура!!! Вчера была первая пятница");
   
  }
}/********************************************************************/
 
Alexey Viktorov:

No tengo ganas de recordar las antiguas funciones de mql4. Aquí está la segunda versión de trabajo de la secuencia de comandos


Me pregunto cómo saber qué semana es.

 

Es todo un clásico. Una vez que se hace una pregunta ligeramente superior a la media, el resultado es siempre el mismo, pero gracias.

 
Aleksey Vyazmikin:

Me pregunto cómo se averigua el número de la semana actual.

Divide el número de hoy entre 7 y redondea al número más alto, sin tener en cuenta el resto.

El viernes pasado fue 11 dividido por 7, así que 1 semana + 4 días es la segunda semana. El número del martes fue 15 dividido por 7, por lo que fueron 2 semanas + 1 día, por lo que fue la tercera semana. ¿Verdad?

Podemos prescindir del redondeo. Si el resto de la división es mayor que cero, entonces tenemos la semana completa más 1. ¿Verdad?

 
Alexey Viktorov:

Divide el número de hoy entre 7 y redondea al número más alto, sin tener en cuenta el resto.

El viernes pasado fue 11 dividido por 7, así que 1 semana + 4 días es la segunda semana. El número del martes es 15 dividido por 7, por lo que son 2 semanas + 1 día, por lo que es la semana 3. ¿Verdad?

Puedes arreglártelas sin redondear. Si el resto de la división es mayor que cero, entonces el número resultante de semanas completas más 1. ¿Verdad?


¿No es una clase de matemáticas o estoy escribiendo en el lugar equivocado?

 
Darirunu:

En definitiva, es un clásico. Haces una pregunta ligeramente superior a la media, el resultado es siempre el mismo, pero gracias.

¿Qué tiene esto que ver con los clásicos? ¿Qué rencores? La lógica de tu código es incomprensible para mí, ¿por qué debería tratar de entenderla? La pregunta era.

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias.

Cualquier pregunta para los novatos en MQL4, ayuda y discusión sobre algoritmos y códigos

Darirunu, 2017.08.12 16:00

Por la tarde...

Cómo escribir la condición en el cuadrante:si el primer viernes del mes fue alcista, y

Elsegundo lunes es bajista abrimos una operación de venta.

Te mostré cómo determinar el primer viernes. El día que tengas que contar depende de ti.

Dígame, por favor: ¿por qué comprueba los minutos al definir el día de la semana? Entonces comprueba las horas. Creo que es más lógico determinar el día de la semana, luego dentro de la condición cumplida comprobar la hora, los minutos (si es necesario), luego se comprueba si es alcista o bajista y se decide dónde abrir.

¿Quizás sea mejor que te pongas a programar a un nivel más alto, en vez de volver a mql3?

 
Darirunu:

Esto no es una clase de matemáticas, ¿verdad? ¿O estoy escribiendo en el lugar equivocado?

Hola... ¿Cómo se puede ser programador sin tener conocimientos de matemáticas por encima de la media? Fíjate que no estoy hablando de matemáticas avanzadas.

 
Alexey Viktorov:

Hola... ¿Cómo se puede ser programador sin tener conocimientos de matemáticas por encima de la media? Fíjate que no estoy hablando de matemáticas superiores.


Luego añade que es bueno saber de trigonometría y de dibujo. Y un poco de filosofía.

 
Alexey Viktorov:

Divide el número de hoy entre 7 y redondea al número más alto, sin tener en cuenta el resto.

El viernes pasado fue 11 dividido por 7, así que 1 semana + 4 días es la segunda semana. El número del martes es 15 dividido por 7, por lo que son 2 semanas + 1 día, por lo que es la semana 3. ¿Verdad?

Se puede prescindir del redondeo. Si el resto de la división es mayor que cero, entonces el número resultante de semanas completas más 1. ¿Verdad?


Estoy intentando reproducir el método que sugieres, ¿en qué me equivoco?

1 semana2 semanas3 semanas4 semanas5 semanas1 semana2 semanas3 semanas4 semanas5 semanas
1 8 15 22 29 0 1 2 3 4
2 9 16 23 30 0 1 2 3 4
3 10 17 24 31 0 1 2 3 4
4 11 18 25 1 2 3 4
5 12 19 26 1 2 3 4
6 13 20 27 1 2 3 4
7 14 21 28 1 2 3 4
Razón de la queja: