Отправка торгового сигнала через RSS канал

Автор: lexy Вторник, Сентябрь 9th, 2014 Нет комментариев

Рубрика: Разное

В данной статье мы рассмотрим возможность отправки торговых сигналов от Ваших лучших индикаторов или экспертов любому члену Вашего сообщества через RSS-канал. В наше время RSS является очень популярным способом связи с членами сообщества. На многих профессиональных сайтах в правой части адресной строки находится значок RSS. Они содержат не только оранжевый значок, но и ссылку на самом сайте. Многие думают, что установка значка RSS на сайте производится только веб-разработчиками. А в реальности создать RSS очень просто. Давайте разберемся, как.

RSS

Прежде всего, ознакомимся с определением RSS.

Определение от Wikipedia (бесплатная энциклопедия)
Другие значения RSS см. RSS (disambiguation).Определение RSS каналов от Wikipedia см. Wikipedia:Syndication. (Из англоязычной Википедии — Wikipedia, the free encyclopedia — Перевод MetaQuotes Software Corp.)

 

RSS - семейство форматов web feed используемая для публикования обновленной информации, такой как записи блогов, заголовки новостей или подкастинги. Документ RSS, называемый «RSS-каналом», «RSS-лентой» или «RSS-фидом», содержит краткое содержание соответствующего сайта или полный текст. RSS дает возможность постоянной связи с любимыми веб-сайтами в автоматическом режиме, заменяя ручную проверку.

Для чтения содержимого RSS-канала используется программное обеспечение, называемое «feed-reader» или «RSS-агрегатор«. Подписаться на RSS-канал можно, перейдя по ссылке или нажатием значка RSS в браузере, который запускает процесс подписки. Агрегатор регулярно проверяет пользовательские каналы на обновления и загружает их.

В разных версиях аббревиатура RSS имеет разные расшифровки:

  • Really Simple Syndication (RSS 2.0) - очень простое приобретение информации
  • RDF Site Summary (RSS 1.0 and RSS 0.90) - сводка сайта с применением инфраструктуры описания ресурсов
  • Rich Site Summary (RSS 0.91) - обогащённая сводка сайта

RSS относится к XML форматам.

Больше информации здесь.

Что понадобится

Для отправки RSS сообществу Вам понадобится следующее:

  1. собственный веб-сайт или блог с разрешенным ftp доступом
  2. основные знания о функциях работы с файлами в MQL4
  3. собственный текст BUY/SELL

Начнем с Вашего собственного веб-сайта.

 

Все, что Вам необходимо, — изменить указанные строки под Ваш собственный сайт.
Без этого текста RSS-канал не будет настроен. Допустим, Вы их изменили. Переходим к следующему шагу.


Работать с файлом в MT4 достаточно просто


Следуя простым указаниям ниже, Вы без труда сможете отправлять RSS членам Вашего сообщества. Начнем.

Шаг 1. Объявление RSS файлов.

Перед объявлением RSS файлов, проверьте их наличие.

int handlerss = FileOpen("test.rss", FILE_READ, ';');//проверка наличия test.rss

Если RSS-файл уже существует, значение «handlerss» будет 1. Если нет, не расстраивайтесь. Вы можете создать его с помощью следующего кода:

if(handlerss < 0)//означает отсутствие "test.rss"
  {
    handlerss = FileOpen("test.rss", FILE_WRITE, ';');//объявить его
    handlerss = FileOpen("test.rss", FILE_READ, ';');//и снова проверить
  }

После того, как RSS-файл был создан, значение «handlerss» должно быть 1. Его можно проверить в папке «Program Files\MetaTrader 4\experts\files».
После этого необходимо настроить текстовые сигналы BUY и SELL — переходим ко второму шагу.

Шаг 2. Настройка сигнальных слов BUY и SELL.

string BuyStrrss = "GBPJPY 1.0 lots @  "
                   + DoubleToStr(MarketInfo("GBPJPY", MODE_BID),
                   MarketInfo("GBPJPY", MODE_DIGITS))
                   + " || "
    , SellStrrss = "EURJPY 1.5 lots @ "
                   + DoubleToStr(MarketInfo("EURJPY", MODE_BID),
                   MarketInfo("EURJPY", MODE_DIGITS))
                   + " || ";

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

Шаг 3. Собственный RSS файл.

Для того, чтобы понять, как это делается, пожалуйста, внимательно прочтите комментарии.

   if(handlerss>0)                                                  // RSS-файл уже существует
    {

      if(FileSize(handlerss)==0)                                    // проверяется, был ли файл написан
      {                                                             // 0 означает, что файл не был написан

       handlerss=FileOpen("test.rss", FILE_WRITE, ';');             // откройте файл для кодировки

       FileWrite(handlerss                                          // начало XML. Не требуется никаких изменений,
                                                                    // кроме текста сигналов BUY/SELL
              ,"<?xml version=\"1.0\"?><rss version=\"0.91\"><channel><title>"+YourRSSTitle+"</title>"
              +"<link>"+YourDomain+"</link>"
              +"<image>"+YourIMG_Path+"</image>"
              +"<description>"+YourBrifeDesc+"</description>"
              +"<item>"
              +"<title>"+YourSigTitle+TimeToStr(TimeCurrent(),TIME_DATE)+"</title>"
              +"<link>"+YourDomain+"</link>"
              +"<description>"
              +"BUY : "
              +BuyStrrss
              +"SELL : "
              +SellStrrss
              +FinishingText                                        // вставить текст
              +"</description>"
              +"</item></channel></rss>"

              );
      FileClose(handlerss);                                          // окончание стартового сигнала

      }
      else                                                           // если сигнал не стартовый

      {
         string rss=FileReadString(handlerss);                       // строка взята из test.rss

         string rssHeader= "<?xml version=\"1.0\"?>"                   // заголовок XML
                           +"<rss version=\"0.91\"?>"
                           +"<channel>"
                           +"<title>"+YourRSSTitle+"</title>"
                           +"<link>"+YourDomain+"</link>"
                           +"<image>"+YourIMG_Path+"</image>"
                           +"<description>"+YourBrifeDesc+"</description>"
                           ;                           

         int len=StringLen(rss);                                     // сколько знаков он содержит

         string rss1="<item>"                                        // Ваш последний сигнал
                    +"<title>"+YourSigTitle+TimeToStr(TimeCurrent(),TIME_DATE)+"</title>"
                    +"<link>"+YourDomain+"</link>"
                    +"<description>"
                    +"BUY : "
                    +BuyStrrss
                    +"SELL : "
                    +SellStrrss
                    +FinishingText
                    +"</description>"
                    +"</item>"

                ,rsst=StringSubstr(rss,0, len)                       // получаем XML заголовок длиною "len" знаков

                ,rssb=StringSubstr(rss,230,0)                        // получаем остальной (старый) код, всё после заголовка
                ;
         handlerss=FileOpen("test.rss", FILE_WRITE, ';') ;           // Теперь открываем файл для вставки нового сигнала

         FileWrite(handlerss,rsst+rss1+rssb);                        // Соединяем XML заголовок, новый сигнал и остальное

         FileClose(handlerss);                                       // Закончили. Новый сигнал добавлен
      }
    }

Это все, что касается RSS. Теперь Ваш test.rss находится в директории «Program Files\MetaTrader 4\experts\files».
Его легко можно проверить, открыв при помощи любого браузера. В итоге он должен выглядеть так:


Вот сейчас можно отправлять Ваш собственный сигнал.

Шаг 4. Отправьте его на Ваш собственный сервер.

SendFTP("test.rss", NULL);

Узнать подробнее о настройке ftp параметров вы можете по ссылке http://articles.mql4.com/ru/159.

Шаг 5. Укажите ссылку на Вашем сайте.

Члены сообщества не узнают о том, что у Вас появился RSS сервис, если вы им об этом не сообщите.

Существует 2 способа сообщить членам сообщества, что у Вас появился RSS сервис.

1. Укажите ссылку на Вашей веб-странице.

Вставьте указанный выше код там, где должна появиться ссылка, но внутри тега «BODY«.
Появится такая ссылка:

2. Пусть браузер сам распознает RSS, после этого значок RSS автоматически появится справа от адресной строки.

Вставьте указанный выше код в часть «HEAD» . После этого в правой части адресной строки автоматически появится оранжевый символ RSS.
Это будет выглядеть так:

Теперь члены сообщества и посетители сайта будут знать, что Вы передаете сигналы через RSS сервис.
Теперь при нажатии на этот значок или при переходе по ссылке, посетители будут автоматически попадать на страницу подписки.
Ваша RSS страница подписки будет выглядеть так (данная страница будет появляться, когда файл «*anyname.rss» будет опубликован на Вашем веб-сервере.)
Давайте посмотрим.

Заключение

В этой статье дана пошаговая инструкция по созданию собственного RSS-сервиса с использованием индикатора(ов) или советника(ов) MT4.

Все что Вам надо сделать, это:

  1. Скопировать примеры кодов из RSSXample.mq4, прикрепленных к данной статье, в любой индикатор/эксперт по желанию.
  2. Изменить строки в XML заголовке. Расположено здесь.
  3. Настроить сигнальный текст BUY/SELL. Расположено здесь.
  4. Отошлите его. Проверять здесь.
  5. Создайте ссылку на него. Проверять здесь.

Это все.

Сейчас для Вас не составит труда создать собственный RSS-сервис. Надеюсь, данная статья окажется полезной. Наслаждайтесь новым способом передачи сигналов.

 

Прикрепленные файлы:
 htmlXample.zip (567 bytes)
 RSSXample.mq4 (3.1 Kb)
Источник: mql4.com

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты