Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

Machine Translated by Google

计算机工程综合设计

队名 饥饿的
团队成员Bora  Shin、
Kwangwook  Ahn、
Jueun  Jung

提交日期 2020.12.20
Machine Translated by Google

指数
1.  主题................................................ .................................................... ....................................................  ⋯⋯⋯⋯一

2.  背景 ............................................................... ................................................... ................................................... .........  2

三、
开发内容 ............................................................................... ..................................................... .....................................................  3

1.  平台...................................... ................................................... ................................................... .一

2.  开发语言...................................................... .................................................... .................................................... ....................  2

三、
详细结构 ............................................................................... ..................................................... ..................................................... ..  3

四、
开发方法................................................................ .................................................... .................................................... .. .  4

1.  数据爬虫...................................................... ..................................................... .....................................  1

2.  机器学习模型、
投资组合生成器................................................ .....................................  2

3.  交易员,
用户界面................................................. ................................................... ... ..................................................... .........  3

4.  角色划分 ........................................................... ..................................................... .....................................................  4个

五、
发展成果...................................................... .................................................... ....................................................  5个

1.  演示................................................ ..................................................... ..................................................... .........  1

2.  功能说明 ............................................................... .................................................... .................................................... ....................  2

6.  最终评价...................................................................... ..................................................... .....................................................  6

一、
功能要求................................................................................ ..................................................... .....................................  一

2.  非功能性要求 ............................................................................... ..................................................................... ...................................  2

3.  按角色评价................................................................ ..................................................... .....................................................  3

7.  附加................................................ .................................................... .................................................... .. .  7

一、
改进计划 ............................................................................... ..................................................... ................................  一

2.  使用计划 ............................................................... .................................................... ....................................................  2

8.  参考 ............................................................... ................................................... ................................................... ... ...  8
Machine Translated by Google

即使是普通人也可以利用人工智能和自动交易算法通过短线交易股票获利。
建议一个程序,
将人工智能使用过去的股票数据选择股票
而且,
我们想要实施一个程序,
根据用户输入值自动进行股票交易。

1.主题

使用人工智能的股票短线交易自动化程序

2.  背景

‑  动机

股票的短期交易不适合拥有大量专业知识和经验的全职投资者。
这是一种对普通大众来说进入门槛较高的投资方式。
这种诀窍和经验可以通过人工智能利用过去的股票数据学习,
通过自动化交易,
普通大众可以降低
短线股票交易的进入门槛,
使其更加稳定。
为了成为收入来源,
提出了这个计划。

‑  预期效果

  忙碌的现代人,
看着整个股市的股票行情,
难以应付。
全部。
在一段时间内看不到股票图表的情况下,
您错过了正确的卖出时机而赔钱
这可能是有害的,
但如果销售是自动化的,
这些问题就可以解决。

  当一个人交易短线股票时,
他们处于应该卖出但被情绪驱使的情况。
经常会出现因为卖不出去而赔钱的情况。
然而,
机器
由于股票是按照一套算法进行交易的,
因此预计会做出更加理性的判断。
做。

  通过短线交易,
当天即可看到利润。

‑  相关领域调查

  三星证券 AI股票偏好分析

人工智能分析客户投资模式,
投资时股价涨幅最高
我们选择并展示了七只股票估计。
我们不提供自动交易。

  目标
Machine Translated by Google

它通过人工智能提供资产管理见解和市场预测等信息。
我们不提供自动交易。

  阿尔法临

它提供使用人工智能的自动股票交易,
但它不是专门用于短期投资的程序。

‑  现有项目和提案之间的差异

  人工智能加入逻辑的自动交易提案

我们想创建一个算法,
用人工智能推荐股票,
按逻辑进行买卖。
如果你按逻辑买卖,
找到理想的时间是

但是,
它被认为是降低风险的一种方法。

  反映用户的投资倾向

在建议的项目中,
用户选择股票项目选择条件,
目标利润和止损

您可以输入相同的项目。
这并不完全依赖于程序,
而是可以反映每个用户的投资倾向,
降低人工智能投资的风

险。

  专门针对短线交易的算法

现有项目中,
没有专门从事短线交易的项目。
短线交易

号称是一般投资者非常难的投资方式,
但是这个项目

我们提出了一种算法,
可以让普通人每天通过短线交易获利。

我想要

三、
开发内容

‑  开发平台:
Window10

‑  开发语言:
python

‑  详细结构

拟议的计划可分为以下五个阶段。

1.数据爬虫

它从  Kiwoom  证券接收用户信息和过去的股票数据。

2.  机器学习模型
Machine Translated by Google

它接收过去的股票数据作为输入,
并预测每只股票第二天的高价。

3.投资组合生成器

根据  ML  模型分析的数据选择股票。

4.交易员

根据从  Portfolio  Builder  中选择的项目实时自动进行股票交易

它是一种算法,
使

5.用户界面

提供用户可以使用程序的环境。

[图1。
数据流程图】

‑  详细要求
Machine Translated by Google

  功能需求

  交易设置:
输入一个卖出策略,
并根据该策略执行自动交易。

  AI设置:
从Portfolio  builder中人工智能选择的项目中删除所需的项目。

可以添加或添加。
注意用户界面。

  非功能性需求

  性能:
根据条件从买卖订单发出到订单完成所用的时间

间隔小于  1  秒。  (根据  Kiwoom  Open  API  的性能)

  易用性:
操作简单,
UI构成简单。

用于自动交易,
而不是股票公司app已经提供的功能
提供专注于设置的功能。

  可靠性:
整个运行过程中的无误操作率以95%为目标。

  安全、
安全:
使用Kiwoom开放API提供证书登录。

4.开发方式

  数据收集:
为了从过去导入大量数据,
使用了  Creon  Plus  API,
因为  Creon  Plus  API  提供的数据比  Kiwoom  
Open  API  多。  KOSPI  200  指数

按项目接收每个项目的股票数据(开盘价、
最高价、
最低价、
收盘价、
交易量)
并将其保存在  csv  文件中
做。

  数据爬取:
对于日常数据更新,
使用  Kiwoom  Open  API  收集额外数据。
下载并保存到  csv  文件。

  机器学习模型:

‑  使用的库:
keras、
tensorflow、
sklearn

‑  数据预处理

1)  除了现有的功能(开盘价、
最高价、
最低价、
收盘价、
交易量)
外,还增加了一个新的项目代码。
添加为功能

2)  通过除以价格相关指标和交易量相关指标来缩放到  0  到  1  的值
Machine Translated by Google

3)  通过应用滑动窗口,
每日数据为  3  个月,
5  分钟数据为  3  个月
缩短为模型生成数据的天数

‑  模型的输入:

1)  3个月的每日股价数据

2)  3天的5分钟股价数据

‑  模型的输出:
第二天的高点

最后选择次日高价较前一日收盘价涨幅大的个股。

‑  模型结构  [1]  [2]  [3]  [4]

具有  2  个  Conv1D  层和  2  个  LSTM  层的模型

每日数据和5分钟数据分别训练,
使用集成学习
利用模型预测值的平均值,
预测第二天的最终高价
Machine Translated by Google

‑  在线学习

‑  如果您仅使用截至模型创建时间点的数据进行学习,
则该模型将继续
使用时,
模型变成了只学习了以前的模式而没有反映新趋势的模型。

它可以是一个不可能的模型。
为了确保这一点,
请考虑新创建的数据

应用在线学习,
使学生可以通过归属感来学习。
调用保存的模型并创建一个新模型
在额外训练了  200  个  long  item  的数据后,
模型重新更新。
在附加数据上训练时,
不是在整个数据上学习,

而是在现有数据上学习。

它学习部分训练数据和新添加的数据。
每天数据的情况下,
6个月的数据,
5分钟数据的情况下,
额外学习10
天的数据。
由于是对一定规模的数据进行附加训练的方法,
所以旧数据和新增数据一样

之三将被排除在外。
由此,
反映了当前数据的模式而不是过去的数据。

会发生效果。
Machine Translated by Google

  交易执行:

  使用的API:
Kiwoom  Securities  Open  Api(开发者Open  Api指南,
也参考了KOA  Studio提供的开
发者基础API函数和代码)

  账号订购:
用户通过dynamicCall‑GetLoginInfo函数向服务器请求账号信息后,
它被实现以便可以选择它。

  Sell  Setting:
将用户输入的目标盈利率和止损率转换成一个float,
并应用‑为止损率

用过的默认值是在尽可能考虑盈亏率的情况下执行的。

  修改推荐项列表:
输入用户输入的值,
添加或删除。
按下时,
如果它在项目列表中,
则设置为添加或删除

  Buying  and  Selling:
买入和卖出是通过tick  bar来实现的。
用户修改的项目列表

通过dynamicCall_SetRealReg函数向证券公司服务器请求实时信息。
每当交易发生时,
证券公司
服务器仅限于请求的项目。
提供其过程如下。

该程序接收实时信息并进行买卖。
购买中
对于已购买的商品,
创建完成列表以防止重复购买,
从而完成购买。

已完成的项目在完成时更新。
此外,
买卖的默认值设置为目标回报率是止损率的两倍。
这是短线交易的
重要股票。
这是为了最大化盈亏比,
这在交易时很重要。
Machine Translated by Google

  买卖逻辑如下图所示。

【交易者的逻辑】

  用户界面

  工具:
PyQt

  卖出设置:
实现设置目标和止损比例。

  项目列表设置:
使用QTableWidget,
将项目列表提供给用户并添加。
并且,
如果删除,
则相应地再次更新项目列表,
以便为用户提供以下能力
化身

  下单账户选择:
使用ComboBox在您已有的账户中选择您要交易的账户。
使选择成为可能。

  交易:
配置交易开始按钮,
用户可以在需要的时间按下交易开始按钮进行交易。

  购买数量:
实现让用户可以选择购买的数量
Machine Translated by Google

[用户界面截图]

  角色划分

Bora  Shin:
数据收集、
机器学习模型

Kwangwook  Ahn:
交易员,
用户界面

产品:
数据爬虫,
开放API

  PERT  图
Machine Translated by Google

  甘特图

五、
发展成果

  功能需求:
允许用户设置购买金额、
订单账户、
推荐商品列表、
销售设置

实施的用户界面。

  演示链接:  https ://youtu.be/Uxdul4Z53ck
Machine Translated by Google

六、
最终评价

  功能评估

  交易设置:
输入一个卖出策略,
根据该策略进行自动交易满意

  AI设置:
在Portfolio  builder中从人工智能选择的股票中移除想要的股票

或附加功能  →  满意

  余额查询     未实现,
因为它不是自动交易的主要功能。

  非功能性评估

  性能:
根据条件从买卖订单发出到订单完成所用的时间
肝脏:
平均  0.7  秒(100  次测试)

  易用性:
操作简单,
UI构成简单。

用于自动交易,
而不是股票公司app已经提供的功能
提供专注于设置的功能。

  可靠性:
整个运行过程中无错误运行的百分比:
100%(程序测试时
错误经验  X)

  安全、
安全:
使用Kiwoom开放API提供证书登录。

  Data  Crawler :  (负责人:
Jung  Joo‑eun)

  存款信息、
账户评估余额明细、
非交易项目等账户信息收集   满意度

  收集实时物品数据和次日物品数据     满意度

  机器学习模型:
(负责人:
Bora  Shin)

train  data和validation  data使用截至2020年10月2日的数据,
各随机分成8:2。
当验证数据是特定时期的数据时,

该时期可能存在偏差,
因此验证数据是随机选择的并跨越整个时期。

最终评估模型的测试数据为2020/10/05到2020/11/30这40天的数据。
用过的

模型选取的topN个涨幅高的股票,
其实就是涨幅高的前3N个股票。
使用存在的概率评估模型。
使用  40  天的测试数据进行评估

并使用了平均值。  (股票总数为  KOSPI  200  指数后的  200  只股票。)
Machine Translated by Google

原来的目标值是h为20%以上,
但是可以看出当N为20时就满足了目标值。
全部。
这个模型在推荐  20  只左右的股票时比在推荐少量股票时更有意义。
可见可以得到结果。

  交易员:
实现盈亏比最大化的算法   满意度(导演:
安光旭)

  目标:
实现下图所示的算法,
以小而安全的收益率为目标

[画画。
目标逻辑]

  评价:
实现成功,
如下图所示。
对原始销售更正所做的任何更改
本来是通过取消订单重新下单卖出来完成的,
但是有一个叫修正卖出的功能,
所以取消‑>重新
排序的过程更高效地转化为单一的卖出修正过程。

  UI:
(负责人:
Ahn  Kwang‑wook)

  实现了允许用户输入卖出策略的功能   满意

  在Portfolio  builder中,
从AI选择的项目中移除或移除想要的项目
实现可以添加的功能满意
Machine Translated by Google

  实现一个可以设置item选择条件表达式的函数满足

  能够启动自动交易   满意度

七、
结论

  Future  Utilization  Plan:
交易短线股票时,
如果选择止损价和目标价进行交易,
您可以以任何您想要的价格进行交易。

  进一步的进展和改进措施:

  ML模型:
股价变化的因素很多,
不仅仅是过去的股价数据。

做。
仅使用过去的股价数据来简单地推荐股票是有限制的。

因此,
有必要利用新闻或其他指标来改进股价分析。

  操盘手:
通过加入对图表进行数学分析的算法,
每个项目的最大损失

让它成熟。

参考资料

[1]  D.  Wei,
“基于  LSTM  神经网络的股票价格预测”,
%1 国际会议

人工智能与先进制造  (AIAM) , 2019.
Machine Translated by Google

[2]  YC一个。  YLT  Gao,
“应用长短期记忆神经网络预测股票

收盘价,”
%1 第八届  IEEE  软件工程与服务国际会议
科学(ICSESS) , 2017.

[3]  DRGDAAM  Sneh  Jain,
“使用深度神经网络对每日股票数据进行股票价格预测
网络”,
2018  年。

[4]  RG  AAMS  Jain,
“使用深度神经网络对每日股票数据进行股票价格预测
网络”,
%1 高级计算与电信国际会议
(ICACAT) , 2018.

You might also like