Скачать MetaTrader 5

Как грамотно заставить советник подождать до закрытия 5ти минутного бара и начать работу с первым током нового?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Сервис Фриланс: безопасный способ заказать робота. Попробуй сам!
Reuven
352
Reuven 2014.11.25 22:44 
Artyom Trishkin
Модератор
75601
Artyom Trishkin 2014.11.26 03:47  
В течении заданного времени текущего бара ничё не делать до открытия нового бара.
Reuven
352
Reuven 2014.11.26 03:50  
А по ЭмКюЭлевски?
Artyom Trishkin
Модератор
75601
Artyom Trishkin 2014.11.26 04:18  
reuvenb:
А по ЭмКюЭлевски?
А попытаться разобраться? У вас перед глазами - кладезь информации ;)
khorosh
8197
khorosh 2014.11.26 04:39  

Будьте осторожны!!!

Убивает ток (людей с кардиостимуляторами и т.п.- не только ток). Любой ощутимый ток проходящий через Вас в течение достаточно длительного времени убьет Вас. Поэтому сперва приведем примерные времена допустимого воздействия электрического тока в зависимости от напряжения на человека (по ГОСТ 12.1.038-82 ССБТ «Предельно допустимые величины напряжений и токов. Электробезопасность»):

Допустимое время действия, сек
длительно
До 30
1
0,5
0,2
0,1
Величина тока, мА.
1
6
50
100
250
500
Величина напряжения, В.
6
36
50
100
250
500

Теперь небольшие пояснения:

  • ощутимый ток - ток, вызывающий при прохождении через организм ощутимые раздражения
  • неотпускающий ток - ток, вызывающий при прохождении через человека непреодолимые судорожные сокращения мышц руки, в которой зажат проводник (самому разжать руки невозможно)
  • фибрилляционный ток - ток, вызывающий при прохождении через организм фибрилляцию сердца (мышцы сокращаются разрозненно и нескоординированно, вследствие чего сердце теряет способность совершать согласованные сокращения.)))
Alexey Viktorov
6741
Alexey Viktorov 2014.11.26 05:35  

Что с вами случилось? Что-то участились случаи флуда вместо помощи...

void OnTick()
{
   if(NewBar())
    {
     // здесь выполняются действия на новом баре
    }
}/*******************************************************************/

bool NewBar()
{
   static datetime lastbar = 0;
   datetime curbar = Time[0];
   if(lastbar != curbar)
    {
     lastbar = curbar;
     return (true);
    }
   else return(false);
}/*******************************************************************/


Такой вариант работает только на текущем ТФ. Чтобы на любом ТФ можно было отследить новый бар нужного ТФ надо Time[0] заменить на iTime() с указанием периода

Reuven
352
Reuven 2014.11.26 07:57  
Лучше подскажите как мне отказаться на таблетки от его дурацких подсказок...
Vyacheslav Barbakov
269
Vyacheslav Barbakov 2014.11.26 15:49  
bool candle_begin()
{
  static int  diff_prev = 0;
         bool rc        = false;
         int  diff      = TimeCurrent() - iTime(NULL, NULL, 0);
  if(diff < diff_prev)
  {
    rc = true;
    diff_prev = 0;
    Print("Начало новой свечи");
    Print("Спрэд: ", NormalizeDouble((Ask-Bid)/Point,0));
  }
  else
  {
    diff_prev = diff;
    rc = false;
  }
  return(rc);
}
Reuven
352
Reuven 2014.11.26 16:25  
Вопрос : будет ли это работать после deinit?
Vitalie Postolache
12115
Vitalie Postolache 2014.11.26 17:11  
после деинита ничего не работает, советник выгрузится )))
Reuven
352
Reuven 2014.11.26 17:59  
И что, я не смогу снова сделать start()? И считывать тики и время?
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий