T
thinarthrill
Well-Known Member
NinjaTrader
- #1
Всем любителям алертов посвящается.
Существует множество путей оповестить трейдера о произошедшем событии в Ninjatrader. Среди них и Alert, и сообщение на почту SendMail и СМС сообщение через соответствующий шлюз. Каждый вариант имеет свои плюсы (типа простоты кода или настроек) так и минусы (как спам в почте и коммерческая подоплека в рассылке СМС). Как еще один вариант - отправка уведомлений в Telegram канал. В нете рылся долго, искал самый простой вариант разработки скрипта, чтобы не для особо продвинутых прогеров. В основном попадались библиотеки, которые надо было тянуть из Github, компилировать, и дописывать кучу кода для вызова методов. Но недавно нашел таки простецкий метод, который достаточно вызвать в любом месте кода, указав в качестве параметра, пересылаемое сообщение. Но для его вызова предварительно нужно сделать следующие настройки. и в основном они касаются самого Telegram
1. Создать публичный канал (запоминаем имя, его нужно будет указать далее в коде)
2. Создать Telegram бота посредством BotFather (запоминаем Token, который сгенерирует BotFather, его нужно будет указать далее в коде)
3. Созданного бота сделать администратором публичного канала
Настройки завершены. Далее простой код
4. Добавляем библиотеки
5. Добавляем функцию
Вместо TOKEN, подставляем Token, который сгенерировал BotFather в пункте 2
Вместо ИМЯ_ТВОЕГО_БОТА подставляем имя канала, созданного в пункте 1
6. Вызываем функцию при вашем событии, чтобы отправить сообщение в канал
В итоге уведомления всегда под рукой
Существует множество путей оповестить трейдера о произошедшем событии в Ninjatrader. Среди них и Alert, и сообщение на почту SendMail и СМС сообщение через соответствующий шлюз. Каждый вариант имеет свои плюсы (типа простоты кода или настроек) так и минусы (как спам в почте и коммерческая подоплека в рассылке СМС). Как еще один вариант - отправка уведомлений в Telegram канал. В нете рылся долго, искал самый простой вариант разработки скрипта, чтобы не для особо продвинутых прогеров. В основном попадались библиотеки, которые надо было тянуть из Github, компилировать, и дописывать кучу кода для вызова методов. Но недавно нашел таки простецкий метод, который достаточно вызвать в любом месте кода, указав в качестве параметра, пересылаемое сообщение. Но для его вызова предварительно нужно сделать следующие настройки. и в основном они касаются самого Telegram
1. Создать публичный канал (запоминаем имя, его нужно будет указать далее в коде)
2. Создать Telegram бота посредством BotFather (запоминаем Token, который сгенерирует BotFather, его нужно будет указать далее в коде)
3. Созданного бота сделать администратором публичного канала
Настройки завершены. Далее простой код
4. Добавляем библиотеки
C#:
using System.IO;
using System.Net;
5. Добавляем функцию
Код:
public string SendTelegram(string Message) {
string urlString = "https://api.telegram.org/bot{0}/sendMessage?chat_id={1}&text={2}";
string apiToken = "TOKEN";
string chatId = "@ИМЯ_ТВОЕГО_БОТА";
string text = Message;
urlString = String.Format(urlString, apiToken, chatId, text);
WebRequest request = WebRequest.Create(urlString);
Stream rs = request.GetResponse().GetResponseStream();
StreamReader reader = new StreamReader(rs);
string line = "";
StringBuilder sb = new StringBuilder();
while ( line !=null ) {
line = reader.ReadLine();
if ( line != null )
sb.Append(line);
}
string response = sb.ToString();
return response;
}
Вместо TOKEN, подставляем Token, который сгенерировал BotFather в пункте 2
Вместо ИМЯ_ТВОЕГО_БОТА подставляем имя канала, созданного в пункте 1
6. Вызываем функцию при вашем событии, чтобы отправить сообщение в канал
SendTelegram("Выставлен ордер на продажу "+Instrument.MasterInstrument.Name+" по цене "+Close[0]);
В итоге уведомления всегда под рукой
Последнее редактирование: