У вас не стоит Flash Player
Page 1 of 7 1 2 3 4 5 6 7 >
Настройки
#4273 - Wed Apr 14 2010 12:25 AM Выставление ордеров через API TSLab
Craft Offline
enthusiast

Registered: Thu Jan 21 2010
Записи: 319
Тема началась здесь, однако она очень важна/серьёзна, набрался смелости вынести её в отдельную ветку, и так:

Originally Posted By: Nektodron
У нас есть все типы ордеров, используйте что угодно...

Давайте разберёмся (поправьте где не прав). Рассмотрим 4 классических вида ордеров:
· MARKET - рыночный
С натяжкой можно использовать (если сжать/разжать 1 мин. т/ф до требуемого т/ф)
BuyAtMarket(int barNum, double shares, string signalName) - покупка по цене открытия следующего бара.
SellAtMarket(int barNum, double shares, string signalName) - продажа по цене открытия следующего бара.
CloseAtMarket(int barNum, string signalName) - закрытие по цене открытия следующего бара.

· LIMIT - лимитированный
Вы утверждаете, что Лимитники - это:
CloseAtProfit(int barNum, double price, string signalName)
CloseAtStop(int barNum, double price, string signalName)
и действительно в этих ордерах есть поле Price - цена.

· STOP – стоп-приказ
CloseAtProfit(int barNum, double price, string signalName)
CloseAtStop(int barNum, double price, string signalName)
Хотя более очевидными видятся при наступлении определённого условия эти приказы срабатывающие по рынку при наступлении условия (Опять же по какому рынку - цене открытия следующего бара?):
BuyIfGreater(int barNum, double shares, double price, string signalName)
BuyIfLess(int barNum, double shares, double price, string signalName)
SellIfGreater(int barNum, double shares, double price, string signalName)
SellIfLess(int barNum, double shares, double price, string signalName)
В случае использованя их, как Стоп следует, наверное, обозначить их не Buy/Sell, а Close.

· STOP- LIMIT - лимитированный стоп-приказ
Вы утверждаете, что в API используются все типы ордеров, а какой тогда подойдёт к этому типу, все имеющие в TSLab описаны выше, у них либо вообще нет поля цены - открытие/закрытие по маркету, либо одно ценовое поле - для лимита. STOP- LIMIT необходимо два ценовых поля.
Для справки: STOP-LIMIT - Стоп-Лимит приказ отличается от обычного приказа Стоп только тем, что на биржу при достижении цены STOP выставляется лимитированная заявка с ценой исполнения LIMIT. Пользователь, соответственно должен ввести две цены: в поле «Цена STOP» – цену, которая определяет момент выставления заявки на биржу, и в поле «Цена LIMIT» – цену, по которой заявка будет выставлена и, возможно, исполнена.

Выводы:
1. Как-то странно обстоит дело с LIMIT.
2. Ещё раз повторяю - нет STOP- LIMIT!!!

Originally Posted By: Nektodron
...Если вас не устраивает этот подход, то предлагайте другой, только с таблицей, что делать если случилось то-то.

Предложение:
Не проще сделать систему выставления ордеров, как в API SmartCOM:


















Более чёткое изображение
Всё просто и лаконично, подставляй цифры и торгуй... Не надо изобретать велосипед - пользователи в сприпте сами пропишут условия "Купить/Продать если больше/меньше", нужны адекватные реалиям (торговым платформам) ордера, как во всех лабах, а не адаптация под графический редактор.

Таблица (если случилось что-то), подойдёт Ваша старая - чуть что не так, всё приводится в соответствие по Маркету.

Наверх
#4274 - Wed Apr 14 2010 12:47 AM Re: Выставление ордеров через API TSLab [Re: Craft]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
В TSLab основой является не конкретная заявка, а позиция (пара заявок вход и выход).

В случае SmartCOM (для длинных позиций)
BuyIfLess (Открытие если меньше) - LIMIT заявка на покупку с ценой заданной в параметре
BuyIfGreater (Открытие если больше) - STOP-LIMIT заявка на покупку с ценой STOP из параметра и ценой LIMIT = STOP + SLIPPAGE (проскальзывание)

CloseAtProfit (Закрытие если больше) - LIMIT заявка на продажу с ценой заданной в параметре
CloseAtStop (Закрытие если меньше) - STOP-LIMIT заявка на продажу с ценой STOP из параметра и ценой LIMIT = STOP - SLIPPAGE (проскальзывание)

Для коротких позиций все по аналогии.

В случае Транзак, используются условные заявки, а не STOP-LIMIT. STOP-LIMIT - это частный случай условной заявки, других SmartCOM не поддерживает.

Если честно, мне не понятно, что вам не понятно.

Наверх
#4275 - Wed Apr 14 2010 01:01 AM Re: Выставление ордеров через API TSLab [Re: Nektodron]
Craft Offline
enthusiast

Registered: Thu Jan 21 2010
Записи: 319
Originally Posted By: Nektodron
Если честно, мне не понятно, что вам не понятно.
Это Вам, как разработчику всё понятно smile , а другим из-за отсутствия внятной документации по API - ничего не понятно.
Чтобы тема ветки была закрыта, добавьте ещё STOP и MARKET.

Originally Posted By: Nektodron
Если честно, мне не понятно, что вам не понятно.
Наверное это не понимание проистекает из работы с ордерами Omega/TS/MultiCharts и SmartTradeCOM/SmartCOM, в этих программах цены СТОП и ЛИМИТ задаются внутри приказа в отделённых запятой ячейках, а не через ПРОСКАЛЬЗЫВАНИЕ.

Наверх
#4281 - Wed Apr 14 2010 11:07 AM Re: Выставление ордеров через API TSLab [Re: Nektodron]
ast Offline
addict

Registered: Tue Mar 23 2010
Записи: 415
Такое впечатление, что разработчики и пользователи говорят на разных языках. Сколько раз уже в форуме написали, что нужна нормальная документация. Причем документация, написанная НЕ с позиции разработчика, а с позиции пользователя. Лучше всего, чтобы ее писал именно пользователь, не знающий особенности разработки.

Теперь к конкретике.
Вот откуда пользователь может предположить, что:
Originally Posted By: Nektodron

CloseAtStop (Закрытие если меньше) - STOP-LIMIT заявка на продажу с ценой STOP из параметра и ценой LIMIT = STOP - SLIPPAGE (проскальзывание)


что цена LIMIT образуется как STOP - SLIPPAGE ??

К тому же, я так понимаю, slippage устанавливается один раз для всего скрипта? Как его изменить для конкретной сделки?


И еще я все-таки не понимаю, как выставить лимитную заявку, чтобы она была актуальна не только на следующем баре, но и дальше - до тех пор пока не сработает или пока я ее не сниму?

Наверх
#4284 - Wed Apr 14 2010 11:53 AM Re: Выставление ордеров через API TSLab [Re: ast]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Если вы хотите, управлять заявками самостоятельно - это можно делать через API.

Наверх
#4286 - Wed Apr 14 2010 12:26 PM Re: Выставление ордеров через API TSLab [Re: Nektodron]
ast Offline
addict

Registered: Tue Mar 23 2010
Записи: 415
Объясните, как? И лучше с примером.

Наверх
#4287 - Wed Apr 14 2010 12:26 PM Re: Выставление ордеров через API TSLab [Re: Nektodron]
Craft Offline
enthusiast

Registered: Thu Jan 21 2010
Записи: 319
Originally Posted By: Nektodron
Если вы хотите, управлять заявками самостоятельно - это можно делать через API.
Мы об этом и говорим. Nektodron, по аналогии с LIMIT и STOP-LIMIT распишите пожалуйста STOP и MARKET, чтобы было описание от разработчика, а не домыслы пользователей. Хочу вынести описание ордеров в первый пост темы, чтобы служило справочником для клиентов по ордерам.

Наверх
#4454 - Sat Apr 17 2010 05:03 PM Re: Выставление ордеров через API TSLab [Re: Craft]
Denis Offline
member

Registered: Tue Jul 21 2009
Записи: 152
Хочу выразить нашу благодарность за поднятый вопрос.

По результатам анализа принято решение внести ряд изменений в АПИ и снабдить блок критических функций таких как функции работы с позициями расширенным описанием.

Пользуясь случаем, хочу попросить Вас высказать и другие замечания по АПИ, если они есть. Это позволит нам правильно сбалансировать задачи и как следствие решить проблемы быстрее.

Наверх
#4456 - Sat Apr 17 2010 09:13 PM Re: Выставление ордеров через API TSLab [Re: Denis]
Craft Offline
enthusiast

Registered: Thu Jan 21 2010
Записи: 319
Originally Posted By: Denis
Хочу выразить нашу благодарность за поднятый вопрос.
По результатам анализа принято решение внести ряд изменений в АПИ и снабдить блок критических функций таких как функции работы с позициями расширенным описанием.
Denis, будем очень признательны (пользователи), если будет сделано детальное описание всех возможных для использования в программе ордеров.
Quote:
Пользуясь случаем, хочу попросить Вас высказать и другие замечания по АПИ, если они есть. Это позволит нам правильно сбалансировать задачи и как следствие решить проблемы быстрее.
И самое основное/главное, необходима возможность выставлять при открытии бара (исходя из расчётов алгоритма пользователя) на биржу Лимитные ордеры (для тейкпрофита) и Стоп/Стоп-Лимиты (для фиксации по расчётной цене убытков), причём необходимо, чтобы в этих типах ордеров была возможность задавать кол-во контрактов/акций для возможности частичного закрытия позиции (в случая тейкпрофита и стопа) и переворота (в случае стоп/стоп-лимита, удвоенное кол-во контрактов позволит изменить позицию на противоположенную за одну операцию).
Понятно, что этим программисты заниматься не любят, т. к. это требует при размещении ордера на бирже отслеживать его состояние, ID ордера, чтобы в случае неисполнения ордера при открытии нового бара снимать неисполненный ордер по его ID и заменять новым ордером с учётом произошедших ценовых изменений в исторических данных за анализируемом периоде и так на каждом баре, однако это единственный путь создать программу действительно профессионального уровня, а не приблуду по отслеживанию изменения состояния позиции в графическом интерфейсе программы. Больно смотреть, как на 30 мин. таймфреме цена достигла заданного условия, а программа ожидает десятки минут до закрытия бара и после этого производится сделка вместо того чтобы при открытии бар разместить требуемый ордер на биржу для ожидания ценовых изменений. Задача эта не малая, но и решаемая в рамках одной динамической библиотека, рано или поздно эту задачу надо будет решать/учитывать и лучше сделать это раньше.

С уважением к проделанной вашим коллективом работе,
Craft

Наверх
#4465 - Sun Apr 18 2010 03:19 PM Re: Выставление ордеров через API TSLab [Re: Craft]
Denis Offline
member

Registered: Tue Jul 21 2009
Записи: 152
Позвольте задать Вам ряд уточняющих вопросов

И самое основное/главное, необходима возможность выставлять при открытии бара (исходя из расчётов алгоритма пользователя) на биржу Лимитные ордеры (для тейкпрофита) и Стоп/Стоп-Лимиты (для фиксации по расчётной цене убытков),

Правильно ли я понимаю Вас, что в данном случае не устраивает именно тот факт что стоп (и другие возможные ордера) выставляются на следующем баре?

причём необходимо, чтобы в этих типах ордеров была возможность задавать кол-во контрактов/акций для возможности частичного закрытия позиции (в случая тейкпрофита и стопа)

Возможность дробления позиции кажется с одной стороны удобной возможностью, с другой, это довольно банальный вопрос проектирования стратегии. Я уверяю вас что текущее апи вполне позволяет имплементировать стратегии с сайзингом позиции, более того, мы используем такие стратегии в арбитражных схемах на живых деньгах.
В связи с этим, хочется более предметно понять, какого рода стратегии не реализуемы в рамках текущего апи.

и переворота (в случае стоп/стоп-лимита, удвоенное кол-во контрактов позволит изменить позицию на противоположенную за одну операцию).

Данная операция свойственна трейдерам работающим руками, как правило, на симметричных рынках, типа валют или фьюча, скажем. Я понимаю, что существуют стратегии - перевертыши и их имплементация на первый взгляд кажется логичной посредством сделок с двойными объемами. В текущей версии АПИ "красиво" это не реализуется, Вы правы. Тем не менее задача как таковая вполне решаема.

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

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

Хотел было оставить эту сентенцию без внимания, но решил таки спросить.

Какие из существующих и РЕАЛЬНО торгующих на ОТЕЧЕСТВЕННОМ фондовом или срочном рынке АПИ вы считаете действительно профессиональными?

Я очень хотел бы получить ответ на этот свой вопрос.

Вопрос далеко не праздный, поскольку подключение к отечественным брокерам моментально создает ряд проблем и "профессионального уровня" АПИ зачастую оказываются банально неработоспособны, невзирая на всю свою "сервисность"

Больно смотреть, как на 30 мин. таймфреме цена достигла заданного условия, а программа ожидает десятки минут до закрытия бара и после этого производится сделка вместо того чтобы при открытии бар разместить требуемый ордер на биржу для ожидания ценовых изменений. Задача эта не малая, но и решаемая в рамках одной динамической библиотека, рано или поздно эту задачу надо будет решать/учитывать и лучше сделать это раньше.
Я не хочу спорить о стратегиях, но что мешает использовать два таймфрейма в рамках одного скрипта? Причем если ваш базовый считает от минут или даже 30 минут, то стоп, трейл, да все что угодно, можно делать даже от 1 секунды.

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

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

Более качественное документирование текущего АПИ признано приоритетной задачей и с этой стороны я надеюсь мы сможем вас порадовать быстрее.

Наверх
#4468 - Sun Apr 18 2010 06:44 PM Re: Выставление ордеров через API TSLab [Re: Denis]
ast Offline
addict

Registered: Tue Mar 23 2010
Записи: 415
Все-таки может кто-то объяснить как в текущем API выставить лимитную заявку, чтобы она была актуальна не только на следующем баре, но и дальше - до тех пор пока не сработает или пока я ее не сниму?

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

Наверх
#4470 - Sun Apr 18 2010 09:07 PM Re: Выставление ордеров через API TSLab [Re: Denis]
Craft Offline
enthusiast

Registered: Thu Jan 21 2010
Записи: 319
Originally Posted By: Denis
Позвольте задать Вам ряд уточняющих вопросов
И самое основное/главное, необходима возможность выставлять при открытии бара (исходя из расчётов алгоритма пользователя) на биржу Лимитные ордеры (для тейкпрофита) и Стоп/Стоп-Лимиты (для фиксации по расчётной цене убытков),
Правильно ли я понимаю Вас, что в данном случае не устраивает именно тот факт что стоп (и другие возможные ордера) выставляются на следующем баре?
Правильно!!! Ответьте, а при чём следующий бар, если расчётное значение стопа или значения для переворота позиции достигнуто на текущем баре (про тейкпрофит молчу, в этом случае задержка может быть в плюс)?
Quote:
причём необходимо, чтобы в этих типах ордеров была возможность задавать кол-во контрактов/акций для возможности частичного закрытия позиции (в случая тейкпрофита и стопа)
Возможность дробления позиции кажется с одной стороны удобной возможностью, с другой, это довольно банальный вопрос проектирования стратегии. Я уверяю вас что текущее апи вполне позволяет имплементировать стратегии с сайзингом позиции, более того, мы используем такие стратегии в арбитражных схемах на живых деньгах.
В связи с этим, хочется более предметно понять, какого рода стратегии не реализуемы в рамках текущего апи.

Да, осёкся, извините, надо было написать не необходимо, а - желательно. В рамках вашего API реализуемо большинство стратегий. Реализовывать можно по разному, к примеру можно, как у вас:
LEn - LXn, дубль LE`n - LX`n, дубль LE``n - LX``n, плюс SEn - SXn и т. д.
а можно:
LEn - LХn/2 - LХn/4 - LХSEn+n/4 - SXn.
Спорить не буду, кому что нравится.
Quote:
и переворота (в случае стоп/стоп-лимита, удвоенное кол-во контрактов позволит изменить позицию на противоположенную за одну операцию).Данная операция свойственна трейдерам работающим руками, как правило, на симметричных рынках, типа валют или фьюча, скажем. Я понимаю, что существуют стратегии - перевертыши и их имплементация на первый взгляд кажется логичной посредством сделок с двойными объемами.
Опять же, видимо, дело вкуса, прикинте двойной переворот для вашей фирменной Hi_Low - логичен переворот по стопу, а не закрытие по Стопу + открытие новой позиции по тому же условию.
Quote:
текущей версии АПИ "красиво" это не реализуется, Вы правы. Тем не менее задача как таковая вполне решаема.
Мы планируем и потихоньку проектируем следующую генерацию как продукта так и АПИ и там оно будет более "сервисным", но в текущей имплементации "чистый переворот" вряд ли возможно сделать.
Заметьте, дело опять же в возможности выставления удвоенной величины контрактов в Стоп ордере...
Quote:
Понятно, что этим программисты заниматься не любят, т. к. это требует при размещении ордера на бирже отслеживать его состояние, ID ордера, чтобы в случае неисполнения ордера при открытии нового бара снимать неисполненный ордер по его ID и заменять новым ордером с учётом произошедших ценовых изменений в исторических данных за анализируемом периоде и так на каждом баре, однако это единственный путь создать программу действительно профессионального уровня, а не приблуду по отслеживанию изменения состояния позиции в графическом интерфейсе программы.

Хотел было оставить эту сентенцию без внимания, но решил таки спросить.

Какие из существующих и РЕАЛЬНО торгующих на ОТЕЧЕСТВЕННОМ фондовом или срочном рынке АПИ вы считаете действительно профессиональными?

Я очень хотел бы получить ответ на этот свой вопрос.
Denis, в чём сентенция (нравоучительное изречение)? и это после снятой шляпы в низком поклоне по поводу проделанной работы?
В этом месте, откровенно, расстроили, внутренне думал/надеялся, что ваш коллектив по аналогии с Wealth-Lab ориентирован на мировой уровень, причём здесь примеры с ОЧЕЧЕСТВЕННОГО рынка (Где о нём вообще упоминание, и с чего Вы взяли, что достойные примеры в его юношеско/отроческом возрасте надо искать именно на нём? Я очень хотел бы получить ответ на этот свой вопрос.), в этом случае ваш коллектив (IMHO) должен был сделать приблуду для Wealth-Lab по отслеживанию изменения позиций. В выбранном вашим коллективом пути возможна, лишь, одна народная сентенция: Взялся за гуж не говори, что не туж.
Quote:
Вопрос далеко не праздный, поскольку подключение к отечественным брокерам моментально создает ряд проблем и "профессионального уровня" АПИ зачастую оказываются банально неработоспособны, невзирая на всю свою "сервисность"
Спору нет.
Quote:
Больно смотреть, как на 30 мин. таймфреме цена достигла заданного условия, а программа ожидает десятки минут до закрытия бара и после этого производится сделка вместо того чтобы при открытии бар разместить требуемый ордер на биржу для ожидания ценовых изменений. Задача эта не малая, но и решаемая в рамках одной динамической библиотека, рано или поздно эту задачу надо будет решать/учитывать и лучше сделать это раньше.[quote]
Я не хочу спорить о стратегиях, но что мешает использовать два таймфрейма в рамках одного скрипта? Причем если ваш базовый считает от минут или даже 30 минут, то стоп, трейл, да все что угодно, можно делать даже от 1 секунды.
Предложенный метод то же считаю наилучшим компромиссом из возможного, есть лишь одна загвоздка - малый горизонт предоставляемых исторических данных для предложенных таймфреймов (сыкунды и минуты) через ваш интрефейс брокером ИТ инвест.
Quote:

Я вполне готов признать, что текущая версия АПИ не настолько развита в плане удобств имплементации "чего угодно и в лоб"
но возможности и сейчас очень велики. Я и коллектив планируем развитие АПИ и нам важен Ваш отклик. В то же время наш приоритет сейчас таков, что мы хотим дать пользователю именно максимум возможностей, пусть не всегда самым простым путем, но возможностей реальных, и действительно работающих при подключении к отечественным брокерам, и лишь затем "заворачивать в обертки" улучшая простоту использования.
Давайте говорить на чистоту, выставление ордеров с варируемым количеством контрактов загвоздка вашего софта.
Quote:

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

Более качественное документирование текущего АПИ признано приоритетной задачей и с этой стороны я надеюсь мы сможем вас порадовать быстрее.
Уважаемые разработчики, в очередной раз снимаю шлюпу в глубоком поклоне за проделанную работу по разработке интерфейса, графического редактора и оптимизатора. В плане возможности исполнения ордеров, софт вашей компании в нынешней реализации оставляет желать лучшего, т. к. брокеры вряд ли согласятся на дополнительную загрузку своих серверов по предоставлению глубины горизонта исторических дынных для анализа на малых таймфреймах (для использования сжатия, да и в этом случае, давайте смотреть правде в глаза, закрытие будет произведено не по Лимит/Стоп ордеру размещённому на бирже, а по цене открытия нового бара при распиле рабочего таймфрейма), следовательно необходимо предоставить пользователям возможность выставления Лимитов/Стопов/Стоп-Лимитов на биржу при открытии свечи для исполнения по расчётному условию с возможностью переворота.

P. S. Denis, подскажите, как в Wealth-Lab исполняются тейкпрофит и стоп - по факту достижения ценой расчётного значения внутри бара или по закрытию бара?

Наверх
#4527 - Mon Apr 19 2010 01:12 PM Re: Выставление ордеров через API TSLab [Re: Craft]
ast Offline
addict

Registered: Tue Mar 23 2010
Записи: 415
Подскажите, как получается, что в "Управление торговлей скриптами" в колонках "Короткие поз." и "Длинные поз." появляются отрицательные значения?
Как это вообще может быть?

И еще раз повторю свой вопрос, на который никак не могу получить ответ:
Все-таки может кто-то объяснить как в текущем API выставить лимитную заявку, чтобы она была актуальна не только на следующем баре, но и дальше - до тех пор пока не сработает или пока я ее не сниму?

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

Наверх
#4530 - Mon Apr 19 2010 01:16 PM Re: Выставление ордеров через API TSLab [Re: ast]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Как появляются отрицательные значения - нужно разбираться. Возможно есть двойные сделки?

Что касается API, то в текущем через позиции - это сделать нельзя. Можно выставлять заявки вручную через ISecurityRt, но и рассчитывать позиции в этом случае придется тоже вручную.

Наверх
#4535 - Mon Apr 19 2010 01:46 PM Re: Выставление ордеров через API TSLab [Re: Nektodron]
ast Offline
addict

Registered: Tue Mar 23 2010
Записи: 415
Originally Posted By: Nektodron
Как появляются отрицательные значения - нужно разбираться. Возможно есть двойные сделки?


Я, кажется, понял, почему это происходит. У меня одновременно работает два разных скрипта. Но название позиции у них одинаковое - "Long". Поэтому второй скрипт ошибочно полагает, что позиции уже открыта по:
IPosition le = source.Positions.GetLastActiveForSignal("Long");
и закрывает ее.
Может так быть?

Originally Posted By: Nektodron
Что касается API, то в текущем через позиции - это сделать нельзя. Можно выставлять заявки вручную через ISecurityRt, но и рассчитывать позиции в этом случае придется тоже вручную.


Можете привести пример кода, как это сделать через ISecurityRt?

Наверх
#4537 - Mon Apr 19 2010 01:58 PM Re: Выставление ордеров через API TSLab [Re: ast]
Nektodron Offline

Carpal Tunnel

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

var rtFORTS = (ISecurityRt) security;
rtFORTS.NewOrder(OrderType.Limit, isBuy, price, quintity, "Entry");

Наверх
#4539 - Mon Apr 19 2010 02:07 PM Re: Выставление ордеров через API TSLab [Re: Nektodron]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
А вот пример функции, рассчитывающей текущую позицию (curQty) и ее учетную цену (curPrice).
Code:
private void CalcCurrentPrice(ISecurityRt rtSec, out double curQty, out double curPrice)
{
	curQty = 0;
	curPrice = 0;
	if (rtSec != null)
	{
		var orders = rtSec.Orders.OrderBy(ord => ord.Date);
		foreach (var order in orders)
		{
			if (order.IsExecuted)
			{
				int bs = (order.IsBuy ? 1 : -1);
				double qty = order.Quantity * bs;
				double price = order.Price;
				double newQty = curQty + qty;
				bool isGrowPos = Math.Abs(newQty) > Math.Abs(curQty);
				if (isGrowPos)
				{
					curPrice = newQty == 0 ? 0 : (curQty*curPrice + qty*price)/newQty;
				}
				curQty = newQty;
			}
		}
	}
	curPrice = curQty == 0 ? 0 : curPrice;
}

Наверх
#4540 - Mon Apr 19 2010 02:09 PM Re: Выставление ордеров через API TSLab [Re: Nektodron]
ast Offline
addict

Registered: Tue Mar 23 2010
Записи: 415
Originally Posted By: Nektodron
Если у скриптов разное имя, то чужие позиции они видеть не должны. Одинаковое имя сигнал не причем.


Да, действительно после изменения имени ничего не изменилось.
Почему же тогда так происходит?
Вот код (упрощенно):

Code:
IPosition le = source.Positions.GetLastActiveForSignal("Long2");

                
if (le == null)
{
source.Positions.BuyIfLess(i + 1, 1, source.Bars[i].Low - shift, "Long2");
}
else
{
 le.CloseAtProfit(i + 1, le.EntryPrice + profit, "L_profit");
}

Так вот, почему-то периодически срабатывает заявка по закрытию - "L_profit", хотя никакой позиции нет.

Наверх
#4541 - Mon Apr 19 2010 02:10 PM Re: Выставление ордеров через API TSLab [Re: Nektodron]
ast Offline
addict

Registered: Tue Mar 23 2010
Записи: 415
Originally Posted By: Nektodron
А вот пример функции, рассчитывающей текущую позицию (curQty) и ее учетную цену (curPrice).

Спасибо, буду изучать!

Наверх
#4544 - Mon Apr 19 2010 02:17 PM Re: Выставление ордеров через API TSLab [Re: ast]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
По заявкам нужно разбираться. Пришлите на http://support.tslab.ru/ лог и скриншот с окном "Мои заявки" и "Мои сделки", на котором видна такая ситуация и видны номера заявок.


Отредактировано ViL (Fri May 17 2013 02:12 AM)

Наверх
Page 1 of 7 1 2 3 4 5 6 7 >


Moderator:  ViL, sar