
По мере того, как количественные торговые стратегии продолжают совершенствоваться, пользователи все больше и больше нуждаются в push-уведомлениях в режиме реального времени об изменениях позиций. Например, онлайн-журналы, мобильные приложения, WeChat и т. д. — все они должны проактивно передавать изменения в позициях счетов на платформу в реальном времени. Браузеры, мобильные телефоны и т.д. Для этой цели в данной статье используется стратегия «Мой язык» компании Inventor Quantitative (FMZ.COM) для реализации передачи позиций в режиме реального времени в мобильные приложения и WeChat.
Пожалуйста, нажмите https://www.fmz.com/strategy/305785 для полного исходного кода этой статьи. Я предлагаю вам попробовать какой-нибудь код.
Для наглядности эта статья будет ссылаться на предыдущую торговую стратегию William W%R. Адрес ссылки на стратегию: https://www.fmz.com/strategy/283024. Логика стратегии состоит из значения William и скользящего среднее. Полная стратегия и конфигурация теста возврата, вы можете нажать на эту ссылку, чтобы получить ее, ниже приведен код для этой стратегии:
HC := HHV(HIGH, 14) - CLOSE;
HL := HHV(HIGH, 14) - LLV(LOW, 14);
WR := -100 * HC / HL;
MA20 : EMA2(C, 14);
C1 := WR < -60 && C > MA20;
C2 := WR > -15 && C < MA20;
C1, BPK;
C2, SPK;
Мой язык FMZ.COM — это дальнейшее воплощение языка JavaScript, которое призвано помочь начинающим количественным аналитикам лучше начать работу. Мой язык обладает характеристиками краткого синтаксиса и может обрабатывать некоторую простую стратегическую логику, но он не подходит для некоторых сложных Стратегия будет растянута. С этой целью изобретатель Quantized запустил функции улучшения языка на основе My language. Как показано в следующем примере кода:
%%
// 这里面可以调用发明者量化的任何API
scope.TEST = function(obj) {
return obj.val * 100;
}
%%
收盘价:C;
收盘价放大100倍:TEST(C);
上一个收盘价放大100倍:TEST(REF(C, 1)); // 鼠标移动到回测的K线上就会提示变量值
Как показано в коде выше, функция улучшения языка позволяет смешанное программирование языка My и языка JavaScript. Для конкретных объяснений, пожалуйста, обратитесь к ссылке на документ: https://www.fmz.com/doc/2569#%E8%AF %AD%E8 %A8%80%E5%A2%9E%E5%BC%BA
в:
1. Область действия объекта Объект Scope позволяет добавлять свойства и назначать свойствам анонимные функции. В части кода языка Mai вы можете вызвать анонимную функцию, на которую ссылается этот атрибут.
2、scope.get_locals(‘name’) Эта функция может получать переменные языка My, тем самым реализуя взаимодействие между языком My и языком JavaScript.
В стратегии My language функция BKVOL может получить количество лотов сигнала покупки, то есть текущую длинную позицию. Функция SKVOL может получить количество лотов сигнала на продажу, то есть текущую короткую позицию. Затем мы можем рассчитать текущий статус изменения позиции, вычитая SKVOL из BKVOL. Как показано в следующем коде:
HC := HHV(HIGH, 14) - CLOSE;
HL := HHV(HIGH, 14) - LLV(LOW, 14);
WR := -100 * HC / HL;
MA20 : EMA2(C, 14);
C1 := WR < -60 && C > MA20;
C2 := WR > -15 && C < MA20;
C1, BPK;
C2, SPK;
%%
// 下面代码附加到任何My语言策略最后都可以实现仓位变化推送到手机App与微信
if (typeof(scope._tmp) !== 'number') {
scope._tmp = 0;
}
var pos = scope.get_locals('BKVOL') - scope.get_locals('SKVOL');
if (pos != scope._tmp) {
scope._tmp = pos;
Log('通知仓位变化:', scope.symbol, pos, '@');
}
%%
В приведенном выше коде мы объединили торговую стратегию William W%R и функцию push-уведомлений об изменении позиции, чтобы добиться синхронизации размещения ордеров торговой стратегии и изменений позиции в реальном времени, а также отправить их в мобильное приложение и WeChat.
Далее мы запускаем транзакцию в реальном времени для проверки этой функции. При создании транзакции в реальном времени выберите OKEX spot и установите валютную пару LTC_USDT (фьючерсы на товары и фьючерсы на цифровые валюты также могут использовать эту функцию, и операция аналогична )
1. Триггер сигнала, веб-журнал
2. Триггер сигнала, push-сообщение мобильного приложения
3. Триггер сигнала, отправка информации WeChat

В примере выше мы используем простую торговую стратегию My Language William W%R в сочетании с модулем отправки сообщений, разработанным модулем улучшения языка в My Language, для отправки изменений позиций в мобильные приложения и WeChat в режиме реального времени. Этот код модуля можно прикрепить к любой стратегии My Language, чтобы отправлять изменения позиции в мобильные приложения и WeChat, а также запускать различные типы push-уведомлений для разных сценариев, чтобы удовлетворить ваши персонализированные потребности в push-уведомлениях.