-
Notifications
You must be signed in to change notification settings - Fork 0
/
description.txt
44 lines (39 loc) · 4.56 KB
/
description.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
1) проект собиратеся с помощью gradle(http://www.gradle.org/), если он у вас не установлен:
- для сборки на вашем компьюторе, можно использовать скрипты, которые сами зарузят необходимое и
запустят блид. Все было сгенерированно согласно https://www.gradle.org/docs/current/userguide/gradle_wrapper.html
2) структура проекта согласно(http://www.gradle.org/docs/current/userguide/java_plugin.html и https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html)
3) тестирование проекта проходит в два этапа, с помощью TestNG (http://testng.org/doc/index.html)
- тестирование основного функционала
- интеграционные тесты
Объяснить структуру
Дополнения к формату данных (к LOBSTER_SampleFiles_ReadMe.txt):
0) файлов OrderBook может быть больше чем один, но все они должны быть обработанны последовательно
1) четкое соответсивие файла с OrderBook и Message, никаких перекрытий
одинаковые (TICKER, Year-Month-Day_StartTime_EndTime, LEVEL), если несоответствие - файл пропускается.
2) обработка начинается с гарантией, что только текущий клиент имеет достпу к файлу(файлы не модифицируется до тех пор пока работает клиент)
2) полное соответствие строк в файле с orderBook и message. - одно сообщение, одни orderBook
3) обработка идет в алфавитном порядке
Дополнение к формату данных файла TICKER_Year-Month-Day_StartTime_EndTime_message_LEVEL.csv
1) даты в messages хранятся в количестве секунд с полуночи (дробная часть - это миллисикунды)
2)
Дополнение к формату данных файла TICKER_Year-Month-Day_StartTime_EndTime_orderbook_LEVEL
1)Bid и ASK могут быть существенными, Bid и ASK могут быть либо (-9999999999 and 9999999999) либо 0<Bid<9999999999, AKS 0<ASK<9999999999.
2)объем это целочисленное, может быть >=0
3) если в уровне bidVolum or AskVolum=0 - PriceLevel игнорируется
Расширение Application Specs
0) Submit and Send - same operations, Cansel order - its mean Close Order( If Sell order - opened by Bid closed by Ask, if Buy order - opened by Ask, sel by BId)
1) Ордера отправляются только по операции Sell
2) отчет сохраняется в файл с таким же именем
3) В один момент может быть открыт только один ордер.
4) Цена продажи - самая высокая из тех Bid, для которых доступен объем>=500 (new Order)
5) Цена покупки - самая низкая из тех Ask, для которых доступен объем >=100 (cancel order),
6) если "сервер" не вернул ошибок - значит Send or Cancel successfull
7) Дата создания оредера текущая дата, переведенная в GMT
8) ид ордера - уникальное число за время работы клиента
7) общение проходит через json, делается бесконечное количество попыток отослать ордер.
- отправка сообщение (ордера на открытия или закрытия)
- получение результата (результирующий ордер)
8) результирующий ордер записывате записывается в файл по маске TICKER_Year-Month-Day_StartTime_EndTime_orders_LEVEL.
в случае невыполнения правил формата обработка текущего файла преращается сообщением Fail order
9) при мерезапуске клиента обработка начинается заново, файл с результатом пересоздается.