Скачать MetaTrader 5

задача: соединить Close ТОЛЬКО БЫЧЬИХ баров. Как это сделать???

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Опубликуй статью. Получи вознаграждение!
Vitaliy Hudyakov
399
Vitaliy Hudyakov 2012.03.07 21:58 

Уже 4 часа бьюсь над задачей соединить Close ТОЛЬКО БЫЧЬИХ баров. Как это сделать???

В виде линии на самом ценовом графике индикатор должен отрисовать линию, соединияющую цены Close у БЫЧЬИХ баров.

Все перепробовал, но каждый раз выходит не то что нужно.

PLS HELP!!!

Алексей Тарабанов
7189
Алексей Тарабанов 2012.03.07 22:03  
4 часа? Тогда-вот: https://forum.mql4.com/ru/42300
Актер
2301
Актер 2012.03.07 22:07  
vit-fx:

Уже 4 часа бьюсь над задачей соединить Close ТОЛЬКО БЫЧЬИХ баров. Как это сделать???

В виде линии на самом ценовом графике индикатор должен отрисовать линию, соединияющую цены Close у БЫЧЬИХ баров.

Все перепробовал, но каждый раз выходит не то что нужно.

PLS HELP!!!

Попробуйте сделать гениально. Возьмите код встроенной машки и добавьте туда исключение медвежьих свечей.

Затем набросьте на график с перидом 1 и по ценам Close и... наслаждайтесь результатом.

Vitaliy Hudyakov
399
Vitaliy Hudyakov 2012.03.07 22:12  
tara:
4 часа? Тогда-вот: https://forum.mql4.com/ru/42300


и что здесь должно было быть? ответа на мой вопрос там не нашел.
Vitalie Postolache
12115
Vitalie Postolache 2012.03.07 22:16  
vit-fx:


и что здесь должно было быть? ответа на мой вопрос там не нашел.

Толстый намёк что место этому вопросу в той ветке по всей видимости :)
Vitalie Postolache
12115
Vitalie Postolache 2012.03.07 22:18  

Бычий это или медвежий бар можно определить только после закрытия, значит такой индикатор будет отрисовываться с задержкой на 1 бар. Какой в этом смысл?

Можно посмотреть на результат четырехчасовых "мучений"?

Я лично вижу такой вариант:

for(int i=1; i<=limit; i++) 
if(Open[i]<Close[i]) ExtBuffer[i]=Close[i];
Vitaliy Hudyakov
399
Vitaliy Hudyakov 2012.03.07 22:20  
OnGoing:

Попробуйте сделать гениально. Возьмите код встроенной машки и добавьте туда исключение медвежьих свечей.

Затем набросьте на график с перидом 1 и по ценам Close и... наслаждайтесь результатом.

      if (Open[i] < Close[i]) out_0[i] = Close[i];

можно и так, только будет так же, как предлагаете Вы:

Close подряд идущих бычьих баров будут соединены линией, а если между ними появляется медвежий - сразу разрыв линии.

как избежать этого разрыва?

Vitalie Postolache
12115
Vitalie Postolache 2012.03.07 22:27  
vit-fx:

можно и так, только будет так же, как предлагаете Вы:

Close подряд идущих бычьих баров будут соединены линией, а если между ними появляется медвежий - сразу разрыв линии.

как избежать этого разрыва?


А что вы хотели вместо разрыва? Появиться могут и 10 медвежьих баров, тренд поменялся, тогда как? И что конкретно должно получиться в итоге?
Vitaliy Hudyakov
399
Vitaliy Hudyakov 2012.03.07 22:29  
суть ошибки
Sceptic Philozoff
Модератор
17844
Sceptic Philozoff 2012.03.07 22:30  
int init()
{
   return(0);
}


int deinit()
{
   ObjectsDeleteAll( );
   return(0);
}


int start()
{
   int prevSh = Bars - 1;
   for( int sh = Bars - 1; sh > 0; sh -- )
   {
      datetime timePrev = Time[ prevSh ];
      double pricePrev = Close[ prevSh ];
      
      if( Close[ sh ] > Open[ sh ] )
      {
         string nm = "" + prevSh + ":" + sh;
         datetime timeNow = Time[ sh ];
         double priceNow = Close[ sh ];
         ObjectCreate( nm, OBJ_TREND, 0, timePrev, pricePrev, timeNow, priceNow );
         ObjectSet( nm, OBJPROP_RAY, false );
         ObjectSet( nm, OBJPROP_COLOR, Black );
                 
         prevSh = sh;
      }
   }
   return(0);
}//+------------------------------------------------------------------+

Оптимизацию по скорости расчетов сделаете сами. Это только набросок.

Нулевой бар не обрабатывается.

Первый "бычий" в истории - всегда самый ранний, с номером Bars - 1. Но это, думаю, вам не сильно помешает.

Да, еще: это советник!

Vitaliy Hudyakov
399
Vitaliy Hudyakov 2012.03.07 22:34  
а вот что должно быть
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий