Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 271

 
Alexey Viktorov:

И ещё мысль такая появилась.

Если нужна первая пятница, то число должно быть меньше 8. Если первое число месяца пятница, то в следующую пятницу будет уже восьмое. Соответственно можно с лёгкостью пересчитать на любой день недели и любой по счёту день, второй, третий...


//+------------------------------------------------------------------+
//| 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:

У меня нет желания вспоминать старые функции mql4. Вот второй рабочий вариант скрипта

/********************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:

У меня нет желания вспоминать старые функции mql4. Вот второй рабочий вариант скрипта


Интересно, а как узнать, какая сегодня неделя по счету?

 

Вообщем ясно ..Все по классике жанра .Стоит задать вопрос чуть выше среднего итог всегда один и тот же и на том спасибо ..

 
Aleksey Vyazmikin:

Интересно, а как узнать, какая сегодня неделя по счету?

Сегодняшнее число раздели на 7 и округли до большего, независимо от остатка.

В прошлую пятницу было 11 делим на 7 получаем 1неделя+4дня значит вторая неделя. Во вторник будет 15 делим на 7 получаем 2недели+1 день значит третья неделя. Правильно?

Можно обойтись без округления. Если остаток от деления больше нуля, значит полученное число полных недель плюс 1. Правильно?

 
Alexey Viktorov:

Сегодняшнее число раздели на 7 и округли до большего, независимо от остатка.

В прошлую пятницу было 11 делим на 7 получаем 1неделя+4дня значит вторая неделя. Во вторник будет 15 делим на 7 получаем 2недели+1 день значит третья неделя. Правильно?

Можно обойтись без округления. Если остаток от деления больше нуля, значит полученное число полных недель плюс 1. Правильно?


Тут вроде не кружок математики или я не туда пишу?

 
Darirunu:

Вообщем ясно ..Все по классике жанра .Стоит задать вопрос чуть выше среднего итог всегда один и тот же и на том спасибо ..

при чём здесь классика жанра? Какие обиды? В твоём коде для меня непонятная логика, зачем мне в ней пытаться разобраться? Был вопрос

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам

Darirunu, 2017.08.12 16:00

Добрый день ..

Как написать в четверке условие:если первая пятница месяца была бычьей ,а

второй понедельник медвежий то  открываем сделку на продажу .

Я показал как определить первую пятницу. От какого дня тебе надо считать это уже сам разбирайся.

Вот скажи пожалуйста: зачем при определении дня недели ещё и минуты ставишь в проверку? Потом часы проверяешь. На мой взгляд, логичней определить день недели, затем внутри выполненного условия проверять час, минуты,(если нужны) тут-же проверяешь бычья или медвежья и принимаешь решение куда открываться.

Может лучше тебе подтягиваться на уровень выше в программировании, а не мне возвращаться к mql3?

 
Darirunu:

Тут вроде не кружок математики или я не туда пишу?

Здравствуй... А как может быть программист без знания математики выше среднего уровня??? Заметь, я не говорю о высшей математике.

 
Alexey Viktorov:

Здравствуй... А как может быть программист без знания математики выше среднего уровня??? Заметь, я не говорю о высшей математике.


Ну тогда добавьте ,что не плохо разбираться в тригонометрии и чертежном деле .Да и чуток философии бы не забыть ..

 
Alexey Viktorov:

Сегодняшнее число раздели на 7 и округли до большего, независимо от остатка.

В прошлую пятницу было 11 делим на 7 получаем 1неделя+4дня значит вторая неделя. Во вторник будет 15 делим на 7 получаем 2недели+1 день значит третья неделя. Правильно?

Можно обойтись без округления. Если остаток от деления больше нуля, значит полученное число полных недель плюс 1. Правильно?


Вот Вами предложенным метод пытаюсь воспроизвести - где я ошибаюсь?

1 Неделя2 Неделя3 Неделя4 Неделя5 Неделя1 Неделя2 Неделя3 Неделя4 Неделя5 Неделя
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
Причина обращения: