Тема началась здесь, однако она очень важна/серьёзна, набрался смелости вынести её в отдельную ветку, и так:
У нас есть все типы ордеров, используйте что угодно...
Давайте разберёмся (поправьте где не прав). Рассмотрим 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!!!
...Если вас не устраивает этот подход, то предлагайте другой, только с таблицей, что делать если случилось то-то.
Предложение:
Не проще сделать систему выставления ордеров, как в API SmartCOM:
Более чёткое изображение Всё просто и лаконично, подставляй цифры и торгуй... Не надо изобретать велосипед - пользователи в сприпте сами пропишут условия "Купить/Продать если больше/меньше", нужны адекватные реалиям (торговым платформам) ордера, как во всех лабах, а не адаптация под графический редактор.
Таблица (если случилось что-то), подойдёт Ваша старая - чуть что не так, всё приводится в соответствие по Маркету.