using System; using cAlgo.API; using System.IO; using System.Text; namespace cAlgo.Robots { [Robot(AccessRights = AccessRights.FullAccess)] public class TickerSender_forArbitrage : Robot { //StreamWriter _fileWriter; [Parameter("ArbitrageGroup", DefaultValue = "GroupA")] public string ArbitrageGroup { get; set; } public static string CompanyFilePath; public static string TickerFilePath; protected override void OnStart() { CompanyFilePath = "C:\\Users\\" + (Environment.UserName) + "\\AppData\\Roaming\\MetaQuotes\\Terminal\\Common\\Files\\" + ArbitrageGroup + "ArbitragerData" + SymbolName + ".txt"; TickerFilePath = "C:\\Users\\" + (Environment.UserName) + "\\AppData\\Roaming\\MetaQuotes\\Terminal\\Common\\Files\\" + ArbitrageGroup + "cTrdr" + Account.BrokerName + SymbolName + ".txt"; if (File.Exists(CompanyFilePath)) { string FileText = File.ReadAllText(CompanyFilePath); //if there is no text of this company name in the file. if (FileText.IndexOf("cTrdr" + Account.BrokerName) == -1) { File.Delete(CompanyFilePath); StreamWriter _fileWriter0; _fileWriter0 = File.AppendText(CompanyFilePath); _fileWriter0.AutoFlush = true; string InputText = FileText + "cTrdr" + Account.BrokerName + ";"; InputText = InputText.Replace("\r", "").Replace("\n", ""); _fileWriter0.WriteLine(InputText); _fileWriter0.Close(); } } else { StreamWriter _fileWriter0; _fileWriter0 = File.AppendText(CompanyFilePath); _fileWriter0.AutoFlush = true; string InputText = "cTrdr" + Account.BrokerName + ";"; InputText = InputText.Replace("\r", "").Replace("\n", ""); _fileWriter0.WriteLine(InputText); _fileWriter0.Close(); } } protected override void OnTick() { try { var now = DateTime.Now; long TimeLocal = (long)(now - new DateTime(1970, 1, 1)).TotalSeconds; Encoding utf = Encoding.GetEncoding("shift_jis"); StreamWriter _fileWriter = new StreamWriter(TickerFilePath, false, utf); _fileWriter.AutoFlush = true; _fileWriter.WriteLine(Symbol.Bid + ":" + Symbol.Ask + "*0@" + TimeLocal); _fileWriter.Close(); } catch { } } protected override void OnStop() { string FileText = File.ReadAllText(CompanyFilePath); FileText = FileText.Replace("cTrdr" + Account.BrokerName + ";", "").Replace("\r", "").Replace("\n", ""); ; File.Delete(CompanyFilePath); StreamWriter _fileWriter0; _fileWriter0 = File.AppendText(CompanyFilePath); _fileWriter0.AutoFlush = true; _fileWriter0.WriteLine(FileText); _fileWriter0.Close(); } } }