|
| 1 | +DROP TABLE calculate_statistics; |
| 2 | +DROP TABLE create_strategy; |
| 3 | +DROP TABLE criteria; |
| 4 | +DROP TABLE day_to_day; |
| 5 | +DROP TABLE indicator_reference; |
| 6 | +DROP TABLE makes_trade; |
| 7 | +DROP TABLE portfolio_contents; |
| 8 | +DROP TABLE raw_data_parsing; |
| 9 | +DROP TABLE aggregate_portfolio; |
| 10 | +DROP TABLE indicator; |
| 11 | +DROP TABLE portfolio_statistics; |
| 12 | +DROP TABLE query_data; |
| 13 | +DROP TABLE security_state; |
| 14 | +DROP TABLE strategy; |
| 15 | +DROP TABLE trade; |
| 16 | +DROP TABLE user_data; |
| 17 | +CREATE TABLE aggregate_portfolio( |
| 18 | + portfolio_id INTEGER, |
| 19 | + time DATE, -- DD-MMM-YYYY |
| 20 | + portfolio_value NUMBER, -- current cash + value of securites in market |
| 21 | + interest_rate NUMBER, -- interest paid on the cash held |
| 22 | + securites_value NUMBER, -- value of all securites in portfolio |
| 23 | + free_cash NUMBER, -- cash not invested |
| 24 | + portfolio_value_change NUMBER, -- day to day change in value |
| 25 | + PRIMARY KEY (portfolio_id) |
| 26 | +); |
| 27 | +CREATE TABLE indicator( |
| 28 | + indicator_id INTEGER, |
| 29 | + security VARCHAR2(6), |
| 30 | + mva_10_day VARCHAR2(1), -- T or F -- |
| 31 | + mva_25_day VARCHAR2(1), -- T or F -- |
| 32 | + PRIMARY KEY (indicator_id) |
| 33 | +); |
| 34 | + |
| 35 | +CREATE TABLE portfolio_statistics ( |
| 36 | + port_id INTEGER, |
| 37 | + start_date DATE, |
| 38 | + end_date DATE, |
| 39 | + sharpe_ratio REAL, |
| 40 | + returns REAL, |
| 41 | + user_id VARCHAR(20), |
| 42 | + PRIMARY KEY(port_id) |
| 43 | +); |
| 44 | +CREATE TABLE query_data ( |
| 45 | + security VARCHAR2(6), |
| 46 | + time DATE, -- DD-MMM-YYYY |
| 47 | + open NUMBER, |
| 48 | + high NUMBER, |
| 49 | + low NUMBER, |
| 50 | + close NUMBER, |
| 51 | + volume INTEGER, |
| 52 | + adj_close NUMBER, |
| 53 | + -- field_data char(10) changed to... |
| 54 | + mva_10_day NUMBER, |
| 55 | + mva_25_day NUMBER, |
| 56 | + PRIMARY KEY (security, time) |
| 57 | +); |
| 58 | +CREATE TABLE security_state ( |
| 59 | + state_id INTEGER, |
| 60 | + security VARCHAR2(6), |
| 61 | + security_price NUMBER, |
| 62 | + share_amount NUMBER, |
| 63 | + PRIMARY KEY(state_id,security) |
| 64 | +); |
| 65 | +CREATE TABLE strategy( |
| 66 | + strategy_id INTEGER, |
| 67 | + strategy_name VARCHAR2(200), |
| 68 | + PRIMARY KEY (strategy_id) |
| 69 | +); |
| 70 | +CREATE TABLE trade ( |
| 71 | + trade_id INTEGER, |
| 72 | + security VARCHAR2(6), |
| 73 | + action VARCHAR2(3), --'B'/'S'/'X_B'/'X_U' |
| 74 | + share_amount NUMBER, -- Shares purchased in this trade |
| 75 | + price NUMBER, |
| 76 | + time DATE, |
| 77 | + PRIMARY KEY(trade_id) |
| 78 | +); |
| 79 | +CREATE TABLE user_data( |
| 80 | + user_id VARCHAR2(20), |
| 81 | + password VARCHAR2(20), |
| 82 | + PRIMARY KEY (user_id) |
| 83 | +); |
| 84 | +CREATE TABLE calculate_statistics ( |
| 85 | + port_id INTEGER, |
| 86 | + strategy_id INTEGER, |
| 87 | + PRIMARY KEY (port_id), |
| 88 | + FOREIGN KEY (strategy_id) REFERENCES strategy, |
| 89 | + FOREIGN KEY (port_id) REFERENCES portfolio_statistics |
| 90 | +); |
| 91 | +CREATE TABLE create_strategy ( |
| 92 | + user_id VARCHAR2(20), |
| 93 | + strategy_id INTEGER, |
| 94 | + PRIMARY KEY (user_id, strategy_id ), |
| 95 | + FOREIGN KEY (user_id) REFERENCES user_data, |
| 96 | + FOREIGN KEY (strategy_id) REFERENCES strategy |
| 97 | +); |
| 98 | +CREATE TABLE criteria ( |
| 99 | + strategy_id INTEGER, |
| 100 | + indicator_id INTEGER, |
| 101 | + PRIMARY KEY (strategy_id, indicator_id), |
| 102 | + FOREIGN KEY (strategy_id) REFERENCES strategy, |
| 103 | + FOREIGN KEY (indicator_id) REFERENCES indicator |
| 104 | +); |
| 105 | +CREATE TABLE day_to_day ( |
| 106 | + strategy_id INTEGER, |
| 107 | + portfolio_id INTEGER, |
| 108 | + PRIMARY KEY (strategy_id, portfolio_id), |
| 109 | + FOREIGN KEY (strategy_id) REFERENCES strategy, |
| 110 | + FOREIGN KEY (portfolio_id) REFERENCES current_portfolio |
| 111 | +); |
| 112 | +CREATE TABLE indicator_reference( |
| 113 | + start_time DATE, -- DD-MMM-YYYY |
| 114 | + end_time DATE, -- DD-MMM-YYYY |
| 115 | + L_indicator_id INTEGER, |
| 116 | + R_indicator_id INTEGER, |
| 117 | + buy_sell CHAR(1), --'B' or 'S' |
| 118 | + operator VARCHAR2(10), |
| 119 | + action_security VARCHAR2(6), |
| 120 | + share_amount INTEGER, --NULL |
| 121 | + allocation NUMBER, --100 |
| 122 | + cash_value NUMBER, -- Starting cash amt |
| 123 | + PRIMARY KEY (L_indicator_id,R_indicator_id,buy_sell), |
| 124 | + FOREIGN KEY (L_indicator_id) REFERENCES indicator, |
| 125 | + FOREIGN KEY (R_indicator_id) REFERENCES indicator |
| 126 | +); |
| 127 | + |
| 128 | +CREATE TABLE makes_trade ( |
| 129 | + portfolio_id INTEGER, |
| 130 | + trade_id INTEGER, |
| 131 | + PRIMARY KEY(portfolio_id,trade_id), |
| 132 | + FOREIGN KEY (trade_id) REFERENCES trade, |
| 133 | + FOREIGN KEY (portfolio_id) REFERENCES current_portfolio |
| 134 | +); |
| 135 | +CREATE TABLE portfolio_contents ( |
| 136 | + state_id INTEGER, |
| 137 | + portfolio_id INTEGER, |
| 138 | + security VARCHAR2(6), |
| 139 | + PRIMARY KEY (state_id, portfolio_id), |
| 140 | + FOREIGN KEY (state_id,security) REFERENCES security_state, |
| 141 | + FOREIGN KEY (portfolio_id) REFERENCES aggregate_portfolio |
| 142 | +); |
| 143 | +CREATE TABLE raw_data_parsing ( |
| 144 | + strategy_id INTEGER, |
| 145 | + security VARCHAR2(6), |
| 146 | + time DATE, |
| 147 | + PRIMARY KEY (strategy_id, security,time), |
| 148 | + FOREIGN KEY (strategy_id) REFERENCES strategy, |
| 149 | + FOREIGN KEY (security, time) REFERENCES query_data |
| 150 | +); |
0 commit comments