public void BuildEratio(string symbol) { this.symbol = symbol; quoteFilePath = ExecutablePath.Combine($"{symbol}.csv"); LoadTradeSignals(); BuildEratio(); }
private void ReduceERatio(List <SignalStat> stat) { var eratio = new float[timeframes]; for (var i = 0; i < eratio.Length; i++) { float sumPro = 0f, sumCons = 0f; foreach (var s in stat) { sumPro += s.proCons[i].pro; sumCons += s.proCons[i].con; } eratio[i] = sumCons == 0f ? 1 : sumPro / sumCons; } // сохранить в файл var fileName = ExecutablePath.Combine($"report_{accountId}_{symbol}.txt"); using (var sw = new StreamWriter(fileName, false, Encoding.ASCII)) { sw.WriteLine($"Account {accountId}, symbol {symbol}"); sw.WriteLine($"{signals.Count} trades, M{timeframe}, {timeframes} timeframes"); sw.WriteLine(); foreach (var e in eratio) { sw.WriteLine(e.ToString("f4", CultureInfo.InvariantCulture)); } } }
public void BuildEratio(string symbol, List <TradeSignal> signals) { this.symbol = symbol; quoteFilePath = ExecutablePath.Combine($"{symbol}.csv"); this.signals = signals; BuildEratio(); }
public void FindSuitableOffset(string symbol) { this.symbol = symbol; quoteFilePath = ExecutablePath.Combine($"{symbol}.csv"); LoadTradeSignals(); FindTimeframeOffest(); }
/// <summary> /// save settings in JSON file by default path /// </summary> public void SaveSettings() { var path = ExecutablePath.Combine("settings.txt"); using (var sw = new StreamWriter(path, false, Encoding.UTF8)) { sw.Write(JsonConvert.SerializeObject(this, Formatting.Indented)); } }
private void ReadConfig() { var fileName = ExecutablePath.Combine("settings.ini"); var ini = new IniFile(fileName); timeframe = int.Parse(ini.ReadValue("Common", "Timeframe", "120")); timeframes = int.Parse(ini.ReadValue("Common", "Timeframes", "240")); quoteOffset = int.Parse(ini.ReadValue("Common", "Offset", "0")); }
public ModelMock() { ExecutablePath.InitializeFake(string.Empty); Logger.Debug("Trace Init - file : " + ExecutablePath.Combine("Files", "Instruments.txt")); var jsonInstruments = System.IO.File.ReadAllText(ExecutablePath.Combine("Files", "Instruments.txt")); var jsonContracts = System.IO.File.ReadAllText(ExecutablePath.Combine("Files", "Contracts.txt")); }
/// <summary> /// ensure the target folder and save the report's time /// </summary> public static void BuildReport(TraderPool pool) { var folder = $"{DateTime.Now:yyyy-MM-dd HHmmss}"; EnsureFolder(folder); folder = ExecutablePath.Combine(RootFolder, folder); SaveStatisticsReport(pool, folder); SaveServerReport(pool, folder); }
public static void InitDefault() { var fileName = ExecutablePath.Combine("settings.ini"); var ini = new IniFile(fileName); connectionString = ini.ReadValue("DB", "SharpConnection", ""); if (string.IsNullOrEmpty(connectionString)) { throw new Exception($"Connection string was not found, file \"{fileName}\""); } }
private static void SaveSignals(string s, int accountId, string symbol) { try { var fname = ExecutablePath.Combine(s.Substring("save ".Length)); SharpRepo.InitDefault(); var signals = SharpRepo.GetSignals(accountId, symbol); SharpRepo.SaveSignalsToFile(fname, signals); } catch (Exception e) { Console.WriteLine("Error: " + e); } }
/// <summary> /// create the folder passed if it not exists /// </summary> private static void EnsureFolder(string subFolder) { var folder = ExecutablePath.Combine(RootFolder); if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } folder = ExecutablePath.Combine(RootFolder, subFolder); if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } }
public static AppSets ReadSettingsFromFile() { var path = ExecutablePath.Combine("settings.txt"); if (!File.Exists(path)) { return(null); } string json; using (var sr = new StreamReader(ExecutablePath.Combine("settings.txt"), Encoding.UTF8)) json = sr.ReadToEnd(); return(JsonConvert.DeserializeObject <AppSets>(json)); }
/// <summary> /// read the settings from JSON file by its default path /// </summary> public static TradersSettings ReadSettings() { TradersSettings settings; var path = ExecutablePath.Combine("settings.txt"); if (File.Exists(path)) { string json; using (var sr = new StreamReader(path, Encoding.UTF8)) json = sr.ReadToEnd(); settings = JsonConvert.DeserializeObject <TradersSettings>(json); return(settings); } settings = MakeDefaultSettings(); settings.SaveSettings(); return(settings); }
/// <summary> /// save the report (included in the pool parameter) in a file /// </summary> private static void SaveStatisticsReport(TraderPool pool, string folder) { var stat = pool.statistics; var jsonPath = Path.Combine(folder, "rawdata.js"); var json = stat.Stringify(false); using (var sw = new StreamWriter(jsonPath, false, Encoding.UTF8)) sw.Write("window.rawdata = " + json); // copy report file var newPath = ExecutablePath.Combine(folder, "report.html"); var srcPath = ExecutablePath.Combine("report.html"); if (File.Exists(newPath)) { File.Delete(newPath); } File.Copy(srcPath, newPath); }
private static void BuildEratio(string s, TradeSignalAnalysis analz, string symbol) { try { if (s.StartsWith("load ")) { var fname = ExecutablePath.Combine(s.Substring("load ".Length)); var signals = SharpRepo.LoadSignalsFromFile(fname); analz.BuildEratio(symbol, signals); } else { analz.BuildEratio(symbol); } } catch (Exception e) { Console.WriteLine("Error: " + e); } }
static void Main() { var localPath = ExecutablePath.Combine("instance.temp"); StreamWriter sw = null; try { sw = new StreamWriter(localPath, false); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new LoadTestForm()); } catch { MessageBox.Show("Instance is already running or the folder is read-only"); return; } finally { sw?.Close(); } }
/// <summary> /// get the reports' times from the "reports" folder /// report's time is a part of its filename /// </summary> public static List <DateTime> ReadReportsTimes() { var dates = new List <DateTime>(); var root = ExecutablePath.Combine(RootFolder); if (!Directory.Exists(root)) { return(dates); } foreach (var dir in Directory.GetDirectories(root)) { var name = Path.GetFileName(dir); if (DateTime.TryParseExact(name, "yyyy-MM-dd HHmmss", CultureInfo.InvariantCulture, DateTimeStyles.None, out var date)) { dates.Add(date); } } return(dates.OrderByDescending(d => d).ToList()); }
/// <summary> /// open the report pointed by its time in a browser /// </summary> public static void OpenReport(DateTime reportTime) { var path = ExecutablePath.Combine(RootFolder, $"{reportTime:yyyy-MM-dd HHmmss}", "report.html"); System.Diagnostics.Process.Start(path); }
public ServerStatPicker(TradersSettings settings, Logger logMessage) { this.settings = settings; this.logMessage = logMessage; filePath = ExecutablePath.Combine("serverlog.json"); }