Присоединяйтесь к нашему инвестиционному форуму, на котором уже 395,009 пользователей. Чтобы получить доступ ко многим закрытым разделам и начать общение -  .
Вход через:  
Важная информация
Стартовала бессрочная акция "Оплата за сообщения".
Уважаемый гость, стартовал новый этап конкурса "Путь к успеху" ($500) подробнее...
Открылся магазин MMGP
Ответить
 
Первый пост Опции темы
Сообщения прочитаны и/или просмотрены Сегодня, 21:05
Старый 11.11.2016, 10:51
#21
Мастер
 
Имя: Влад
Пол: Мужской
Возраст: 40
Инвестирую в: Свой бизнес
Регистрация: 10.04.2011
Сообщений: 2,116
Благодарностей: 1,804
КП: 0.584

награды Волшебный горшочек 
Re: Ищу индикатор размера свечи

Цитата:
Сообщение от Finansello Посмотреть сообщение
Владислав Сергее..., а можете изменить индикатор Bar Value так, чтобы он выдавал алерт сразу как только тело достигнет нужного размера, а не по закрытию? Или, если такой уже есть, дать ссылку.
Заранее спасибо
Здравствуйте. Давайте я лучше изменю код своего предыдущего примера (не люблю "потрошить" чужое). Это будет полезно, в том числе, и в качестве изучения MQL. Индикатор будет выдавать alert при достижении баром требуемого размера (в пунктах):
PHP код:
//+------------------------------------------------------------------+ 
//|                                 candle_size_for_Retrade_mmgp.mq4 | 
//|                                 Vlad Sergeev aka moneyinnetwork  | 
//+------------------------------------------------------------------+ 
#property copyright "Vlad Sergeev" 
#property version   "2.00" 
#property strict 
#property indicator_chart_window 

input int      TextSize 10//размер шрифта 
input string   FontName "Verdana"//наименование шрифта 
input color    TextColor clrWhite//цвет текста 
input int      PosX 0;  //координата текста по x 
input int      PosY 50//координата текста по у 
input int      Max_Bar 20//размер бара при котором выдается Alert

int OnInit() 

   return(
INIT_SUCCEEDED); 


void OnDeinit(const int reason

   if ( 
ObjectFind ("candlesizeXX") >=)   { 
             
ObjectDelete("candlesizeXX"); 
   } 


int OnCalculate(const int rates_total
                const 
int prev_calculated
                const 
datetime &time[], 
                const 
double &open[], 
                const 
double &high[], 
                const 
double &low[], 
                const 
double &close[], 
                const 
long &tick_volume[], 
                const 
long &volume[], 
                const 
int &spread[]) 

   
double bar_size = (high[0]-low[0]+Point)/Point;
   if ( 
ObjectFind ("candlesizeXX") >=)   { 
             
ObjectDelete("candlesizeXX"); 
      } 
      
ObjectCreate ("candlesizeXX"OBJ_LABEL000); 
      
ObjectSet ("candlesizeXX"OBJPROP_ANGLE0); 
      
ObjectSet("candlesizeXX"OBJPROP_CORNER0); 
      
ObjectSet("candlesizeXX"OBJPROP_BACKFALSE); 
      
ObjectSet("candlesizeXX"OBJPROP_XDISTANCEPosX); 
      
ObjectSet("candlesizeXX"OBJPROP_YDISTANCEPosY); 
      
ObjectSetText "candlesizeXX",  
                      
"Свеча: "+DoubleToStr(bar_size0),  
                      
TextSize,  
                      
FontName,  
                      
TextColor 
                     
); 
   if ( 
bar_size >= Max_Bar) {  //размер бара достиг заданного уровня? 
      
Alert("Размер бара достиг уровня "Max_Bar"пунктов!");   //выводим Alert
   
}
   return(
rates_total); 

__________________

На третий день Бог создал брокера, а Сатана подумал и создал еще одного.
Учись, ибо не умеющий написать индикатор и советника не напишет.
А пока вы учитесь, я вкладываю в водку! Ну, где еще можно получить 40%?
Владислав Сергеев вне форума  
Сказали спасибо:
Старый 18.11.2016, 00:19
#22
Мастер
 
Имя: Влад
Пол: Мужской
Возраст: 40
Инвестирую в: Свой бизнес
Регистрация: 10.04.2011
Сообщений: 2,116
Благодарностей: 1,804
КП: 0.584

награды Волшебный горшочек 
Re: Ищу индикатор размера свечи

Finansello, там в коде идет расчет не размера тела свечи, а полный размер свечи. Если требуется именно размер тела, то вот эту строку:
PHP код:
double bar_size = (high[0]-low[0]+Point)/Point
следует заменить вот таким вариантом:
PHP код:
double bar_size MathAbs(close[0]-open[0])/Point
А вообще вот улучшенный код, который выдает алерт для каждой новой свечи только 1 раз, а не на каждом ценовом тике, как ранее:
PHP код:
//+------------------------------------------------------------------+ 
//|                                              body_size_alert.mq4 | 
//|                                 Vlad Sergeev aka moneyinnetwork  | 
//+------------------------------------------------------------------+ 
#property copyright "Vlad Sergeev" 
#property link "http://moneyinnetwork.ru" 
#property version   "4.00" 
#property strict 
#property indicator_chart_window 

input int      TextSize 10//размер шрифта 
input string   FontName "Verdana"//наименование шрифта 
input color    TextColor clrWhite//цвет текста 
input int      PosX 0;  //координата текста по x 
input int      PosY 50//координата текста по у 
input int      Max_Bar 20//размер бара при котором выдается Alert
bool  no_alert;
datetime time_old;

int OnInit() 

   
no_alert false;
   
time_old 0;
   return(
INIT_SUCCEEDED); 


void OnDeinit(const int reason

   if ( 
ObjectFind ("candlesizeXX") >=)   { 
             
ObjectDelete("candlesizeXX"); 
   } 


int OnCalculate(const int rates_total
                const 
int prev_calculated
                const 
datetime &time[], 
                const 
double &open[], 
                const 
double &high[], 
                const 
double &low[], 
                const 
double &close[], 
                const 
long &tick_volume[], 
                const 
long &volume[], 
                const 
int &spread[]) 

   
double bar_size MathAbs(close[0]-open[0])/Point;
   if ( 
ObjectFind ("candlesizeXX") >=)   { 
             
ObjectDelete("candlesizeXX"); 
      } 
      
ObjectCreate ("candlesizeXX"OBJ_LABEL000); 
      
ObjectSet ("candlesizeXX"OBJPROP_ANGLE0); 
      
ObjectSet("candlesizeXX"OBJPROP_CORNER0); 
      
ObjectSet("candlesizeXX"OBJPROP_BACKFALSE); 
      
ObjectSet("candlesizeXX"OBJPROP_XDISTANCEPosX); 
      
ObjectSet("candlesizeXX"OBJPROP_YDISTANCEPosY); 
      
ObjectSetText "candlesizeXX",  
                      
"Размер тела текущей свечи: "+DoubleToStr(bar_size0)+" пунктов",  
                      
TextSize,  
                      
FontName,  
                      
TextColor 
                     
); 
   if ( 
time_old != time[0] )  {
      
no_alert false;
      
time_old time[0];
   }
   if ( 
bar_size Max_Bar && !no_alert ) {
      
Alert("Размер тела свечи превысил заданный уровень в "Max_Bar" пунктов!");   
      
no_alert true;
   }
   return(
rates_total); 

__________________

На третий день Бог создал брокера, а Сатана подумал и создал еще одного.
Учись, ибо не умеющий написать индикатор и советника не напишет.
А пока вы учитесь, я вкладываю в водку! Ну, где еще можно получить 40%?
Владислав Сергеев вне форума  
Ответить
Войдите, чтобы оставить комментарий.
Сообщения прочитаны и/или просмотрены Сегодня, 21:05
Опции темы

Быстрый переход
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
INWIQU.com - страховка, до 40% от размера вклада! st1xer Архив: Реферальные и страховые предложения 19 22.09.2014 04:53
Японские свечи Kreol Литература Forex 14 16.04.2010 22:54
волно-свечи Kreol Торговые стратегии 4 15.01.2010 18:45


Случайные темы
Аватар ГераЯ
Дивергенция на форекс
От ГераЯ в разделе «Forex: форум для начинающих»
Аватар Monitorer
115profit-5hours.com - рефбек 100%
От Monitorer в разделе «Архив: Реферальные и страховые предложения»
Аватар Angelika78
Армения: Страховая компания «Госстрах-Армения»
От Angelika78 в разделе «Страховые компании»
Аватар chu
В США стартуют продажи российского смартфона YotaPhone 2
От chu в разделе «Новости технологий и интернета»
Аватар VictorSamus
Яндекс.Деньги запустили сервис переводов в Армению через Idram
От VictorSamus в разделе «Новости платежных систем»
Аватар stockvest
Инвестиции в сайтостроение
От stockvest в разделе «Стартап-песочница»
.     
Пользователей
395,009
Тем
442,281
Сообщений
10,724,513