[0051] 如果卖方C想要以m的数量出售BTC,则可以通过加密货币交易模块106e或在非常短的预定时间跨度内满足购买具有∣y-x∣的金额差异的BTC的后续顺序,其中m>(y-x),卖方B的其余订单也完成了OTC。
[0052] 因此,加密货币缓存模块106b维护例如最频繁交易的硬币的货币缓存110c以促进交易速度。很大一部分交易是场外交易。
[0053] 为了识别具有最佳值的货币交换序列,加密货币交易模块106e-结合AI预测模块106d-可以执行高级机器学习
算法和
数据处理技术,其产生在交易所内和/或跨越连接的交易所的加密货币价格变化的预测。然后,模块106e可以利用与特定货币相关的预测价格变化来确定用户请求的特定转换的最佳交易顺序(例如,预期BTC在接下来的30分钟期间价格会增加,因此模块106e可以选择考虑预期增长的交易序列-例如不使用BTC作为中间硬币的序列-为交换提供更好的价值)。以相关方式,服务器计算设备106可以生成通知消息,该通知消息描述由加密货币交易模块106e和AI预测模块106d生成的预测,以作为用户的可操作信息传输到客户端计算设备102a-102n。下面将描述机器学习价格预测数据的两种用途。
[0054] AI预测模块106d包含机器学习模型,该机器学习模型使用特定机器学习算法对一组
采样的
训练数据进行训练,该采样的训练数据从加密货币交易模块106e捕获的交易数据110a中剔除。一旦经过训练,就使用一组测试数据验证机器学习模型,以确认模型生成的价格预测不是错误的。然后,AI预测模块106d可以使用训练的机器学习模型来生成针对特定货币和/或加密货币的未来价格变化的预测。
[0055] 通常,这里描述的系统100利用机器学习技术来更有效地监控订单簿缓存和交易池,从而可以发现最佳加密货币交易路径和价格预测。具体地,对于某个交易对(例如,BTC→ETH),AI预测模块106d关注于两个任务:
[0056] 1.预测当前时间30分钟的交易量趋势;
[0057] 2.预测距离当前时间30分钟的任何两个加密货币交易之间的价格差距变化。
[0058] 预计大量交易量和价格差距可能导致频繁的交易需求(例如,如果BTC→ETH的两个交易所之间存在相对较大的差距,并且预计差距将持续一段时间,则可预测用户将利用套利的间隙)。如果该情况发生(或将要发生),AI预测模块106d需要增加订单簿缓存的更新
频率,向用户和加密货币交易模块106e提供最新数据。
[0059] AI预测模块106d
跟踪并记录关键指标作为预测过程的输入。这些关键指标包括(但不限于):
[0060] 在30分钟内(开放,接近,高,低,体积)-1分钟K线(也称为K线图案,通常用于时间序列中,用于预测建模,如Tao等人所述,“K-Line Patterns”使用相似性匹配和聚类方法的预测能
力分析,“工程中的数学问题,2017年,第3096917号,可在www.hindawi.com/journals/mpe/2017/3096917获得,其通过引用并入本文);
[0061] -在30分钟内5分钟K线;
[0062] -在30分钟内10分钟K线;
[0063] 传统指标:基于相应的K线,在30分钟内的停损点转向(SAR),指数移动平均线(EMA),相对强弱指数(RSI);
[0064] 自定义指标:订单深度,过去30分钟的平均交易量。
[0065] 应当理解,与其他类型的数据趋势和数据抽样分析不同,交易数据是时间敏感的-因此暗示遥远过去的价格变化的事件可能不代表未来的预期价格变化。例如,由于加密货币的使用和交易是如此新,超过六个月的交易数据通常不适用于近期加密货币价格变化的预测。结果,AI预测模块106d只能使用少量的加密货币交易数据来训练和测试其机器学习模型-这需要使用意想不到的技术来确保机器学习模型产生有效的预测。以下段落详细描述该技术。
[0066] K折叠交叉验证
[0067] 在机器学习环境中,有许多可能的方法将交易数据分成训练数据和测试数据。在一些实施例中,AI预测模块106d使用K折叠交叉验证,其中原始交易数据样本被随机划分为k个相等的子样本。在k个子样本中,保留单个子样本作为用于测试模型的验证数据,并且剩余的k-1个子样本用作训练数据。
[0068] 在一些实施例中,被分析的交易数据包括交易事件和加密货币市场快照。交易事件包括交易历史亮点,例如(但不限于)价格的急剧上升和下降,交易量的急剧增加和减少,网络拥塞度量(例如,区块链网络拥塞通过减慢投票来减缓交易确认过程)和分叉计划。
[0069] 市场快照是一个特定时间戳的市场情况,包括交易的大量加密货币,在该时间戳的价格以及趋势描述(例如,在预定义的时间段24小时,7天等+5%或-3%)。在一些实施例中,AI预测模块106d基于蒙特卡罗子采样确定选择哪个加密货币,蒙特卡罗子采样从所有货币中选择一个大的组,但随机地丢弃一些。在神经网络处理中使用类似的机制来防止过度拟合(例如,如N.Srivastava等人,“Dropout:A Simple Way to Prevent Neural Networks from Overfitting”,Journal of Machine Learning Research 15(2014),第1929-1958页,其通过引用并入本文)。
[0070] 在一个实施例中,一系列市场快照被用作训练数据。AI预测模块106d可以每分钟捕获一个市场快照,并且每年累积525,600个快照用于训练。AI预测模块106d保持快照的循环窗口,随着时间的推移用最新的快照替换最旧的快照。因此,不断更新训练数据和测试数据以改进机器学习模型。给定对趋势预测有意义的有限数量的快照,AI预测模块106d使用K折叠交叉验证(如上所述)来优化训练数据的使用。在划分训练数据之后,AI预测模块106d然后重复交叉验证过程k次(即,折叠),其中每个k个子样本恰好使用一次作为验证数据。然后可以对折叠的k结果进行平均以产生单个估计。该方法优于重复蒙特卡罗子采样的优点是所有观察结果都用于训练和验证,并且每个观察结果仅用于验证一次。
[0071] 在一个实施例中,AI预测模块106d使用10次折叠交叉验证,如下:AI预测模块106d将交易数据样本随机地混洗为十组d0,d1,...,d9。所有组都是相同的尺寸。然后,模块106d在组d0到d8上训练机器学习模型并验证,然后在d1到d9上训练机器学习模型并在d0上验证,等等。
[0072] 交叉验证的目标是估计机器学习模型与独立于用于训练模型的数据集之间的预期匹配程度。鉴于价格预测的性质,AI预测模块106d正在处理用于时间序列预测的数据。这样,模块106d基于滚动预测原点
修改交叉验证过程以允许使用多步错误。第一次计算实现了一步时间序列交叉验证,其中在每个预测源处重新估计漂移参数。第二次计算为整个数据集估计一次漂移参数,然后根据一步预测计算误差。
[0073] 数据规范化
[0074] 当系统捕获新的交易数据以用于产生价格变化预测时,,AI预测模块106d执行特征标准化步骤以标准化独立变量或数据特征的范围。例如,价格变化预测的最有影响因素(因此,最加权的因子)通常是其他加密货币的价格。然而,应该理解的是,这些价格在规模上有很大差异-例如,目前,在BTC上的10美元下降相当于约0.1%,但相当于ETH下降1%,相当于ETC下降50%。因此,加密货币价格预测背景下的“绝对价值”概念没有意义。AI预测模块106d重新缩放特征范围以缩放[-1,1]中的范围。选择目标范围取决于数据的性质。公式是:
[0075]
[0076] 其中x是原始值,x'是标准化值。除了单独的加密货币价格之外,AI预测模块106d还使用交易数据元素,例如总市值,交易量,新产品的发布和分叉作为影响未来价格变化的因素。AI预测模块106d以类似的方式量化和缩放这些因素。
[0077] 线性组合
[0078] 而且,因为(如上所述)许多因素可能影响未来的价格变化,AI预测模块106d线性地将这些因素组合在一起并且将每个因素的标量调整为权重。例如,假设X是影响因素x1,x2,...,xn和标量a1,a2,...an的矢量空间,那么这些矢量与标量作为系数的线性组合是:
[0079]
[0080] 弹性网回归
[0081] 在一些实施例中,AI预测模块106d的机器学习模型利用弹性网正则化回归方法,该方法线性地组合惩罚以获得更好的准确性。示例性朴素弹性网方法在Hui Zou和Trevor Hastie在《弹性网的正则化和变量选择》一书中描述了一种典型的原始弹性网方法。SOC。系列B,第67卷,第301-320(2005)页,其以引用方式并入本文中。人工智能预测模块106D采用弹性网回归技术,公式(1)-(9)如下:
[0082] 假设交易数据具有p个价格预测器的n个观察值。
[0083] 设y={y1,...,yn}T为响应,X=(x1|...|xp)为模型矩阵,其中xj=(x1j,…,xnj)T,j=1,...,p是预测变量。
[0084] 在归一化之后,AI预测模块106d可以假设响应是居中的并且预测变量是标准化的,如:
[0085]
[0086]
[0087]
[0088] 对于j=1,...,p。
[0089] 因此,对于任何固定的非λ1和λ2,AI预测模块106d将朴素弹性网标准L定义为:
[0090]
[0091] 朴素弹性网估计β是等式(6)的最小化:
[0092]
[0093] 设α=λ2/(λ1+λ2) (8)
[0094] 此过程可视为惩罚最小二乘法,其功能如下:
[0095] (1-α)|β|1+α|β|2 (9)
[0096] 被称为弹性网罚,这是套索和脊罚的凸组合。
[0097] 弹性网特别擅长处理高维度的相关特征组。定性地说,如果一组高度相关变量的回归系数趋于相等(如果负相关则达到符号变化),则回归方法表现出分组效应。在比例相同的变量事件中,回归方法将相同的系数分配给相同的变量。弹性网络生成具有良好预测
精度的稀疏模型,同时鼓励分组效果。当然,应该理解,可以在本文描述的本发明的上下文中使用其他回归技术。
[0098] 评估预测准确性
[0099] 预测“误差”是观测值与其预测之间的差异。在这里,应该理解“误差”并不意味着错误,它意味着观察的不可预测部分。它可以写成:
[0100]
[0101] 其中训练数据由{yl,,yT}给出,并且测试数据由{yT+1,,yT+2}给出。请注意,预测误差与残差有两种不同。首先,在训练集上计算残差,同时在测试集上计算预测误差。其次,残差基于一步预测,而预测误差可能涉及多步预测。
[0102] AI预测模块106d可以通过以不同方式概括预测误差来测量预测准确度。模块106d使用中值绝对偏差(MAD)来概括预测误差。MAD是对单变量定量数据样本的可变性的有力测量。它是在单变量数据集上计算的,用X1,X2,...,Xn表示,其中MAD是数据中位数绝对偏差的中位数:
[0103] MAD=median(|Xi-median(X)|) (11)
[0104] 使用中值绝对偏差来总结错误的目的是改进机器学习算法以最小化错误。
[0105] 正规化
[0106] AI预测模块106d添加额外的机器学习模型调整层以提高算法准确性。正则化是一种适用于不适定优化问题的目标函数的技术。通常,优选避免大的权重。权重的微小变化会使目标变量产生很大的差异。因此,AI预测模块106d为不重要的因子分配零权重,并且尽量不向任何因子分配太多权重。
[0107] 将正则化项(或正则化因子)添加到损失函数中,该函数描述了产生价格预测的成本。从有限数据集学习时分类器的经验学习总是一个不确定的问题,因为一般来说,它们只是试图推断某个给定例子的函数。应当理解,不使用最小绝对收缩和选择算子(LASSO)方法,因为LASSO通过连续收缩进行偏差-方差折衷。因此,LASSO在一组高度相关的变量中不能很好地工作。在跨区域链交易场景中,某些事件可能是相关的,例如,BTC和ETH价格的上升/下降可能是相关的。但是,LASSO倾向于从组中选择一个变量而忽略其他变量。
[0108] AI预测模块106d使用的弹性网(如上所述)向惩罚添加二次部分,其在Tikhonov正则化中描述(例如,在en.wikipedia.org/wiki/Tikhonov_regularization,其通过引用并入本文)。使用弹性网消除了对所选变量数量的限制,并鼓励分组效果。
[0109] 一旦AI预测模块106d如本文所述分析了交易数据,模块106d就可以生成针对特定货币和/或加密货币的未来价格变化的一个或多个预测。例如,AI预测模块106D可以确定,在过去的24小时,BTC上涨了12%,和在过去的两个月内,当BTC上涨超过10%时,ETH的价格在未来的24小时内以70%的概率上涨。在这种情况下,AI预测模块106d可以生成通知消息,该通知消息被发送回客户端计算设备102a-102n中的一个或多个。然后,客户端计算设备102a-102n上的app(或浏览器)可以将通知消息显示给相应的用户。图4是客户端计算设备上的用户界面400的示例性屏幕截图,其包括预测通知消息402。在一些实施例中,通知消息包括指示用户点击并立即请求市场价格的链接或按钮。一种或多种货币的一种或/或启动目标货币的转换。
[0110] 此外,应当理解,本文描述的预测技术可以利用Etherium Request for Comments(ERC)-20代币标准(例如,如在etherium.wiki/w/index.php/ERC20-Token-Standard中所定义的)以更好地预测各种代币(例如,与初始硬币产品(ICO),山寨币等相关联)将如何在更大的区块链/
智能合约系统(例如Etherium)内运行。ERC-20定义了Etherium中代币合同必须实现的特定功能和事件,例如totalSupply(),balanceOf(),allowance(),transfer(),approve(),transferFrom()函数以及Transfer和Approval事件。由于这些代币中的每一个都符合ERC-20标准,因此使用智能合约来转移此类代币是统一且可
访问的,因此,许多(如果不是全部)代币的代币价格变动将在一定程度上一致地上升和下降,这使得预测这些价格更加容易和高效。本文所描述的系统,导致计算能力和资源的消耗更少。回到图2和3,一旦加密货币交易模块106e识别出具有最佳值的货币交换序列,加密货币交易模块106e就执行(208)与最佳值相关联的所识别的货币交换序列。例如,图3的用户界面300将反映代表最佳转换的第二货币金额(例如ETH 6.983664),用户可以选择“开始兑换”按钮来执行货币交换序列。
[0111] 以下示例性消息描绘了具有由加密货币交易模块106e识别和编码的最佳值的货币交换序列(以JSON格式):
[0112]
[0113] 图5是使用图1的系统100执行所识别的货币交换序列的计算机化方法500的流程图。服务器计算设备106的加密货币交易模块106e验证(502)与客户端计算设备102a的用户相关联的电子钱包的一个或多个数据元素。例如,加密货币交易模块106e可以验证钱包的特定元素,例如:用户账户信息(例如,姓名,ID号,钱包地址),用户的手机号码,两步确认码等。模块106e还可以验证用户的电子钱包具有要转换的货币中的足够资金。
[0114] 应当理解,在一些实施例中,加密货币交易模块106e可以使用从客户端计算设备接收的位置信息(例如,GPS坐标等)来执行基于位置的交易验证-意味着模块106e可以确定用户的地理位置并应用一组符合当地和/或国家
证券法律和法规的交易规则,这些法律和法规管理用户特
定位置的交易。因为加密货币/区块链交易本质上是全球性的,并且可以是匿名的(与传统股票交易不同),所以本文描述的系统和方法有利地利用基于位置的验证来向加密货币交易过程添加合规和信任层。在验证完成之后,加密货币交易模块106e从电子钱包中提取(504)第一货币金额,并将提取的金额存储在临时缓存中(例如,在数据库110中)。在一些实施例中,加密货币交易模块106e还从用户的钱包中扣除任何交易费用(例如,图3中的费用306)。然后,加密货币交易模块106e与与货币交换序列相关联的多个加密货币交易所交互,以向多个加密货币交易所中的两个或更多个交易所发出(506)买卖订单,以接收第二货币金额并存储临时缓存中的第二货币金额。一旦执行了交易序列,加密货币交易模块106e就将第二货币金额发送(508)到用户的电子钱包的地址。
[0115] 以下示例性Python编程代码表示由加密货币交易模块106e生成的用于将GNT货币转换为DGD货币的消息:
[0116]
[0117]
[0118] 上述技术可以在数字和/或模拟电子
电路中实现,或者在计算机硬件,
固件,软件或它们的组合中实现。该实现可以作为计算机程序产品,即有形地体现在机器可读存储设备中的计算机程序,用于由数据处理设备(例如,可编程处理器,计算机和/或多台计算机)执行或控制其操作。计算机程序可以用任何形式的计算机或编程语言编写,包括源代码,编译代码,解释代码和/或机器代码,并且计算机程序可以以任何形式部署,包括作为独立程序或作为独立程序。适合在计算环境中使用的子例程,元素或其他单元。可以部署计算机程序以在一个计算机上或在一个或多个
站点的多个计算机上执行。该计算机程序可以部署在云计算环境中(例如, AWS, Azure, )。方法步骤可以由执行计算机程序的一个或多个处理器执行,以通过对输入数据进行操作和/或生成输出数据来执行本发明的功能。方法步骤也可以由
专用逻辑电路执行,并且装置可以实现为专用
逻辑电路,例如FPGA(
现场可编程门阵列),FPAA(现场可编程模拟阵列),CPLD(复杂
可编程逻辑器件)。,PSoC(可编程片上系统),ASIP(专用指令集处理器)或ASIC(
专用集成电路)等。
子例程可以指存储的计算机程序和/或处理器的部分,和/或实现一个或多个功能的特殊电路。作为示例,适合于执行计算机程序的处理器包括专用编程有可执行以执行本文所述方法的指令的专用
微处理器,以及任何类型的数字或模拟计算机的任何一个或多个处理器。
通常,处理器从
只读存储器或
随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和/或数据的一个或多个存储器设备。存储器设备(例如高速缓存)可用于临时存储数据。存储设备也可用于长期数据存储。通常,计算机还包括或可操作地耦合以从一个或多个
大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备,或者用于存储数据,例如磁盘,磁光盘或光盘。计算机还可以可操作地耦合到通信网络,以便从网络接收指令和/或数据和/或将指令和/或数据传送到网络。适用于实现计算机程序指令和数据的计算机可读存储介质包括所有形式的易失性和
非易失性存储器,包括例如
半导体存储器设备,例如DRAM,SRAM,EPROM,EEPROM和闪存设备;磁盘,例如内部
硬盘或可移动磁盘;磁光盘;和光盘,例如CD,DVD,HD-DVD和蓝光盘。处理器和存储器可以由专用逻辑电路补充和/或并入专用逻辑电路中。
[0119] 为了提供与用户的交互,上述技术可以在与显示设备通信的计算设备上实现,例如CRT(
阴极射线管),等离子或LCD(
液晶显示器)监视器,移动设备。显示器或屏幕,全息设备和/或投影仪,用于向用户显示信息以及
键盘和指示设备,例如
鼠标,
轨迹球,
触摸板或运动
传感器,用户可通过该设备向其提供输入。计算机(例如,与用户界面元素交互)。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如
视觉反馈,听觉反馈或
触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学,语音和/或触觉输入。
[0120] 可以在包括后端组件的分布式计算系统中实现上述技术。后端组件例如可以是数据服务器,
中间件组件和/或
应用服务器。上述技术可以在包括前端组件的分布式计算系统中实现。前端组件例如可以是具有
图形用户界面的客户端计算机,用户可以通过其与示例实现交互的Web浏览器,和/或用于发送设备的其他图形用户界面。上述技术可以在分布式计算系统中实现,该分布式计算系统包括这种后端,中间件或前端组件的任何组合。
[0121] 计算系统的组件可以通过传输介质互连,传输介质可以包括数字或模拟数据通信的任何形式或介质(例如,通信网络)。传输介质可以包括任何配置中的一个或多个基于分组的网络和/或一个或多个基于电路的网络。基于分组的网络可以包括例如因特网,运营商网际协议(IP)网络(例如,局域网(LAN),广域网(WAN),校园区域网(CAN),城域网(MAN)。),家庭区域网络(HAN)),专用IP网络,IP专用小交换机(IPBX),无线网络(例如,无线电接入网络(RAN),蓝牙,
近场通信(NFC)网络,Wi-Fi,WiMAX,通用分组无线电服务(GPRS)网络,HiperLAN)和/或其他基于分组的网络。基于电路的网络可以包括例如公共交换电话网(PSTN),传统专用小交换机(PBX),无线网络(例如,RAN,码分多址(CDMA)网络,时分多址),(TDMA)网络,全球移动通信系统(GSM)网络)和/或其他基于电路的网络。
[0122] 通过传输介质的信息传输可以基于一个或多个通信协议。通信协议可以包括例如以太网协议,互联网协议(IP),IP语音(VOIP),点对点(P2P)协议,超文本传输协议(HTTP),安全的文本传输协议(HTTPS),会话发起协议(SIP),H.323,媒体网关控制协议(MGCP),信令系统#7(SS7),全球移动通信系统(GSM)协议,即按即说(PTT)协议,PTT over Cellular(POC)协议,通用移动电信系统(UMTS),3GPP长期演进(LTE)和/或其他通信协议。
[0123] 计算系统的设备可以包括例如计算机,具有浏览器设备的计算机,电话,IP电话,移动设备(例如,蜂窝电话,
个人数字助理(PDA)设备,智能电话,平板电脑,膝上型电脑)。计算机,电子邮件设备)和/或其他通信设备。浏览器设备包括例如具有
万维网浏览器的计算机(例如,台式计算机和/或膝上型计算机)(例如,来自Google公司的ChromeTM,可从Microsoft Corporation获得的 InternetExplorer,和/或Mozilla公司提供的 Firefox)。移动计算设备包括例如来自Research in Motion的Blackberry,来自Apple Corporation的iPhone,和/或基于AndroidTM的设备。IP电话包括例如思科系统公司提供的 UnifiedIP电话7985G和/或 UnifiedWireless Phone 7920。
[0124] 包括,包含和/或复数形式的每个都是开放式的并且包括列出的部分并且可以包括未列出的附加部分。和/或是开放式的,包括一个或多个列出的部分和列出的部分的组合。
[0125] 本领域技术人员将认识到,在不脱离本发明的精神或基本特征的情况下,本主题可以以其他特定形式实施。因此,前述实施例在所有方面都应被视为说明性的而非限制本文所述的主题。