У вас не стоит Flash Player
Настройки
#19895 - Thu Jan 20 2011 04:10 PM многократный запуск скрипта в выбранном интервале
Philontrop Offline
stranger

Registered: Thu Dec 02 2010
Записи: 16
Добрый день!
Я только начал разработку скрипта на API, поэтому вопрос может оказаться банальным, но ни в документации ни на форуме не нашел на него ответа.

Создаю простой скрипт, вешаю в кубиках на него 35 источников данных, в свойствах скрипта выставляю интервал 1 минута, в самом скрипте (в MS Visual Studio) вывожу в лог цену закрытия по последним барам для всех источников:


#region выборка цены закрытия последнего закрытого бара по всем источникам
int barsCount = 0;
for (int i = 0; i < 35; i++)
{
barsCount = securities[i].Bars.Count;
if (barsCount > 0) ctx.Log("> " + securities[i].CacheName.ToString() + " - " +
securities[i].Bars[barsCount - 1].Close.ToString() + " - " +
securities[i].Bars[barsCount - 1].Date.ToString(), 0x702020);
}
#endregion


... далее скрипт прикрепляю к реальному портфелю подключенному к серверу Transaq. Запускаю скрипт ожидая что он будет запускаться единожды вначале каждого интервала, т.е. в начале каждой минуты, а в результате он запускается по нескольку десятку раз в течении каждого интервала (в течении каждой минуты. записывая в лог, в течении каждого интервала, одни и те же данные)

ВОПРОС: многократные запуск скрипта в течении одного интервала это особенности работы самой программы или я где-то что-то пропустил в настройках?

Наверх
#19896 - Thu Jan 20 2011 04:23 PM Re: многократный запуск скрипта в выбранном интервале [Re: Philontrop]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
когда, источников много, может быть несколько пересчетов, т.к. бумаги меняются не синхронно

Наверх
#19897 - Thu Jan 20 2011 04:36 PM Re: многократный запуск скрипта в выбранном интервале [Re: Nektodron]
Philontrop Offline
stranger

Registered: Thu Dec 02 2010
Записи: 16
спасибо, это все объясняет, я это как то не учел.

1.
насколько я понимаю, выбранный в портфеле источник для торговли к которому и крепится торговый алгоритм (в настройках портфеля) - является той самой точкой отсчета интервала (в данном случае - минуты), то есть после закрытия текущего бара этого источника - начинается новый интервал пересчета или же интервал пересчета начинается с каждой новой минутой по серверному времени биржи?

2.
И все же странно получается, судя по логу (во вложении) последняя цена по бумагам меняется сразу по всем, какие же дополнительные пересчеты могут запускаться в течении целой минуты если обновления по всем бумагам уже произошли?

3.
Также мне непонятно, почему после остановки скрипта (в логе даже имеется надпись - "скрипт остановлен"), он ещё несколько раз автоматически запускается самостоятельно?


Attachments
log_pbbp.xls (111 downloads)



Отредактировано Philontrop (Thu Jan 20 2011 04:54 PM)

Наверх
#20004 - Tue Jan 25 2011 09:40 AM Re: многократный запуск скрипта в выбранном интервале [Re: Philontrop]
Philontrop Offline
stranger

Registered: Thu Dec 02 2010
Записи: 16
... вопрос в догонку, технически сформулировать вопрос я ещё не могу, поэтому спрошу своими словами:

4.
в моей ситуации, со множеством источником, когда в течении одного временного интервала происходит множество пересчетов, с одними и теми же данными. Допустим в моем скрипте на первом пересчете выполнилось условие для открытия позиции, выполнилась функция открытия позиции, сигнал ушел брокеру ... в это время, до окончания временного интервала происходит ещё множество пересчетов, при которых так же выполняется это же условие открытия позиции ... как избежать многократного открытия позиции? я предполагаю что может быть момент когда позиция ещё не создана а новый пересчет уже послал сигнал на открытие новой?

пожалуйста развейте мои заблуждения или подскажите какими маркерами или "индикаторами" возможно отследить то, что в текущем временном интервале сигнал на открытие позиции уже послан?

5.
очевидно, ситуация описанная выше в (вопросе 4.) будет иметь место и при закрытии позиции?

Наверх
#20005 - Tue Jan 25 2011 09:57 AM Re: многократный запуск скрипта в выбранном интервале [Re: Philontrop]
Philontrop Offline
stranger

Registered: Thu Dec 02 2010
Записи: 16
6.
как повлияет на количество пересчетов, если я у всех источников, кроме одного по которому собираюсь торговать "поставлю галочку" на условии "не торгуемый"?

Наверх
#20033 - Tue Jan 25 2011 04:18 PM Re: многократный запуск скрипта в выбранном интервале [Re: Philontrop]
Philontrop Offline
stranger

Registered: Thu Dec 02 2010
Записи: 16
7.
Будет ли работать такой вариант:
- в отдельном скрипте №1 используя множество источников с небольшим таймфреймом ведутся необходимые расчеты и анализы данных, сохраняя результат в "доступное место".
- параллельно в скрипте №2 проверяются условия (используя результаты работы скрипта №1 из "доступного места") по одному источнику, по которому собственно и будет вестись торговля, с большим таймфреймом.
- оба скрипта вешаются на один портфель и оба запускаются в реалтайме.

Будет ли это работать как задумано (возможно есть ньюансы о которых я не знаю) и ЧТО можно (и оптимально) использовать в качестве "доступного места" для хранения результатов работы скрипта №1 (в качестве результатов необходимо будет передавать ряд параметров и величин, думаю порядка 5-10 шт. история не обязательна) ?

Наверх
#20114 - Thu Jan 27 2011 03:39 PM Re: многократный запуск скрипта в выбранном интервале [Re: Philontrop]
Philontrop Offline
stranger

Registered: Thu Dec 02 2010
Записи: 16
8.
Был бы бесконечно признателен, небольшим фрагментом кода на C# в котором при определенном условии текущего пересчета, на график по определенному (одному) источнику, на последнем баре (на котором выполняется пересчет) выводился какой-нибудь "маркер" с описанием.

Наверх
#20349 - Mon Jan 31 2011 10:11 AM Re: многократный запуск скрипта в выбранном интервале [Re: Philontrop]
Philontrop Offline
stranger

Registered: Thu Dec 02 2010
Записи: 16
9.
Подскажите пожалуйста, какими способами, с бОльшей вероятностью, можно получить чуточку больше внимания разработчиков, на данном форуме?


Отредактировано Philontrop (Mon Jan 31 2011 10:14 AM)

Наверх
#20356 - Mon Jan 31 2011 10:26 AM Re: многократный запуск скрипта в выбранном интервале [Re: Philontrop]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
1. Пересчетом является появление сделки в следующем баре, время может быть разным у каждой бумаги.
2. Отсюда и пересчеты.
3. Особенности реализации, необходимо для формирования сигналов снятия заявок.
4. Tslab отслеживает, что позиция с таким именем открыта и повторно ничего не открывает.
5. то же самое
6. никак

Наверх
#20393 - Mon Jan 31 2011 12:42 PM Re: многократный запуск скрипта в выбранном интервале [Re: Nektodron]
Philontrop Offline
stranger

Registered: Thu Dec 02 2010
Записи: 16
Спасибо за ответы, многое для меня прояснилось.

...несколько уточнений:

Вопрос 4.
В настройках программы пункт "Трейдинг" - "Таймаут заявки, сек" - задается параметр который определяет именно время в течении которого TSLab отслеживает что "позиция с таким именем открыта"? А по окончании этого таймаута, при повторном пересчете и срабатывании тех же условий скрипта и повторной отправки заявке на открытии той-же позиции, позиция с таким же именем вновь будет открыта?

Вопрос 7.
это принципиально реализуемо в текущей версии программы?

Наверх
#20434 - Mon Jan 31 2011 03:04 PM Re: многократный запуск скрипта в выбранном интервале [Re: Philontrop]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
4. "Таймаут заявки, сек" - время в течении которого TSLab ждет подтверждения от сервера, что заявка принята/отклонена. Если подтверждения так и не пришло, то об этом будет написано. Обычно это связано с очень плохой связью с сервером, торговать в этом случае крайне не рекомендуются, т.к. возможны двойные выставления заявок.
7. Если имеется один пересчет - то нет, более того, при обрывах связи, тоже будет повторный пересчет. Скрипт в визуальном редакторе - не восприимчив к повторным пересчетам, логику его работы этим нарушить нельзя. Скрипты на API, которые используют встроенный механизм позиций тоже.

Наверх
#20440 - Mon Jan 31 2011 03:30 PM Re: многократный запуск скрипта в выбранном интервале [Re: Nektodron]
Philontrop Offline
stranger

Registered: Thu Dec 02 2010
Записи: 16
спасибо, ещё небольшое уточнение:
под "встроенным механизмом позиций", который самостоятельно контролирует процесс открытия/закрытия позиций исключая дублирования при многочисленных пересчетах, вы имели ввиду (в случае API) использование: классов TSLab.Script.IPosition и TSLab.Script.IPositionsList ?

Наверх
#20459 - Mon Jan 31 2011 06:47 PM Re: многократный запуск скрипта в выбранном интервале [Re: Philontrop]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Это два интерфейса одного механизма. Просто еще есть возможность управлять заявками самостоятельно.

Наверх
#20460 - Mon Jan 31 2011 06:58 PM Re: многократный запуск скрипта в выбранном интервале [Re: Nektodron]
Philontrop Offline
stranger

Registered: Thu Dec 02 2010
Записи: 16
спасибо, насколько я понял ваш ответ на последний вопрос был - "ДА".
... а что касается механизма при котором есть возможность самостоятельно управлять заявками, но при этом он ("механизм") не отслеживает повторные открытия позиций - это, работа с помощью ордеров (использование класса TSLab.Script.Realtime)?

Наверх


Moderator:  ViL, sar