// add macro setting to execution list public int addMacroSetting(MacroSettingData singleSetting, bool isEdit = false, bool isLoad = false) { if (!isLoad) { for (int i = 0; i < setting.Count; i++) { if (setting[i].coinName == singleSetting.coinName) { if (!isEdit) { return(-1); } setting[i] = singleSetting; return(1); } } setting.Add(singleSetting); } lastPrice.Add(singleSetting.coinName, 0d); DataRow dataRow = lastCandleUpdate.NewRow(); dataRow["week"] = DateTime.Now.AddMonths(-1); dataRow["day"] = DateTime.Now.AddMonths(-1); dataRow["hour4"] = DateTime.Now.AddMonths(-1); dataRow["hour1"] = DateTime.Now.AddMonths(-1); dataRow["min30"] = DateTime.Now.AddMonths(-1); lastCandleUpdate.Rows.Add(dataRow); DataTable week_candle_single = new DataTable(singleSetting.coinName); week_candle_single.Columns.Add("date", typeof(DateTime)); week_candle_single.Columns.Add("open", typeof(double)); week_candle_single.Columns.Add("close", typeof(double)); week_candle_single.Columns.Add("max", typeof(double)); week_candle_single.Columns.Add("min", typeof(double)); week_candle_single.Columns.Add("volume", typeof(double)); week_candle.Tables.Add(week_candle_single); DataTable day_candle_single = new DataTable(singleSetting.coinName); day_candle_single.Columns.Add("date", typeof(DateTime)); day_candle_single.Columns.Add("open", typeof(double)); day_candle_single.Columns.Add("close", typeof(double)); day_candle_single.Columns.Add("max", typeof(double)); day_candle_single.Columns.Add("min", typeof(double)); day_candle_single.Columns.Add("volume", typeof(double)); day_candle.Tables.Add(day_candle_single); DataTable hour4_candle_single = new DataTable(singleSetting.coinName); hour4_candle_single.Columns.Add("date", typeof(DateTime)); hour4_candle_single.Columns.Add("open", typeof(double)); hour4_candle_single.Columns.Add("close", typeof(double)); hour4_candle_single.Columns.Add("max", typeof(double)); hour4_candle_single.Columns.Add("min", typeof(double)); hour4_candle_single.Columns.Add("volume", typeof(double)); hour4_candle.Tables.Add(hour4_candle_single); DataTable hour1_candle_single = new DataTable(singleSetting.coinName); hour1_candle_single.Columns.Add("date", typeof(DateTime)); hour1_candle_single.Columns.Add("open", typeof(double)); hour1_candle_single.Columns.Add("close", typeof(double)); hour1_candle_single.Columns.Add("max", typeof(double)); hour1_candle_single.Columns.Add("min", typeof(double)); hour1_candle_single.Columns.Add("volume", typeof(double)); hour1_candle.Tables.Add(hour1_candle_single); DataTable min30_candle_single = new DataTable(singleSetting.coinName); min30_candle_single.Columns.Add("date", typeof(DateTime)); min30_candle_single.Columns.Add("open", typeof(double)); min30_candle_single.Columns.Add("close", typeof(double)); min30_candle_single.Columns.Add("max", typeof(double)); min30_candle_single.Columns.Add("min", typeof(double)); min30_candle_single.Columns.Add("volume", typeof(double)); min30_candle.Tables.Add(min30_candle_single); DataTable state_table = new DataTable(singleSetting.coinName); state_table.Columns.Add("uuid", typeof(string)); state_table.Columns.Add("date", typeof(DateTime)); state_table.Columns.Add("unit", typeof(double)); state_table.Columns.Add("price", typeof(double)); state_table.Columns.Add("krw", typeof(double)); state.Tables.Add(state_table); if (!isLoad) { saveFile(); } return(0); }
// load from 'macroSetting.dat' and 'macroState.dat' files public int loadFile() { string macroSettingDataPath = System.IO.Directory.GetCurrentDirectory() + "/macroSetting.dat"; string macroStateDataPath = System.IO.Directory.GetCurrentDirectory() + "/macroState.dat"; string macroOrderDataPath = System.IO.Directory.GetCurrentDirectory() + "/macroOrder.dat"; try { if (!System.IO.File.Exists(macroSettingDataPath)) { System.IO.File.Create(macroSettingDataPath); } else { string[] reader = System.IO.File.ReadAllLines(macroSettingDataPath); for (int i = 0; i < reader.Length; i++) { string[] singleData = reader[i].Split('\t'); if (singleData.Length < 14) { continue; } else { MacroSettingData temp = new MacroSettingData(); temp.coinName = singleData[0]; temp.yield = double.Parse(singleData[1]); temp.krw = double.Parse(singleData[2]); temp.time = double.Parse(singleData[3]); temp.week_from = double.Parse(singleData[4]); temp.week_to = double.Parse(singleData[5]); temp.day_from = double.Parse(singleData[6]); temp.day_to = double.Parse(singleData[7]); temp.hour4_from = double.Parse(singleData[8]); temp.hour4_to = double.Parse(singleData[9]); temp.hour1_from = double.Parse(singleData[10]); temp.hour1_to = double.Parse(singleData[11]); temp.min30_from = double.Parse(singleData[12]); temp.min30_to = double.Parse(singleData[13]); setting.Add(temp); } } } } catch (Exception ex) { MessageBox.Show("Fail to load macro setting : " + ex.Message); return(-1); } for (int i = 0; i < setting.Count; i++) { addMacroSetting(setting[i], false, true); } try { if (!System.IO.File.Exists(macroStateDataPath)) { System.IO.File.Create(macroStateDataPath); } else { string[] reader = System.IO.File.ReadAllLines(macroStateDataPath); for (int i = 0; i < reader.Length; i++) { string[] singleData = reader[i].Split('\t'); if (singleData.Length < 6) { continue; } if (!state.Tables.Contains(singleData[0])) { continue; } DataRow tempRow = state.Tables[singleData[0]].NewRow(); tempRow["uuid"] = singleData[1]; tempRow["date"] = DateTime.ParseExact(singleData[2], "u", provider); tempRow["unit"] = double.Parse(singleData[3]); tempRow["price"] = double.Parse(singleData[4]); tempRow["krw"] = double.Parse(singleData[5]); state.Tables[singleData[0]].Rows.Add(tempRow); } } } catch (Exception ex) { MessageBox.Show("Fail to load macro state : " + ex.Message); return(-2); } try { if (!System.IO.File.Exists(macroOrderDataPath)) { System.IO.File.Create(macroOrderDataPath); } else { string[] reader = System.IO.File.ReadAllLines(macroOrderDataPath); for (int i = 0; i < reader.Length; i++) { string[] singleData = reader[i].Split('\t'); if (singleData.Length < 2) { continue; } DataRow tempRow = order.NewRow(); tempRow["coinName"] = singleData[0]; tempRow["uuid"] = singleData[1]; order.Rows.Add(tempRow); } } } catch (Exception ex) { MessageBox.Show("Fail to load macro order : " + ex.Message); return(-3); } return(0); }
public void saveMacroSetting(MacroSettingData setting) { this.setting = setting; saveFile(); }