I've modified the SQL to make the time column be a DECIMAL(17,10).
And I adjusted the Tick class accordingly.SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';DROP SCHEMA IF EXISTS `tick_db` ;CREATE SCHEMA IF NOT EXISTS `tick_db` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;USE `tick_db` ;-- ------------------------------------------------------- Table `ticks`-- -----------------------------------------------------DROP TABLE IF EXISTS `ticks` ;CREATE TABLE IF NOT EXISTS `ticks` (`idticks` INT NOT NULL ,`symbol` VARCHAR(8) NOT NULL ,`date` DATE NOT NULL ,`time` DECIMAL(17,10) NOT NULL ,`value` FLOAT NOT NULL ,`type` VARCHAR(12) NOT NULL ,PRIMARY KEY (`idticks`, `date`) )ENGINE = InnoDB PARTITION BY KEY(date) PARTITIONS 1;CREATE INDEX `Symbol` ON `ticks` (`symbol` ASC) ;SET SQL_MODE=@OLD_SQL_MODE;SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Source is updated here.public class Tick{public String type = "";public decimal value = 0;public String date = System.DateTime.Now.ToString("yyyy-MM-dd");public decimal time = (decimal)System.DateTime.Now.ToOADate();public String symbol = "";public Int32 index = 0;public Tick(String type, decimal value, String symbol, Int32 index){this.type = type;this.value = value;this.symbol = symbol;this.index = index;}public Tick() { }public String toInsert(){String output = "insert into ticks (idticks,symbol,date,time,value,type) values (" +index +",'" + symbol +"', DATE('" + date + "')," +time + "," +value + ",'" +type + "')";return output;}}
Hi DomPazz, thank you for your excellent C# work. I'm new to C# and wondering how to modify the C# program in order to capture the futures and currency data from TWS. Thanks so much!
ReplyDeleteOnline Business Analyst Classes
ReplyDeleteBuild expertise in requirements gathering, stakeholder management, and process modeling. Gain job-ready skills through case studies and professional BA training.