Кажется понял в чём дело: Структура программы была такая:
Код
void set_tp_sl()
{
TRANS2QUIK_SEND_SYNC_TRANSACTION(...);
// Из функции выше мы уже не вернёмся при любом запросе
}
void trade_cb(...)
{
set_tp_sl()
}
int main()
{
TRANS2QUIK_START_TRADES(trade_cb);
}
Если set_tp_sl() вызывать не из колбэка, то проблем нет. Представители arqa, обратите внимание, мне кажется, что с вашей стороны ошибка.
Добрый день. Возникала проблема - при отправки запроса синхронного запроса через trans2quik отсылающая программа зависает. Запрос выглядит так: ACTION=NEW_STOP_ORDER;TRANS_ID=661;CLASSCODE=QJSIM;SECCODE=SBER; ACCOUNT=NL0011100043;OPERATION=S;QUANTITY=1;STOP_ORDER_KIND=TAKE_PROFIT_AND_STOP_LIMIT_ORDER; OFFSET=0;OFFSET_UNITS=PRICE_UNITS;PRICE=0;STOPPRICE=76.00;STOPPRICE2=75.50; MARKET_STOP_LIMIT=YES;MARKET_TAKE_PROFIT=YES;
Напрягает сам факт зависания. Если была бы какая ошибка (функция что-то ответила), то я бы подправил и не парился, но зачем виснуть? Что вызвало сие поведение?
Спасибо, но думаю, что не подойдёт, массив таблиц ведь может быть пустым и непонятно какой счёт будет в нулевом элементе. У меня такие обстоятельства: 1. Внешняя программа формирует список символов, которые луа скрипт экспортирует (символы и их окружение). 2. Например, мы сформировали список из акций Яндекса и фьючерса на нефть. Очевидно, при отправке заявок счета будут разными 3. lua скрипт получает нефть и Яндекс, как ему запросить счета, которые подходят для совершения торговых действий?
Интересно, почему oco связку (tp и sl) можно привязать "по исполнению" только к лимитникам? Почему нельзя к стоп-ордерам? Может какие технические причины или еще чего? Мне кажется, что было бы совсем не лишним.
При импорте заявок через файл (tri tro), какой механизм исключения одновременного доступа к файлам (с пользовательской программой)? Я думал, что файлы открываются в эксклюзивном режиме, но это не так, проверял.
Здравствуйте! Задача: выставить стоп заявку (пробой уровня), в которой есть sl и tp через trans2quik.dll. Так как if done связки отсутствуют, нужно самому следить исполнилась ли заявка и тогда выставлять sl и tp, верно? Выставил я стоп заявку, в программе начинаю перебирать совершенные сделки (жду когда заявка исполнится). Как мне понять, какая заявка была исполнена? Нужна какая-то метка, найдя которую в исполненных заявках, я могу определить какие sl и tp выставлять (ведь может быть несколько заявок). Какое свойство (при формировании заявки) использовать?
Здравствуйте! Подскажите пожалуйста, как задать цветовые настройки по умолчанию? Например, при открытии графика видеть красно-зелёные свечи на черном фоне или красно зелёный стакан?
Видел видео, там цветовые настройки отличаются от моих по умолчанию, значит возможность существует, как это сделать?
Хотелось бы более конкретно. Дано: * 0 - самы старый бар. * На текущий момента в истории 1000 баров, пользовательская история синхронизирована с серверной. * Связь обрывается, на сервере скапливается 2000 баров. Обозначим: n - самый новый бар (1000) в пользовательской истории, m - самый новый бар в серверной истории. * Связь восстанавливается. * Раз я могу увидеть промежуточное состояние (данные не полностью загружены с сервера), какое промежуточное состояние возможно (наблюдаемо пользователем): 1. 0,1,2,...,n,пропуск,m-2,m-1,m ? Или 2. 0,1,2,...,n,n+1,n+2,пропуск.
Может странный вопрос, но по первмоу типу работает metatrader.
Constantin Constantin пишет: Похоже все пишут свои велосипеды. В моем случае аналогично - написан код для передачи свечей через shared memory, пока не тестировано, клиента надо дописать, но должно все работать.
Как вызываете winapi из lua? Если не сложно, покажите пожалуйста код вызова любой функции.
Здравствуйте. Например, вызвали CreateDataSource(), увидели в полученной таблице наличие данных. Гарантируется ли их синхронность с данным на сервере? Т.е. в тот момент, когда я их увидел, они уже полностью загрузились с сервера/локального quik источника или нужно подождать какое-то время для полной загрузки и не пользоваться ими сразу?
Или другими словами - мы открыли таблицу, сначала там 100 свечек, через секунду там 300, следовательно, таблица подгружается. Или я сразу увижу 300?
Наверняка разберусь со временем, но чужой опыт не помешает.
Готового нет. Сейчас как раз занят разработкой. Обмениваюсь через файлы. В основном получаю ценовую информацию, для торговли api есть. Конечно, лучше без файлов, но какое api дергать не знаю.
По экспорту истории: Я бы хотел экспортировать всю историю по инструменту, период m1, естественно, данные должны обновляться при поступлении в quik. Как это лучше сделать? Например, доступен экспорт в системы тех. анализа, какой там механизм экспорта? В общем, как проще и лучше реализовать? Может написать quik скрипт пишущий в файл (позволяет ли язык сделать это нормально)? Но не хотелось бы осваивать ещё один язык.
Т.е. мне не нужен стакан или bid/last/ask, а нужны свечки m1.
Добрый день. Открыл демо счёт. Глубина истории с начала торговой сессии. Существует ли возможность увеличить (может на реале по-другому)? Что делать, копить историю самому?
Здравствуйте. Я с квиком не знаком, чтобы не тратить время, хотелось бы прояснить пару вопросов. У меня алгоритмы написаны на C++. Могу ли я из стороннего приложения получить доступ к ценовым данным (в виде массива open, close ...) и выставлять заявки? Т.е. меня интересует api. Если да, то в какую сторону копать, какие доп. модули? Хотелось бы без промежуточных звеньев (например, наличие эксперта в MT, который общается с dll) только quik с одной стороны и моя exe с другой (из которой по таймеру дёргаю квик).