Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Индикаторы

YuraZ_Book_All_PriceCH индикатор для биржи ( изменения от 2022.02.12 ) - индикатор для MetaTrader 5

Просмотров:
2676
Рейтинг:
(12)
Опубликован:
2020.10.31 14:26
Обновлен:
2022.02.11 22:50
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу


Многофункциональный индикатор для биржи. В описании ниже понятно что где показывает.
Для полноценного функционирования,  необходимо предварительно запустить скрипт чтения

данных дивидендов  с сайта https://www.dohod.ru
страница отвечает за каждый отдельный инструмент например для SBERP https://www.dohod.ru/ik/analytics/dividend/sberp
скрипт опубликован ниже.



Колонки:

  1. Имя инструмента.
  2. Процент читаемый по каждому инструменту  с сайта  https://www.dohod.ru/ik/analytics/dividend/
  3. Сумма дивидендов
  4. Минимальное количество лот
  5. Минимальная сумма покупки одного лота
  6. Дневное изменение CH% считает от закрытия прошлого дня
  7. Объем выставленных отложенных ордеров на покупку
  8. Объем выставленных отложенных ордеров на продажу
  9. Разница между объемами отложенных ордеров
  10. Процент разницы
  11. Направление движения по объемам отложенных ордеров
  12. Объем совершенных покупок с начала дня
  13. Объем совершенных продаж  с начала дня
  14. Разница между совершенным покупками и продажами с начала дня

параметры

Параметры


//+------------------------------------------------------------------+
//|                                              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[];
int iPos2;
int iPos1;
string strВыплптаНаАкцию;

   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,CP_UTF8);
         string Div;

          iPos1 = StringFind(strPars,"<table id=\"dividends-brief\">",0); // Найдем начало таблицы дивидендов

         if(iPos1 !=0)
           {
            //string strPars; 
            
            iPos1 = StringFind(strPars,"<p>Совокупные дивиденды в следующие 12m: <strong><span class=",0);
//            //printf(" %d %d ",iPos1,iPos2   );
            iPos1 = iPos1+StringLen("<p>Совокупные дивиденды в следующие 12m: <strong><span class=");
//            //printf(" %d %d ",iPos1,iPos2   );
            iPos1 = StringFind(strPars,">",iPos1)+1;
//            //printf(" %d %d ",iPos1,iPos2   );
            iPos2 = StringFind(strPars,"</span>",iPos1);
//            //printf(" %d %d ",iPos1,iPos2   );
//            
            strВыплптаНаАкцию = StringSubstr(strPars, iPos1, iPos2-iPos1 ); //iPos2-iPos1  );
            printf("%s %d %d  %d [%s] ",sSymbol, iPos2-iPos1 ,iPos1,iPos2, strВыплптаНаАкцию  );
            
            iPos1 = StringFind(strPars,"<table id=\"dividends-brief\">",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); // Нахдим ограничитель цвета 
             iPos2 = StringFind(strPars,"</td>",0); // найдем завершение  </td>   пример ---}}}}    >11.54%</td> 
            Div = StringSubstr(strPars,iPos1+1,iPos2 - 1 - iPos1) ; // вырезаем дивиденды
            printf("[%s] [%s] [%s]",sSymbol, Div, strВыплптаНаАкцию);


         int filehandle=FileOpen("yz_Div_"+sSymbol+".dat",FILE_WRITE|FILE_SHARE_WRITE|FILE_CSV,"|");
         if(filehandle!=INVALID_HANDLE)
           {
            //--- сохраняем содержимое массива result[] в файл
            FileWrite(filehandle,"<"+Div+"><"+strВыплптаНаАкцию+">" );
            //--- закрываем файл
            FileClose(filehandle);
           }



           }

         //--- успешная загрузка
         //  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);
        }
     }
  }
//+------------------------------------------------------------------+

iMACD Trend N Bars iMACD Trend N Bars

Непрерывный рост индикатора iMACD (Moving Average Convergence/Divergence, MACD) на заданном количестве баров

Last position type Last position type

Утилита - отображает по текущему символу и для заданного Magic тип последней позиции

Open Open Days Open Open Days

Работа с трендовыми линиями ( OBJ_TREND )

MACD Intersection Main and Signal MACD Intersection Main and Signal

Отображение индикатора iMACD (Moving Average Convergence/Divergence, MACD) и вертикальных линий в месте пересечения линии 'Main' и 'Signal'