sql
1CREATE TABLE Trading_Log (2 'ID_TL' INTEGER PRIMARY KEY,3 'Type' TEXT,4 'Time' TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,5 'LS' TEXT NOT NULL, 6 'Lot' REAL NOT NULL,7 'Price' REAL NOT NULL,8 'TP_ID' INTEGER, -- Take Profit9);10 11CREATE TABLE Account_Log (12 'ID_AL' INTEGER PRIMARY KEY,13 'Type' TEXT,14 'Time' TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,15 'Account' TEXT,16 'Amount' INTEGER,17 'TP_ID' INTEGER 18);19 20CREATE VIEW Trading_Result AS 21 SELECT22 out_rec.TP_ID,23 in_rec.Type,24 DATETIME(in_rec.Time, 'localtime') AS 'Time',25 in_rec.LS AS 'IN_LS',26 in_rec.Lot AS 'IN_Lot',27 out_rec.Lot AS 'OUT_Lot',28 in_rec.Price AS 'IN_Price',29 out_rec.Price AS 'OUT_Price',30 CASE31 WHEN in_rec.LS = 'Long' THEN ROUND(out_rec.Price - in_rec.Price, 3) * out_rec.Lot * 1000032 WHEN in_rec.LS = 'Sort' THEN ROUND(in_rec.Price - out_rec.Price, 3) * out_rec.Lot * 1000033 END AS 'Profit',34 FROM Trading_Log in_rec 35 INNER JOIN Trading_Log out_rec 36 ON in_rec.ID_TL = out_rec.TP_ID;37 38CREATE TRIGGER trg_TLtoAL INSERT ON Trading_Log 39 WHEN NEW.TP_ID IS NOT NULL40 BEGIN41 INSERT INTO Account_Log(Account, Amount, TP_ID)42 SELECT43 'Account01',44 Profit,45 NEW.TP_ID 46 FROM Trading_Result vw_tr WHERE vw_tr.TP_ID = NEW.TP_ID;47 END;48 49INSERT INTO Trading_Log('Type', LS, Lot, Price, TP_ID) VALUES('uj', 'Long', 1.5, 133.981, NULL);50INSERT INTO Trading_Log('Type', LS, Lot, Price, TP_ID) VALUES('uj', 'Short', 1.5, 134.519, 1);51INSERT INTO Trading_Log('Type', LS, Lot, Price, TP_ID) VALUES('uj', 'Long', 1.5, 134.718, NULL);52INSERT INTO Trading_Log('Type', LS, Lot, Price, TP_ID) VALUES('uj', 'Short', 0.75, 134.931, 3);53INSERT INTO Trading_Log('Type', LS, Lot, Price, TP_ID) VALUES('uj', 'Short', 0.75, 135.277, 3);
0 コメント