Если вы используете флажок
<input
type='checkbox'
onChange={this.checkboxHandler}
/>
stopPropagation и stopImmediatePropagation не будут работать.
Поскольку вы должны использовать onClick = {this.checkboxHandler}
Что ж, с положительной стороны, у вас есть здравый смысл, чтобы сначала запросить ввод . Это ставит вас впереди 90% людей, незнакомых с проектированием баз данных.
timeframeID
относится к symbolID
? TEXT
. С точки зрения производительности, а также с точки зрения удобства использования это недопустимо. открытия
, high
, low
, close
лучше хранить как десятичные или денежные типы, или, предпочтительно, как поле INTEGER
с отдельным полем INTEGER
, в котором хранится делитель, поскольку наименьшая разрешенная доля цены (центы, восьмерки и т. д.) зависит от биржи. Прошу прощения, если все это не кажется слишком «конструктивным», тем более, что сейчас я слишком сонный, чтобы предлагать более удобную альтернативу. Я надеюсь, что вышеизложенного достаточно, чтобы направить вас на путь.
Я ' Я не уверен, какое значение добавляет Таймфрейм
- это кажется ненужным усложнением, но это может быть то, чего я не понимаю ;-) Может ли Таймфрейм иметь более одного OHLCV? Если нет, то я бы предложил их объединить.
Я также хотел бы отметить, что биржевые котировки меняются время от времени по любому количеству причин. Это не частое событие, но бывает. Если вы думаете о работе с данными как с временными рядами, вам следует знать об этой проблеме, чтобы вы могли справиться с ней, когда она возникнет, если не раньше. Если вы не отслеживаете акции (например, вы работаете над фьючерсным приложением), то к этому совету можно отнестись с должным вниманием.
Опять же, в основном относится к акциям, дробление упоминалось в другом месте, и вы можете захотеть рассматривать дивиденды - акция » Цена обычно будет падать на сумму дивидендов (или, точнее, на ее текущую стоимость) на дату экс-дивидендов, что может быть неправильно истолковано, если вы не знаете, что подтвержденный будущий денежный поток был причиной. Проблемы с правами тоже могут быть интересными.
Если вы планируете просматривать ряд данных для определенного символа, я бы посоветовал посмотреть, какого рода производительность вы собираетесь получить. По крайней мере, убедитесь, что у вас есть соответствующий индекс.
собираюсь получить. По крайней мере, убедитесь, что у вас есть соответствующий индекс. собираюсь получить. По крайней мере, убедитесь, что у вас есть соответствующий индекс.Мы пытались найти правильную структуру базы данных для хранения большого количества данных в течение длительного времени. Решение ниже является результатом более чем 6 лет опыта. Теперь он работает безупречно для нашего количественного анализа.
Мы смогли хранить сотни гигабайт внутридневных и ежедневных данных, используя эту схему на SQL Server:
Symbol - char 6
Date - date
Time - time
Open - decimal 18, 4
High - decimal 18, 4
Low - decimal 18, 4
Close - decimal 18, 4
Volume - int
Все торговые инструменты хранятся в одной таблице. У нас также есть кластерный индекс на символ, столбцы даты и времени.
Для ежедневных данных у нас есть отдельная таблица и не используйте столбец времени. Объем DataType также Bigint вместо INT.
Производительность? Мы можем получить данные из сервера в вопросе миллисекунд. Помните, размер базы данных почти 1 терабайт.
Мы приобрели все наши данные исторического рынка с веб-сайта Kibot: http://www.kibot.com/