Bars news
- Индикаторы
- Aleksander Gladkov
- Версия: 1.1
- Обновлено: 19 декабря 2023
- Активации: 10
Индикатор новостей, привязанных к бару.
Публикуемое актуальное значение новости имеет характеристику влияния на валюту к которой относится: позитивное, негативное, нейтральное. Индикатор суммирует все эти значения за выбранный период с учетом важности новости: высокой, средней, низкой. В результате рассчитывается процент для валютной пары, который показывает новости какой валюты доминируют. Если значение положительное, значит пара имеет давление новостей в сторону BUY, если отрицательное - SELL.
Выводит три значения:
- количество новостей за период бара
- индекс влияние новостей за период бара
- текущий индекс влияние новостей
int BN_handle;
int OnInit()
{
ResetLastError();
BN_handle=iCustom(NULL,0,"\\Indicators\\Examples\\Bars_news_v10.ex5",100,10);
if(BN_handle==INVALID_HANDLE)
{
PrintFormat("Error getting the indicator handle Bars News. Error code = %d",GetLastError());
return(INIT_FAILED);
}
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
if(BN_handle!=INVALID_HANDLE) IndicatorRelease(BN_handle);
}
void OnTick()
{ static int Cur_bar=1;
double Number_of_bar_news,Impact_of_bar_news,Current_news_impact;
if (Cur_bar<10)
{ Number_of_bar_news =iCustomGet(BN_handle,0,Cur_bar);
Impact_of_bar_news =iCustomGet(BN_handle,1,Cur_bar);
Current_news_impact =iCustomGet(BN_handle,2,Cur_bar);
PrintFormat("Cur_bar =%d:, Number_of_bar_news =%d, Impact_of_bar_news =%.1f Current_news_impact =%.1f",
Cur_bar,Number_of_bar_news,Impact_of_bar_news,Current_news_impact);
Cur_bar++;
}
}
double iCustomGet(const int ind_handle,const int buffer,int start_pos)
{
double Custom[1];
ResetLastError();
if(CopyBuffer(ind_handle,buffer,start_pos,1,Custom)<0)
{
PrintFormat("Failed to copy data from the indicator, error code %d",GetLastError());
return(0.0);
}
return(Custom[0]);
}