Transaq

СБО "Transaq" => Подсистема ATF => Topic started by: buv87 on Апреля 06, 2015, 11:12:39 pm

Title: Сигнал по одному инструменту, а сделка по другому
Post by: buv87 on Апреля 06, 2015, 11:12:39 pm
Добрый вечер! подскажите пожалуйста, как можно организовать такую идею:
Есть инструмент Сбер акции и Сбер фьюч. Отслеживаем пересечение индикаторов на акциях. если произошло пересечение, то совершается  сделка  по фьючерсу
Title: Re: Сигнал по одному инструменту, а сделка по другому
Post by: buv87 on Апреля 07, 2015, 02:18:56 pm
Попробовал сделать через окружение onEnvEvent(string) и postEnvEvent(string), вроде работает
Title: Re: Сигнал по одному инструменту, а сделка по k
Post by: jeekk on Ноября 07, 2017, 11:54:10 pm
Как будет на практическом примере?


◾ onEnvEvent(event) - событие ATF-окружения

◾ postEnvEvent(string) - Вызвать событие ATF-окружение. (ver. 1.12)

◾ setEnvVariable(name, value) - выставить переменную ATF-окружения c именем name в значение value   
   (value не может быть объектом). (ver. 1.12)


Пока только эту информацию нащел. Будьте добры, покажите на примере.
Title: Re: Сигнал по одному инструменту, а сделка по k
Post by: jeekk on Ноября 08, 2017, 01:28:07 am
Еще инфу нашел.

Посмотрите здесь: http://www.transaq.ru/docs/atf/functions  следующие функции: onEnvEvent, setEnvVariable, getEnvVariable, postEnvEvent. Это собственно все связано с этим окном.

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

Это позволяет решать на простом уровне вопрос обмена данными между разными скриптами. Например, вы хотите, чтобы если RTSI пересечет свою скользящую среднюю вниз, выключить всех роботов, которые работают. Тогда вы можете на пересечение линии вызвать в одном скрипте postEnvEvent("shutdownall"), и в каждом скрипте сработает функция onEnvEvent(var env), где env будет содержать строку "shutdownall" - по ней вы можете определить что вам стоит прекратить выполнять торговые операции.

Ну или например вы хотите во всех скриптахзнать текущее значение индекса ММВБ. Тогда на график индекса ММВБ вы можете положить такой индикатор:


Code: [Select]
function calc()
{
    setEnvVariable("micex", close)
}


А в других скриптах вы сможете получать актуальное значение индекса ММВБ функцией getEnvVariable("micex").