Список форумов Trading tools Trading tools
?нструменты для торговли на FORTS
 

На сайт ttools.ru
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы  RSS-Подписка на форумRSS-Подписка на форум   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

вопрос про запись в файл и BestBuyQuotePP

 
Начать новую тему   Ответить на тему    Список форумов Trading tools -> QuikOrdersDOM SDK
Предыдущая тема :: Следующая тема  
Автор Сообщение
prostrate



Зарегистрирован: 03.02.2012
Сообщения: 3

СообщениеДобавлено: Пт Фев 03, 2012 2:51 pm    Заголовок сообщения: вопрос про запись в файл и BestBuyQuotePP Ответить с цитатой

Доброго времени суток!
имется следующий код
function AT_LIB_CYCLE: Cardinal ; stdcall;
begin
aBestBuyP:=R.BestBuyQuotePP^;
append(f3);
writeln(f3,FloatToStr(aBestBuyP.Price));
closefile(f3);
end;
В процессе работы в логе периодически появляются ошибки ошибка выполнения функции цикла библиотеки автотрейдинга:Access violation at address 02722A83 in module 'strategy.dll'. Read of address 00000000.
Если убрать из кода запись в файл, то в логе ошибок нет. Что не так с записью в файл? Цикл опроса 1200мс.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Danila
Site Admin


Зарегистрирован: 24.07.2009
Сообщения: 837

СообщениеДобавлено: Пт Фев 03, 2012 6:36 pm    Заголовок сообщения: Ответить с цитатой

надо заменить
Код:
writeln(f3,FloatToStr(aBestBuyP.Price));
на

Код:
if Assigned(aBestBuy) writeln(f3,FloatToStr(aBestBuyP.Price));


не всегда в стакане есть bestbuy, не всегда есть возможность его получить. В этих случаях aBestBuy будет равен nil
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
prostrate



Зарегистрирован: 03.02.2012
Сообщения: 3

СообщениеДобавлено: Пт Фев 03, 2012 11:55 pm    Заголовок сообщения: Ответить с цитатой

странно, что в стакане не всегда может быть лучший спрос или предложение...
получается, извлечь указатель на несуществующий объект можно без ошибки, а вот вывести его нет?
а если надо гарантированно достать текущую цену, а вытащить цену последней сделки из таблицы динамических параметров бумаги не всегда корректно получается, то может покатить этот код?
aQuoteArrayP:=R.QuotesArrayPtr;
while (aQuoteArrayP[i].Direction <> odSell) do
i:=i+1;
aPrice:=aQuoteArrayP[i].Price;
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Danila
Site Admin


Зарегистрирован: 24.07.2009
Сообщения: 837

СообщениеДобавлено: Сб Фев 04, 2012 12:52 pm    Заголовок сообщения: Ответить с цитатой

prostrate писал(а):
странно, что в стакане не всегда может быть лучший спрос или предложение...
получается, извлечь указатель на несуществующий объект можно без ошибки, а вот вывести его нет?
а если надо гарантированно достать текущую цену, а вытащить цену последней сделки из таблицы динамических параметров бумаги не всегда корректно получается, то может покатить этот код?
aQuoteArrayP:=R.QuotesArrayPtr;
while (aQuoteArrayP[i].Direction <> odSell) do
i:=i+1;
aPrice:=aQuoteArrayP[i].Price;

В стакане вообще может не быть лучшего спроса или предложения. Перебирать строчки в стакане без учета их количества некорректно. ?х может быть например 0 в текущий момент
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Trading tools -> QuikOrdersDOM SDK Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB


Яндекс.Метрика