Идея следующая , есть некие сайты типа dohod.ru , smart-lab.ru/dividends и другие
мысль зачитывать и выводить на график
Задача поставлена, осталось только реализовать!
Идея следующая , есть некие сайты типа dohod.ru , smart-lab.ru/dividends и другие
мысль зачитывать и выводить на график
думаю зачитывать сайты не проблема,
а вот что выводить на график, и что с этим потом делать?
тут проблема ...
Для сайта www.dohod.ru написал примитивный парсинг
беда в том что для каждого сайта придется писать свой парсинг
А выводить на экран уже не проблема
//+------------------------------------------------------------------+ //| yz_Gev_Dividend.mq5 | //| Copyright 2020,YuraZ | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2020,YuraZ" #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnStart() { int i_SymbolsTotal=SymbolsTotal(true); // false - Все символы , true – только символы в MarketWatch for(int i=0; i<i_SymbolsTotal; i++) // найдем инструменты с контрактом pKontract { string sSymbol = SymbolName(i,true) ; // false); // Загоним символ в массив StringToLower(sSymbol); GetDividend(sSymbol); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void GetDividend(string sSymbol) { string cookie=NULL,headers; char post[],result[]; string url="https://www.dohod.ru/ik/analytics/dividend/" ; url=url+sSymbol; //--- для работы с сервером необходимо добавить URL "https://www.dohod.ru" //--- в список разрешенных URL (Главное меню->Сервис->Настройки, вкладка "Советники"): //--- обнуляем код последней ошибки ResetLastError(); //--- загрузка html-страницы с Yahoo Finance int res=WebRequest("GET",url,cookie,NULL,500,post,0,result,headers); if(res==-1) { Print("Ошибка в WebRequest. Код ошибки =",GetLastError()); //--- возможно, URL отсутствует в списке, выводим сообщение о необходимости его добавления MessageBox("Необходимо добавить адрес '"+url+"' в список разрешенных URL во вкладке 'Советники'","Ошибка",MB_ICONINFORMATION); } else { if(res==200) { // Распарсим результат // найти дивиденды // <table id="dividends-brief"> // <tr class="frow"> // <td class="greendark">11.54%</td> <td class="dlmtr"></td> // <td class="gray">2.14%</td> <td class="dlmtr"></td> // <td class="greenlight">0.79</td> </tr> // <tr class="srow"> // <td>текущая доходность</td><td class="dlmtr"></td> // <td>доля от прибыли</td><td class="dlmtr"></td> // <td><a id="dsi-link" title="Методика расчета индекса стабильности дивидендных выплат (DSI)" href="/ik/analytics/dividend/pdf/dsi.pdf">индекс DSI</a></td> // </tr> // </table> string strPars = CharArrayToString(result,0,-1); string Div; int iPos1 = StringFind(strPars,"<table id=\"dividends-brief\">",0); // Найдем начало таблицы дивидендов if(iPos1 !=0) { strPars = StringSubstr(strPars, iPos1, 500); iPos1 = StringFind(strPars,"<tr class=\"frow\">",0); // найдем <tr class="frow"> strPars = StringSubstr(strPars, iPos1+1, 500); iPos1 = StringFind(strPars,"<td class=",0)+1; // <td class= тут может быть разный цвет strPars = StringSubstr(strPars, iPos1, 500); iPos1 = StringFind(strPars,">",0); // Нахдим ограничитель цвета int iPos2 = StringFind(strPars,"</td>",0); // найдем завершение </td> пример ---}}}} >11.54%</td> Div = StringSubstr(strPars,iPos1+1,iPos2 - 1 - iPos1) ; // вырезаем дивиденды printf("[%s] [%s]",sSymbol, Div); } ////--- успешная загрузка //// PrintFormat("Файл успешно загружен, размер %d байт.",ArraySize(result)); ////PrintFormat("Заголовки сервера: %s",headers); ////--- сохраняем данные в файл //int filehandle=FileOpen("yz_Div_"+sSymbol+".htm",FILE_WRITE|FILE_BIN); //if(filehandle!=INVALID_HANDLE) // { // //--- сохраняем содержимое массива result[] в файл // FileWriteArray(filehandle,result,0,ArraySize(result)); // //--- закрываем файл // FileClose(filehandle); // } //else // { // Print("Ошибка в FileOpen. Код ошибки =",GetLastError()); // } } else { //PrintFormat("Ошибка загрузки '%s', код %d",url,res); } } } //+------------------------------------------------------------------+
Price Last - Price 1 Year Ago > 0
- iexcloud.io
На рынке США дивиденды в сравнении с Российскими % очень низки. К примеру в 2019 по сургутнефтегазу дивиденды были 19% , какая
компания в США платит хотя бы 10% ?
для сайта
www.dohod.ru/ik/analytics/dividend
если есть API то конечно нужно через API , просто полагаю они не дают API , я просто не нашел.
https://finviz.com/screener.ashx?v=161&f=fa_div_o10&o=-dividendyield
FinViz или BarChart для визуальной проверки, последняя ссылка не дает прямой переход, поэтому в виде картинки.
- finviz.com
- finviz.com
https://finviz.com/screener.ashx?v=161&f=fa_div_o10&o=-dividendyield
FinViz или BarChart для визуальной проверки, последняя ссылка не дает прямой переход, поэтому в виде картинки.
Спасибо!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Идея следующая , есть некие сайты типа dohod.ru , smart-lab.ru/dividends и другие
мысль зачитывать и выводить на график