Скачать MetaTrader 5

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

12 июля 2007, 16:09
chayutra sriboonruang
5
622

Введение

В данной статье мы рассмотрим возможность отправки торговых сигналов от Ваших лучших индикаторов или экспертов любому члену Вашего сообщества через 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/articles/1416.




Шаг 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-сервис. Надеюсь, данная статья окажется полезной. Наслаждайтесь новым способом передачи сигналов.

Перевод с английского произведен MetaQuotes Software Corp.
Оригинальная статья: https://www.mql5.com/en/articles/1480

Прикрепленные файлы |
htmlXample.zip (0.55 KB)
RSSXample.mq4 (3.14 KB)
Valery V. Chesnokov
Valery V. Chesnokov | 15 июл 2007 в 13:09

Согласно RSS спецификации (см. http://ru.wikipedia.org/wiki/RSS), можно добавить тег <lastBuildDate> в заголовок канала - дата последнего обновления канала. На неё многие RSS ридеры (readers) ориентируются, было ли обновление содержания канала с даты его последнего прочтения.

Вообще в спецификции RSS 2.0, если ориентироваться на неё, достаточно много тегов и атрибутов.

MQL4 Comments
MQL4 Comments | 15 авг 2008 в 11:52
а добавить RSS на такой сайт investor-eto.narod.ru можно?
pvm63
pvm63 | 18 ноя 2008 в 18:32

Спасибо за идею.

Сигналы Советника (первоначально советник использовался для передачи сигналов на свой сотовый телефон) с помощью спецификации RSS публикуются на FTP – страничке.

Опробовано в качестве рассылки. Через вспомогательные сайты (опробованы rss2email.ru и zssn.org.ua) сообщения конвертируют в e-mail для Agent mail.ru - на компьютер, для SMS – сообщений через pochta.ru.

В прикрепленном файле Советник RSS_Signal.mq4

pvm63
pvm63 | 18 ноя 2008 в 18:33
pvm63:

Спасибо за идею.

Сигналы Советника (первоначально советник использовался для передачи сигналов на свой сотовый телефон) с помощью спецификации RSS публикуются на FTP – страничке.

Опробовано в качестве рассылки. Через вспомогательные сайты (опробованы rss2email.ru и zssn.org.ua) сообщения конвертируют в e-mail для Agent mail.ru - на компьютер, для SMS – сообщений через pochta.ru.

В прикрепленном файле Советник RSS_Signal.mq4

MQL4 Comments
MQL4 Comments | 12 дек 2009 в 23:28
pvm63  зраствуйте.Хочу у вас спросить нет ли у вас советника который читает информацию которай пришла на Ftp страничку?
Нестандартная автоматическая торговля Нестандартная автоматическая торговля

Насколько реально можно успешно и комфортно торговать, используя платформу МТ4, и не слишком обременяя себя, при этом, скрупулезным анализом рынка? Возможно ли реализовать практически такую торговую систему? Пожалуй..,. - да! Особенно в плане автоматической торговли!

Terminal Service Client. Как подружить Pocket PC с большим братом. Terminal Service Client. Как подружить Pocket PC с большим братом.

Подключение к удаленному компьютеру с терминалом МТ4 через КПК.

Основы создания хеджирующего эксперта Основы создания хеджирующего эксперта

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

Как сократить код торгового эксперта, попутно упростив себе жизнь и уменьшив число возможных ошибок Как сократить код торгового эксперта, попутно упростив себе жизнь и уменьшив число возможных ошибок

Простая концепция, изложенная в данной статье, позволит разработчикам МТС на MQL4 упростить существующие торговые системы, а также сократить время разработки новых систем за счет сокращения объема кода торговых экспертов.