МГС  Московская Гигабитная Сеть
 www.umos.su info@umos.su  Выделенные линии Ве/б-Студия Хостинг Collocation
 Тарифы Вопросы и ответы Полезная информация Контакты

Софт >> Quik

Страниц в ветке: 1
murzin
Свой человек


Зарегистрирован: 06/06/2010
Сообщений: 47
Нахождение: Эссен
Функции обратного вызова через API
      #328335 - 16/03/2011 01:21

Подскажите, будьте любезны:

Если мы импортируем транзакции через АПИ, функции обратного вызова - TRANS2QUIK_TRANSACTIONS_REPLY_CALLBACK и TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK - позволяют узнать статус заявки - иполнена она или нет. Или это только для проверки того, выставлена заявка или нет?

Если второе, то как народ узнает чере АПИ, прошла сделка или нет?
Спасибо.


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Spacebar
Генерал
****

Зарегистрирован: 02/07/2007
Сообщений: 1536
Нахождение: Московская область
Re: Функции обратного вызова через API [re: murzin]
      #328392 - 16/03/2011 14:58

Это только результат транзакции - заявка выставлена/отвергнута. Состояние ордера идет через TRANS2QUIK_ORDER_STATUS_CALLBACK, свои сделки - через TRANS2QUIK_TRADE_STATUS_CALLBACK. Для рыночных/лимитных ордеров этого достаточно. Если используются стопы, возможны ситуации, когда стоп успешно выставлен, но при активации ордер отвергнут и никакого ответа не получено (робот продолжает считать стоп активным). Можно, конечно, попытаться "угадывать" по цене или читать из окна сообщений, но, по-моему, надежнее импортировать соответствующие таблицы.

Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
murzin
Свой человек


Зарегистрирован: 06/06/2010
Сообщений: 47
Нахождение: Эссен
Re: Функции обратного вызова через API [re: Spacebar]
      #328399 - 16/03/2011 15:42

Спасибо за ответ! Я оказывается старую инструкцию к квику читал, там этого не было.

Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
murzin
Свой человек


Зарегистрирован: 06/06/2010
Сообщений: 47
Нахождение: Эссен
Re: Функции обратного вызова через API [re: Spacebar]
      #328550 - 18/03/2011 01:04

Извиняюсь, Вы не могли бы пояснить кратко как эти колбэки работают? Не могу понять. Мы передаем через них квику поинтер на функцию? Или просто через них запрашиваем что нужно?

Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Spacebar
Генерал
****

Зарегистрирован: 02/07/2007
Сообщений: 1536
Нахождение: Московская область
Re: Функции обратного вызова через API [re: murzin]
      #328664 - 19/03/2011 03:14

На примере TRANS2QUIK_TRANSACTIONS_REPLY_CALLBACK, остальные реализуются похоже.

При инициализации робота устанавливаем колбек, т.е. вызываем TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK с указателем на написанную нами функцию типа TRANS2QUIK_TRANSACTION_REPLY_CALLBACK. Дальше квик вызывает эту функцию, когда нужно передать состояние транзакции.

В коде как-то примерно так
Code:

//описываем колбек - этот вариант просто отправляет сообщение управляющему ордерами потоку
void __stdcall QuikTransactionCallback(long nTransactionResult, long exErrorCode, long nReplyCode, DWORD dwTransId, double fOrderNum, LPSTR szReplyMessage)
{
LOG("QuikTransactionCallback");
TRANSACTION_CALLBACK_DATA * pData = new TRANSACTION_CALLBACK_DATA;
pData->lTransactionResult = nTransactionResult;
pData->lReplyCode = nReplyCode;
pData->dwTransId = dwTransId;
pData->fOrderNumber = fOrderNum;
PostThreadMessage(g_pBroker->m_dwThreadId, WM_USER_TRANSACTION_CALLBACK, 0, (LPARAM)pData);
}

//функция инициализации, в т.ч. и устанавливает колбеки
OnInitialize(...)
{
<...>
//устанавливаем колбек транзакций
result = TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK((TRANS2QUIK_TRANSACTION_REPLY_CALLBACK)QuikTransactionCallback, &exErrorCode, szErrorMessage, ERROR_MESSAGE_LEN);
if(TRANS2QUIK_SUCCESS != result)
{
//обрабатываем ошибку - не удалось установить колбек
}
<...>



Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
murzin
Свой человек


Зарегистрирован: 06/06/2010
Сообщений: 47
Нахождение: Эссен
Re: Функции обратного вызова через API [re: Spacebar]
      #328765 - 20/03/2011 23:14

Спасибо, вроде разобрался до сих пор.
Непонятный момент - в инструкции написано, что в теле написанной нами колбэк функции можно использовать специальные функции типа long TradeDate (long nTradeDescriptor) и т.д. А где они дифинированы? Как их пользовать?
Еще раз спасибо!


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Spacebar
Генерал
****

Зарегистрирован: 02/07/2007
Сообщений: 1536
Нахождение: Московская область
Re: Функции обратного вызова через API [re: murzin]
      #328773 - 21/03/2011 00:32

Как использовать вроде по прототипам ясно - передаем дескриптор ордера или трейда (последний параметр в TRANS2QUIK_ORDER_STATUS_CALLBACK и TRANS2QUIK_TRADE_STATUS_CALLBACK), получаем искомое значение. Прототипы описаны в trans2quik_api.h

Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Yuriy
Unregistered




Re: Функции обратного вызова через API [re: Spacebar]
      #329103 - 24/03/2011 06:16

Есть пара вопросов по форексу, плиз!!! помогите.
Какое оптимальное количество сделок в день, и на какую сумму, эффективного счета, должна быть каждая ставка.
Для получения прибыли 0.1 % в 10 дней?


Опции: Распечатать пост   Напомнить мне!   Оповестить модератора  
Страниц в ветке: 1



Дополнительная информация
0 зарегистрированных и 3 незарегистрированных пользователей просматривает форум.

Модератор:  podval, EVM, x4x, 000, Akelo, Apprentice, shkolnik, TradingS, konkop, SGN, Socol, TopGuy, untoxa, VovaM, Asd, Igonter 

Распечатать тему

Доступ и ограничения:
      Вы не можете начать новую тему
      Вы не можете отвечать на тему
      HTML выключен
      UBBCode включён

Рейтинг: **
Тема прочитана: 2390

Рейтинг темы

Перейти на

Send letter to Poul | Предупреждение Poul Trade Forum

Powered by UBB.threads™ 6.5.4

Generated in 0.019 seconds in which 0.004 seconds were spent on a total of 12 queries. Zlib compression enabled.