当前位置: 首页 > 编程日记 > 正文

技术图文:进一步完善自动化交易系统 - 04

背景

我们在 数字资产量化中的三角套利策略 这篇图文中详细的介绍了三角套利的原理以及代码实现。 在 进一步完善自动化交易系统 - 02 和 进一步完善自动化交易系统 - 03 中利用配置文件的方法,扩充至七个三角套利模型。

现在的问题是需要把应用程序和配置文件分别存储在七个不同的文件夹内,需要启动七个程序来运行这七个三角套利的模型,显得很繁琐,是否能够找到一种方式,同时启动七个模型呢?


技术分析

首先,把三角套利的程序TriangularArbitrage.exe放置在一个专门的文件夹AppFile中。

三角套利程序

其次,把配置文件放置在一个专门的文件夹iniFile中。

配置文件

再次,修改三角套利的程序,该程序把配置文件的路径作为参数。这样,传入不同的配置文件,既可执行不同的三角套利模型。

最后,写启动程序,该启动程序的逻辑就是在上面指定的文件夹iniFile中读取配置文件,根据配置文件的名称获取主窗体的名称,判断该主窗体是否已经运行,如果正在运行,则结束该主窗体的进程。把读取的配置文件路径作为参数调用上面指定文件夹AppFile中的程序,即完成了同时启动不同三角套利模型的任务。

启动程序


代码实现

1. 修改三角套利的程序

private static LSGOINIControlFacade _iniControl;
private static string _one;
private static string _usdt;
private static string _eos;static void Main(string[] args)
{string appName = "TriangularArbitrage";string version = "2019.07.25.01";string inifileName;if (args.Length == 0){Console.WriteLine(@"需要输入配置文件的路径");inifileName = Console.ReadLine();if (File.Exists(inifileName) == false){Console.WriteLine(@"配置文件不存在!");Console.ReadLine();return;}}else{inifileName = args[0];}_iniControl = new LSGOINIControlFacade(inifileName);string title = _iniControl.GetSetting(appName, "App", "Title", string.Empty);_one = _iniControl.GetSetting(appName, "App", "One", string.Empty);_usdt = _iniControl.GetSetting(appName, "App", "Usdt", string.Empty);_eos = _iniControl.GetSetting(appName, "App", "Eos", string.Empty);if (string.IsNullOrEmpty(title) || string.IsNullOrEmpty(_one) || string.IsNullOrEmpty(_usdt) ||string.IsNullOrEmpty(_eos)){Console.WriteLine(@"读取配置文件错误");Console.ReadLine();return;}   Console.Title = title;Console.WriteLine(@"三角套利版本号:{0}", version);//...
}

2. 完成启动程序

static void Main(string[] args)
{List<string> lstFiles = Directory.GetFiles(@".\iniFile").ToList();lstFiles = lstFiles.Where(a => Path.GetExtension(a) == ".ini").ToList();List<string> lstTitle = new List<string>();for (int i = 0; i < lstFiles.Count; i++){string title = Path.GetFileName(lstFiles[i]);if (title != null){int index = title.IndexOf("_Registry", StringComparison.Ordinal);title = title.Substring(0, index)+" 三角套利系统";lstTitle.Add(title);}}Process[] p = Process.GetProcesses();for (int i = 0; i < lstTitle.Count; i++){List<Process> lstp = p.Where(a => a.MainWindowTitle == lstTitle[i]).ToList();if (lstp.Count != 0){for (int j = 0; j < lstp.Count; j++){lstp[j].Kill();}Thread.Sleep(1000);}}for (int i = 0; i < lstFiles.Count; i++){ProcessStartInfo startInfo = new ProcessStartInfo();startInfo.FileName = @".\AppFile\TriangularArbitrage.exe";startInfo.Arguments = lstFiles[i];startInfo.WindowStyle = ProcessWindowStyle.Minimized;Process.Start(startInfo);Thread.Sleep(1000);}Console.WriteLine("三角套利程序启动完毕!");Console.ReadLine();
}

总结

好了,解决同时启动七个模型的程序,就可以提升启动三角套利程序的效率,避免了每次都要检查 多启动 或者 没启动 的问题。今天就到这里吧,最后放一个三角套利运行结果的截图,See You!

交易记录


相关图文

  • 资料分享:数学建模资料分享 – 图论部分
  • 资料分享:数学建模资料分享 – 神经网络部分
  • 如何利用 C# 实现 K 最邻近算法?
  • 如何利用 C# 实现 K-D Tree 结构?
  • 如何利用 C# + KDTree 实现 K 最邻近算法?
  • 如何利用 C# 对神经网络模型进行抽象?
  • 如何利用 C# 实现神经网络的感知器模型?
  • 如何利用 C# 实现 Delta 学习规则?
  • 如何利用 C# 实现 误差反向传播 学习规则?
  • 如何利用 C# 爬取带 Token 验证的网站数据?
  • 如何利用 C# 向 Access 数据库插入大量数据?
  • 如何利用 C# + Python 破解猫眼电影的反爬虫机制?

相关文章:

如何成为Android开发高手

(copy来的) 计划按这个步骤去学习很多Android开发者已经度过了初级、中级&#xff0c;如何成为一个Android高手呢? Android123就各个级别的程序员应该掌握哪些内容作为下面分类。 一、初级 1. 拥有娴熟的Java基础&#xff0c;理解设计模式&#xff0c;比如OOP语言的工厂模式要…

哪些物联网应用最适合采用雾计算?

有时在做出判断时真的是要靠自己&#xff0c;让别人为你指出方向是不可行的。 许多物联网系统所面临的情景与此相同。集中处理大量传感器数据会减慢决策&#xff0c;并增加带宽需求。而做出明智的决策最好靠近源头。 哪些决策应该靠近网络边缘&#xff0c;哪些应该靠近中心&…

学习web前端你必须要了解的主流框架!

如今的前端已经不再像以前一样就是简单的写写页面和调调样式而已&#xff0c;现在的前端越来越复杂&#xff0c;知识点越来越丰富。 要做WEB前端&#xff0c;就需要知道前端到底是什么&#xff0c;需要学习那些知识;前端至少要懂的三个部分&#xff1a;HTML&#xff0c;CSS&…

技术图文:如何实现汉诺塔问题?

背景 最近在辅导小孩们学习编程&#xff0c;在介绍函数递归时&#xff0c;最典型的就是汉诺塔问题了。 我在这里总结一下&#xff0c;以方便大家的学习。 汉诺塔问题源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子&#xff0c;在一根柱子上从下往上…

Unity----Scene加载问题

Unity官方提供了4种加载场景&#xff08;scene&#xff09;的方法&#xff0c;分别是&#xff1a; 1. Application.LoadLevel()&#xff1a;同步加载 2. Application.LoadLevelAsync():异步加载 3. Application.LoadLevelAddictive():同步附加式加载 4. Application.LoadLevelA…

基于Google Reader的个人知识管理方案

来源月光博客:http://www.williamlong.info/archives/2172.html. 先前我写的《基于Dropbox的个人知识管理平台》讲述了使用Dropbox在个人知识管理的保存知识方面的技巧&#xff0c;而个人知识管理的另一个重要环节是获取知识&#xff0c;今天月光博客就介绍一下如何通过Google …

学习java一定会用到的应用软件

想要成为一名合格的java程序猿&#xff0c;基础知识一定是要非常牢固的&#xff0c;扎实的基本功不仅可以快速的吸收新的知识&#xff0c;也会避开一些基本的语法错误&#xff0c;为了帮助程序员们减少一点工作压力&#xff0c;小编在此汇总了一些各大网络平台上推荐的程序员必…

LeetCode实战:两数之和

题目英文 Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. Example: Given nums [2, 7, 1…

忘记mysql 密码的取回方法

如果 MySQL 正在运行&#xff0c;首先杀之&#xff1a; killall -TERM mysqld(如果是windows,直接调出进程管理器,结束之) 以安全模式启动 MySQL &#xff1a;/usr/bin/safe_mysqld --skip-grant-tables & (windows 下 mysql安装所以盘/mysql/bin/safe_mysqld --skip-grant…

《社交网站界面设计(原书第2版)》——2.13 不要中断电子邮件

2.13 不要中断电子邮件 如果你将电子邮件作为广播媒介&#xff08;例如&#xff0c;发送提醒或通知&#xff09;却不让用户回复他们收到的消息&#xff0c;就比较差劲了。你也没理由不处理这些回复&#xff0c;你可以把这些回复当作通知转发给正确的收件人。这需要你在方便沟通…

学习Python遇到的热门问题整理

什么是Python?它可以做什么用?学习Python还是java?哪个比较好?Python适用于哪些场景?关于python&#xff0c;你是不是还有很多问题?那今天小编就来给大家答疑解惑了&#xff0c;给大家整理了学习Python遇到的热门问题&#xff0c;看完这篇文章&#xff0c;你会对Python有…

WinRM设置信任主机

启动https需要证书&#xff0c;所以只能用信任主机的方式。适应没有域的环境。 enable-psremoting winrm s winrm/config/client {TrustedHosts"XXX.XXX.XXX.XXX"} 转载于:https://www.cnblogs.com/flysoft/archive/2011/03/12/1982494.html

LeetCode实战:快乐数

题目英文 Write an algorithm to determine if a number is “happy”. A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until t…

idea的优秀博客推荐

2019独角兽企业重金招聘Python工程师标准>>> http://blog.csdn.net/qq_27093465/article/details/63683873 http://www.cnblogs.com/whc321/p/5669804.html 转载于:https://my.oschina.net/u/3621360/blog/1528716

花钱参加UI设计培训值得吗?

最近有很多人都想要学习UI设计&#xff0c;大家都比较看好UI设计行业的好前景&#xff0c;高薪资&#xff0c;那么花钱参加UI设计培训值得吗?这是目前很多人都比较关心的问题&#xff0c;下面小编就为大家做下详细的介绍。 ​花钱参加UI设计培训值得吗?对于零基础或者转行的人…

零基础自学用Python 3开发网络爬虫(一)

原文出处&#xff1a; Jecvay Notes &#xff08;Jecvay&#xff09; 由于本学期好多神都选了Cisco网络课, 而我这等弱渣没选, 去蹭了一节发现讲的内容虽然我不懂但是还是无爱. 我想既然都本科就出来工作还是按照自己爱好来点技能吧, 于是我就不去了. 一个人在宿舍没有点计划…

用什么心态对待水平糟糕的程序员[不靠谱的程序员、思路紊乱的程序员]?

这些年遇到了很多糟糕的程序员&#xff0c;其实真正是写程序料的人&#xff0c;普通IT公司大概只占1/3左右吧&#xff0c;其实有2/3的人都太适合当程序员&#xff0c;还不如早点儿改行该干啥就干啥了&#xff0c;其中有1/10的人往往是相对比较糟糕的。 01&#xff1a;招聘时&am…

LeetCode实战:三数之和

题目英文 Given an array nums of n integers, are there elements a, b, c in nums such that a b c 0? Find all unique triplets in the array which gives the sum of zero. Note: The solution set must not contain duplicate triplets. Example: Given array n…

女生做软件测试需要学习什么技术?

软件测试在近几年的发展前景是非常好的&#xff0c;加上软件测试对于想要零转型的学员来说是在合适不过的&#xff0c;有很多女性也开始学习软件测试&#xff0c;目前大家都比较关心女生做软件测试需要学习什么技术呢?下面我们就来看看详细的介绍。 女生做软件测试需要学习什么…

一、Axis2 WebService开发准备工作

上次介绍了axis1.x的用法&#xff0c;这次继续上次的&#xff0c;将叙述axis2的用法。 Axis1.x在线博文&#xff1a;http://www.cnblogs.com/hoojo/archive/2010/12/20/1911349.html 1、开发准备 首先需要下载axis2的相关jar包&#xff0c;到axis的官方网站即可获得开发的依赖包…

LeetCode实战:求众数

题目英文 Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times. You may assume that the array is non-empty and the majority element always exist in the array. Example 1: Input: […

oracle数据库导入导出

2019独角兽企业重金招聘Python工程师标准>>> 1、利用 sqlplus 登录数据库之后 键入: 文件名 全路径 即可执行*.sql 文件 例 假设有一个 test.sql 文件 所在路径是/home/oracle/ 现在要执行它 1 登录数据库 sqlplus system/m…

学习Python编程开发可以从事的岗位有哪些?

Python编程技术在人工智能领域的发展有目共睹&#xff0c;很多人都想学习Python技术&#xff0c;而且从事Python开发&#xff0c;所从事的工作机会和工作岗位及工作内容可选择的余地很多&#xff0c;未来发展空间也很大。下面我们就来详细的了解一下学习Python编程开发可以从事…

2010前半年

一直都想抽时间写些什么&#xff0c;但都是由于自己的懒惰&#xff0c;使得自己很少静下心来。 2010平淡的一年就这样在指缝中悄悄溜走了&#xff0c;我甚至都还没来得及仔细回味以往发生的一些事情&#xff0c;2011就已经过了好几个月。2010总体来说很平淡&#xff0c;我也没有…

LeetCode实战:缺失的第一个正数

题目英文 Given an unsorted integer array, find the smallest missing positive integer. Example 1: Input: [1,2,0] Output: 3Example 2: Input: [3,4,-1,1] Output: 2Example 3: Input: [7,8,9,11,12] Output: 1Note: Your algorithm should run in O(n) time and u…

ubuntu 下mysql导入出.sql文件

2019独角兽企业重金招聘Python工程师标准>>> 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p waf> /home/waf.sql 2.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u wcnc -p waf u…

UI设计师培训入门都需要学习什么技术?

UI设计在如今的IT行业是非常火热的&#xff0c;它的发展前景是非常可观的&#xff0c;想要进入到这个行业的小伙伴越来越多&#xff0c;那么UI设计师培训入门都需要学习什么技术呢?小编下面为大家做下详细的介绍。 UI设计师培训入门都需要学习什么技术? 一、视觉设计基础&…

[C#1] 9-委托

委托揭秘 编译器和CLR在后台做了很多工作来隐藏委托本身的复杂性&#xff0c;如下一句委托声明&#xff1a; //编译器为我们产生了一个同名的类 public delegate void MyDelegate(int i); 看看IL: 可以看出它默认继承自System.MulticastDelegate[所有委托都继承此类&#xff0c…

LeetCode实战:环形链表

题目英文 Given a linked list, determine if it has a cycle in it. To represent a cycle in the given linked list, we use an integer pos which represents the position (0-indexed) in the linked list where tail connects to. If pos is -1, then there is no cycl…

Symbian开发系列 - 入门篇

要开始我的Symbian开发之旅了, 先收集一些相关资料,如Symbian概述, 开发平台搭建, 参考书籍与网络资源. 【基础】 什么是Symbian学习Symbian的基本概念 Symbian操作系统 Symbian 入门 【转】symbian操作系统 入门篇 symbian 术语表 S60/Symbian应用程序常用架构/框架S60十大优秀…