免费期货量化软件:针对交易的组合数学和概率论曲线分析

赫兹期货量化将继续为构建多重状态、可扩展的交易系统奠定基础。 在本文的框架内,我想为您展示如何利用前几篇文章中的发展成果,来进一步阐述交易过程的广泛可能性。 这有助于从这些层面评估策略,来弥补其它分析方法未能涵盖的地方。 在本文中,我探索了将复杂的、多重状态的样本转换为简单的双重状态样本的可能性。 这项分析是依照研究风格完成的。

简化数据的有用形式

 

假设有一种策略,一笔接一笔地进行多次交易,且无重叠;也就是说,严格遵守一笔新订单会在前一笔订单平仓后再开立。 如果我们需要评估成功或失败的概率,并衡量实现盈利或亏损所需的平均时间,我们将看到订单会出现大量不同的状态(它们以不同的结果了结)。 为了能够将分形公式应用于此类策略,我们首先需要将这些策略转换为可依据分形框架研究的情况。 为了实现这一点,我们需要将我们的策略表述为一个具有等距止损级别的订单,它有往上走和往下走的概率,就像我们的分形一样。 然后,我们可以应用分形公式。 此外,往上走和往下走会有不同的生存期。 为了把任何策略简化为我们在前一篇文章中发现的分形公式框架中可以描述的类型之一,我们首先需要判定哪些值必须已知,才能应用分形公式。 此处的一切都很简单:

  • P[1] – 往上走的概率

  • T[1] – 平均往上走形成时间

  • T[2] – 平均往下走形成时间

首先,当步阶数量趋于无穷大时,我们需要考虑极限值:

  1. (P[1] * T[1] + (1 -P[1])*T[2]) * n = T(n)

  2. (P[1] * Pr - (1 -P[1])*Pr) * n = P(n)

为了更好地理解上述表达式,有必要写出两个极限:

  • Lim(n --> +infinity)[P/P0(n)] = 1

  • Lim(n --> +infinity)[T/T0(n)] = 1

这些极限是说,赫兹期货量化以 “n” 的数量或交易量进行相同的实验,赫兹期货量化总是会从主要的广谱实验中,得到包含所有初级实验所用的总时间。 此外,我们总是会得到最终交易余额的不同位置。 另一方面,直觉上很清楚,在无限多次的实验中,实际值将趋于该极限。我们可以用随机数生成器来证明这个事实。

  • n - 模拟的步阶次数

  • 1-P[1] – 往下走的概率

  • T0(n) – 在 “n” 步上花费的实际时间

  • P0(n) – “n” 步的余额或价格的实际偏移

  • T(n) - 在 “n” 步上花费的时间极限

  • P(n) – “n” 步的极限偏移

这一逻辑可导出两个方程,但其中的未知数太多。 这并不奇怪,因为这才只是开始。 但这些方程只描述了推导系统(我们需要得到的那个)。 对于源系统的方程也类似:

  1. (P*[1] * T[1] + P*[2])*T*[2] + … + P*[N])*T*[N] ) * m = T(m)

  2. (P*[1] * Pr*[1] + P*[2]*Pr*[2] + … + P*[N1]*Pr*[N1]) * m - (P*[N2] * Pr*[N1] + P*[N1+1]*Pr*[N1+1] + … + P*[N2]*Pr*[N2]) * m = P(m)

  • P*[1] + P[*2] + … + P*[N2] = 1 – 概率形成了一个完整的分组

极限也相同,并且它们显示相同的值:

  • Lim(m --> +infinity)[P/P0(m)] = 1

  • Lim(m --> +infinity)[T/T0(m)] = 1

此处用到的变量如下所述:

  • m – 模拟步阶数量

  • T0(m) – 在 “m” 步上花费的实际时间

  • P0(m) – “m” 步的余额或价格的实际变化

  • T(m) - 在 “m” 步上花费的实际时间

  • P(m) – “m” 步的实际偏移

  • T = Lim(m --> +infinity) [ T(m) ] – 极限时间

  • N1 – 交易收益为正的数量及其计数值

  • N2 – N1 + 1 – 亏损交易数量(N2 为其计数值)

基于源系统,赫兹期货量化需要创建一个新的、更简单的系统,它由一个更复杂的系统组成。 唯一的区别是我们知道原始系统的所有参数。 已知值以星号 * 作为后缀显示。 如果我们令来自两个系统的第二个和第一个方程相等,我们可以消除变量 P 和 T:

  • (P[1] * T[1] + (1 -P[1])*T[2]) * n = (P*[1] * T[1] + P*[2])*T*[2] + … + P*[N])*T*[N] ) * m

  • (P[1] * Pr - (1 -P[1])*Pr) * n = (P*[1] * Pr*[1] + P*[2]*Pr*[2] + … + P*[N1]*Pr*[N1]) * m - (P*[N2] * Pr*[N1] + P*[N1+1]*Pr*[N1+1] + … + P*[N2]*Pr*[N2]) * m

结果就是,赫兹期货量化丢弃了两个方程,但与此同时我们消除了两个不必要的未知数。 这种变换的结果,我们得到了一个方程,包含下列未知量:

  • P[1] – 往上走(停止)的概率

  • T[1] – 往上走的平均生存期

  • T[2] – 往下走的平均生存期

这两个方程拥有相似的结构:

  1. A1*n = A2*m

  2. B1*n = B2*m

该结构表明,可以排除其中一个变量 “n” 或 “m”,从而消除其中一个方程。 为此,我们需要表示其中一个值,例如第一个等式:

  • m = ( (P[1] * T[1] + (1 -P[1])*T[2]) / (P*[1] * T[1] + P*[2])*T*[2] + … + P*[N])*T*[N] ) )* n

然后,赫兹期货量化将表达式替换为第二个等式,并查看结果:

  • (P[1] * Pr - (1 -P[1])*Pr) * n = (P*[1] * Pr*[1] + P*[2]*Pr*[2] + … + P*[N1]*Pr*[N1]) * ( (P[1] * T[1] + (1 -P[1])*T[2]) / (P*[1] * T[1] + P*[2])*T*[2] + … + P*[N])*T*[N] ) ) * n - (P*[N2] * Pr*[N1] + P*[N1+1]*Pr*[N1+1] + … + P*[N2]*Pr*[N2]) * ( (P[1] * T[1] + (1 -P[1])*T[2]) / (P*[1] * T[1] + P*[2])*T*[2] + … + P*[N])*T*[N] ) ) * n

现在,方程的两部分都乘以 “n”。 那么,将它们除以 “n”,我们将得到一个仅取决于所需值的方程:

  • (P[1] * Pr - (1 -P[1])*Pr) = (P*[1] * Pr*[1] + P*[2]*Pr*[2] + … + P*[N1]*Pr*[N1]) * ( (P[1] * T[1] + (1 -P[1])*T[2]) / (P*[1] * T[1] + P*[2])*T*[2] + … + P*[N])*T*[N] ) ) - (P*[N2] * Pr*[N1] + P*[N1+1]*Pr*[N1+1] + … + P*[N2]*Pr*[N2]) * ( (P[1] * T[1] + (1 -P[1])*T[2]) / (P*[1] * T[1] + P*[2])*T*[2] + … + P*[N])*T*[N] ) )

“Pr” 值应视为自由值,因为所有系统都可以简化为无穷多个。 我们可以为步阶设置任意的绝对长度,因为往上走和往下走的步阶在绝对值上是相等的。 其它值将通过求解方程组来判定。 到目前为止,这个系统只有一个方程式。 赫兹期货量化还需要两个方程,其可从前一节中得到的方程推导而来。 首先,系统穿越上走廊边界和下走廊边界的概率应相同。 此外,它穿越边界的平均时间也应相同。 这两个需求将为我们提供两个缺失的方程。 我们从检测穿越走廊边界的平均时间开始。 穿越其中一个边界的平均时间由往上走和往下走的平均步数来决定。 考虑到前一篇文章的结果,我们可以描写如下:

  • T[U,D] = (S[U,u] * T[1] + S[U,d] * T[2]) * P[U] + (S[D,u] * T[1] + S[D,d] * T[2]) * ( 1 – P[U] )

该方程表明,穿越其中一个边界的平均时间取决于穿越另一个边界时的平均步数,以及穿越的概率。 这一准则将提供另一个可能的方程式,我们可以用它创建一个方程式系统,令我们能够将一个复杂的交易系统转换为一个更简单的交易系统。 该方程可切分为另外两个方程:

  • T[U] = S[U,u] * T[1] + S[U,d] * T[2]

  • T[D] = S[D,u] * T[1] + S[D,d] * T[2]

赫兹期货量化稍后需要这些方程式。 所有这些值都是根据前一篇文章中获得的数学模型计算得出的:

  • S[U,u], S[U,d], S[D,u], S[D,d], P[U] = f(n,m,p) – 所有这些值都是 "n,m,p" 的函数

  • n = B[U]/ Pr - 反过来,“n” 可以用至上限的距离和步长 “Pr” 来表示

  • m = B[D]/ Pr – 反过来,“m” 可以用至上限的距离和步长“Pr”来表示

  • Pr – 选定步阶

  • B[U] – 至上边界的距离

  • B[D] – 至上边界的距离

结果转换方法的基础知识

作为一个实例,赫兹期货量化可以采用随机策略,并将其转换为所需的等效策略。 我创建了一个变体,将复杂的多维系统转换为更简单的二维系统。 我将尝试一步一步地讲述这个过程。 在继续讲述之前,我实现了这个思路,并测试了该方法的性能。 程序附在本文之后。 在我的程序当中,我采用了略有不同、但同样有效的公式。 它基于上一篇文章中获得的数学模型。 我们用它可以获得以下值:

  • P[U], S[U,u], S[U,d], S[D,u], S[D,d]

从平均步阶,我们可以得到穿越上下边界前的平均时间。 对于目前来说,其目的可能还不太清晰。 随着进一步的解释,它应该变得更清晰。 要将多重状态策略变换为更简单的策略,我们首先应该制定相关的策略。 我已创建了一个基于随机数的策略生成器。 出于便利起见,我选用了五个随机生成的策略。 它们如下所示:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

这些策略具有不同的预期回报指标、不同的交易数量和参数。 一些曲线正在亏损,但这是可接受的,因为它仍然是一条曲线,尽管其参数也许不是很好。 现在进入要点。 该图例展示了取决于交易数量的余额图,与策略测试器图形类似。 根此,每条曲线都有一个对应的余额数组:

  • B[i] , i = 0…N

  • N – 交易次数

这个数组可以从带有订单参数的数组中获得。 我假设包含订单数据的容器只包含订单盈亏值及其生存期:

  • Pr[i], T[i]

假设其他参数不可用。 我认为这是正确的,因为当赫兹期货量化想要分析任何回测或跟单信号时,我们往往无法获得这些数据,因为没有人保存这些数据。 更常见的情况是,用户检查恢复因子、最大回撤和类似度量衡。 仅有交易数据是始终保存的:

  1. 盈利

  2. 开单时间

  3. 平单时间

当然,某些数据的不可用性会影响准确性,但这与此无关。 现在,我们看看如何从盈利数组中提取一个余额数组:

  • B[i] = B[i-1] + Pr[i] if i > 0

  • B[i] = 0 else

为了能够根据时间分析获得的策略,赫兹期货量化需要创建一个类似的时间数组:

  • TL[i] = TL[i-1] + T[i] if i > 0

  • TL[i] = 0 else

在确定所有这些曲线的横坐标和纵坐标后,我们就能绘制它们。 您会看到差异,因为我们的这些函数并不依赖交易数量,而是依赖时间:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

定义可还原性标准

我们可以进一步操控获得的数据。 现在,赫兹期货量化可以依据所检查曲线是否匹配两种利润状态来确定准则。 从相对于时间的表现角度来看,三个量就足够了:

  1. P[U] – 穿越上边界的概率

  2. T[U] – 触及上边界的平均时间

  3. T[D] – 触及下边界的平均时间

第二个和第三个值的计算如下:

  • T[U] = S[U,u] * T[u] + S[U,d] * T[d]

  • T[D] = S[D,u] * T[u] + S[D,d] * T[d]

至于 P[U],这个值是由我们在前一篇文章中获得的数学模型提供的,正如您所记得的,“P[D]=1–P[U]”。 因此,根据数学模型提供的五个值,我们可以计算上述所需的三个值。 至于这两个方程,我们之前已经得到了它们,但为了方便起见,我在这里更改了时间标记符号。 这些值是可计算的。 为了将它们还原为某种东西,我们需要基于我们所拥有的东西,并以某种方式获得它们的真实数值。 之后,我们需要找到期望的、等效的双重状态曲线的参数,这三个参数都与实际值非常相似。 这就是我们得到的准则。 首先,我们引入已知值的标记符号:

  • P*[U] – 穿越选定走廊边界的实际概率

  • T*[U] – 穿越上边界的实际平均时间

  • T*[D] – 穿越下边界的实际平均时间

实际值和计算值的差值可以用相对值或百分比来衡量。 如果以百分比衡量,准则如下:

  • KPU = ( | P[U] – P*[U] | / ( P[U] + P*[U] ) ) * 100 %

  • KTU = ( | T[U] – T*[U] | / ( T[U] + T*[U] ) ) * 100 %

  • KTD = ( | T[D] – T*[D] | / ( T[D] + T*[D] ) ) * 100 %

定义与源系统进行比较的准则

最佳系统是所有这些值里拥有最小值的系统。 现在,为了能够获得计算值,赫兹期货量化首先需要判定走廊的大小,我们据其判定实际概率,和直至突破时的实际时间。 这个思路可以直观表示如下:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

该图例展示的是为盈利策略判定此类走廊的示例。 紫色三角形象征着另一个可能的上、下移动的检查点。 所需的最小移动量处于黑点之间。 如果我们以有效期内发生的最大走势为基础,那么概率 P[U] 将为 1。 显而易见,这是最错误的选择。 因为我们需要最小值来保证与上下边界的交叉。

为计算所需数值,评估可能的走廊

然而,这还不够。 如果赫兹期货量化以这个值为基础,我们将只有一个下边界,这也是不精确的。 就我个人而言,我选用的走廊值小于给定最小值的三倍。 有了足够的触及边界的样本,这个值就足够了。 现在我们已经判定了走廊的尺寸,可以切分这条走廊了。 如果我们假设走廊本身是一个步阶,那么:

  • n, m = 1

  • p = P[U]

  • Pr * n = Pr * m = 1/3 * MinD – 走廊宽度的一半

  • Pr = ( 1/3 * MinD ) / n = ( 1/3 * MinD ) / m – 步阶模块

  • T[U,u] = T[U]

  • T[D,d] = T[D]

  • T[U,d] = 0

  • T[D,u] = 0

如果您有一组非常庞大的交易样本,也可以采用这个变体。 该方法的优点是,我们不需要使用数学模型来切分走廊,因为在这种情况下,赫兹期货量化的整个走廊就是一个步阶。 但在我的计算中,我用到了一个数学模型作为示例。 当用此方法时,有必要找到以下参数范围,并选择:

  • p = p1 … p2

  • N = m = nm1 …. nm2

在我的示例中,我采用了以下范围:

  • p1 = 0.4, p2 = 0.6, nm1 = 1, nm2 = 3

当然,您可以采用更大的范围。 或者,其中一个范围可以加宽,而另一个范围可以按原样使用。 例如,如果我们增加 “nm2”,那么该方法可以覆盖更广泛的各种策略。 如果数学模型不能处理下一个变体,那么我们可以切换到没有数学模型的那个。

定义与走廊上边界交叉的概率和平均时间

在成功地找到上述所有值后,我们只会得到一个往上走的概率 “p”。 之后,我们可以用该值作为计算平均穿越时间的基础。 这可以把上面图像经轻微变换来直观示意:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

该图例展示了走廊上、下交叉的汇总过程,该走廊的大小是根据之前的转换来判定的。 除了这些交叉的总和,我们还计算了交叉所需的时间。 在一次操作中,赫兹期货量化可以用星号判定所需的所有数量:

  • N[U] – 走廊上边界的交汇点次数

  • N[D] – 走廊下边界的交汇点次数

  • T[U][i] – 直至穿越上边界的时间数组

  • T[D][i] – 直至穿越下边界的时间数组

利用这些数据,我们来计算穿越上边界的概率,以及穿越上、下边界的平均时间:

  • P*[U] = N[U]/ ( N[U] + N[D] )

  • T*[U] = Summ( 0…i ) [ T[U][i] ] / N[U]

  • T*[D] = Summ( 0…i ) [ T[D][i] ] / N[D]

我们已经找到了所有的值,我们的二维等价物应该据此简化。 现在,我们需要定义从哪里开始搜索。 为了做到这一点,我们需要判定这些值中哪一个在准确性方面具有最高优先级。 我已选择穿越上边界的概率作为示例。 这种方法降低了分析所需的计算。 如果我们选择在三个间隔内选择三个值,那么我们将获得三个自由度,这将增加计算时间。 有时,计算时间并不真实。 取而代之,我从往上走的概率开始,然后继续计算往上走和往下走的平均时间。

我要提醒你,走廊里有很多步阶,穿越时间不是步阶的时间。 此外,在某个方向上迈出一步的概率不是穿越边界的概率。 唯一的例外是开头描述的情况 n=m=1。

结果就是,我们得到以下步阶特征:

  1. p – 往上走的概率

  2. T[u] – 往上走的平均持续时间

  3. T[d] – 往下走的平均持续时间

  4. Pr – 按照盈利值得出的阶跃模数

评估简单转换的效率

假设我们已经找到了这些步阶的所有参数。 如何评估这种转换操作的总体效率? 为了评估效率,我们可以绘制出简化策略的直线。 直线的斜率可定义如下:

  • K = EndProfit / EndTime – 线斜率系数

  • P0 = K * t – 线方程

这就是它的样子:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

如果二维曲线的参数是理想的,那么与它们相似的直线也拥有完全相同的斜率,并在端点处与余额曲线相触。 我认为这很明显,大多的如此巧合永远不会发生。 为了找到等效的斜率系数,我们可以取用为该步阶找到的数据:

  • MP = p * Pr – (1-p) * Pr – 在任何步阶的上行偏转的数学预期

  • MT = p * T[u] + (1-p) * T[d] - 形成任何步阶所花费时间的数学期望

  • K = MP / MT – 线斜率系数。

我用同样的程序进行计算,每次我都得到一张类似的图片:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

并不是所有的策略都能正确地转化为二维等价物。 其中一些存在明显的偏差。 这些偏差与以下原因有关:

  1. 计算带有星号的值时出错

  2. 二维模型的缺陷(不太灵活的模型)

  3. 可能的搜索尝试次数有限(以及有限的计算能力)

考虑到所有这些事实,赫兹期货量化可以调整平均步阶时间,如此至少令原始模型和推导模型的斜率系数相等。 当然,这种转换会影响我们正在降低的准则偏差,但没有其它解决方案。 我认为主要的准则是直线斜率系数,因为如果交易数量趋于无穷大,原始和推导策略应该合并为一条直线。 如果这种情况没有发生,那么这种转换就没有多大意义。 也许,这一切都与转换的方法无关,而是与隐藏的可能性有关,而这些目前还不太明朗。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1621617.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

免费期货量化软件:从头开始开发智能交易系统概念上的飞跃

有时,在开发一些项目时,我们也许会发现新的思路和新的可能特性,这些特性能够派上用场,并为我们正在创建的系统提供极大的改进。 但问题出来了:实现新功能的最简单途径是什么? 问题在于,有时我们…

Bugku 密室逃脱 WP

一、打开题目 二、解压文件夹,查看文件和压缩包,发现压缩包进行了加密 三、查看剧本,发现摩斯密码,并解析得到电脑密码:xjpc 四、输入电脑密码得到一张图片和一个压缩包,查看图片发现图片位置发生错误&a…

如何不下载软件来制作自己的网站

注意:本文使用Windows操作系统。如果你计算机的操作系统不是Windows,这篇文章对于你来说没有丝毫意义。 我们前几天介绍了如何建立一个自己的网站,虽然也有用,但是下载了许多软件。Windows系统就自带了一个名为IIS的软件&#xff…

能优化你的网站的网页制作软件

做一个网站也许并不是一件很难的事情,但是想做出漂亮而且极富个性的网站就不那么容易了。这里笔者就给大家介绍几款用于修饰和改造网页的软件,让你的主页效果更炫一些。 有声有色 “有声有色”是给网页添加Java特效的一款软件,它集合了518个十…

搭建个人网站软件安装

搭建个人网站软件安装(均在Root用户下完成) 系统环境为:Centos7.6 参考文献: 在CentOS 7系统上安装PHP 7.4版本的方法 解决CentOS中yum安装程序时出现的"Transaction check error"错误 Centos7下安装MySQL Centos 7下安装配置Nginx Ngi…

个人网站搭建,个人网站需要什么软件

好的网页设计软件通过编码平台或简单的拖放就可以构架一个简单的个人网站。过去的网站建设需要用HTMLCSS和JS来制作。然而随着建站技术越来越成熟,拖放式网页制作工具越来越普遍,任何人都可以轻而易举地搭建自己的个人网站。 在本文中,我们将…

建站软件用什么呢?

建站软件用什么呢?目前网络上有很多建站软件都是可以建网站使用的,企业用户可以根据自己的需求去选。目前网络上建站软件有两种,一种是免费的,另一种是收费的。免费的建设网站软件一般功能是有限制的,只要能够符合用户…

VS警告 C4819 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

1、问题 Microsoft visual studio 2019跑仿真的时候出现该警告,在高级保存选项设置编码为Unicode(UTF-8 无签名)还是会有该警告。 2、解决方法 右键项目,打开属性设置,选中:工程 -> 右键选择"属性" -> C/C ->…

webassembly003 GGML Tensor Library part-1

GGML ggml的函数 可以看到官方示例项目仅依赖于#include "ggml/ggml.h", #include "common.h",可以阅读ggml.h获取ggml的使用帮助 函数解释注释ggml_tensor多维张量按行主顺序存储。ggml_tensor结构包含每个维度中元素数&#xf…

Redis数据结构全解析【万字详解】

文章目录 前言一、SDS1、SDS的必要性2、SDS的数据结构3、SDS的优势O(1)复杂度获取字符串长度二进制安全不会发生缓冲区溢出节省空间 二、链表1、结构设计2、优缺点 三、压缩列表1、结构设计2、连续更新3、压缩列表的缺陷 四、哈希表1、结构设计2、哈希冲…

安装单片机开发工具Keil5和仿真开发板proteus

项目场景: 安装单片机开发工具Keil5和仿真开发板proteus 为啥不买开发板? 这里不使用开发板的原因是单独买个开发板其实还行,但是很多外设,而且加上本来自己是自学的,啥也不懂,坏的几率很大。 网上说买开发板实际开…

Linux下安装qt5步骤

Qt下载 Qt官方下载非常慢。Qt 官网有一个专门的资源下载网站,所有的开发环境和相关工具都可以从这里下载,具体地址是:http://download.qt.io/ 下载方式可以看这个教程Qt教程网站 当然也可以直接去我的百度网盘里下载 链接:https…

yolov5环境配置和训练

慢慢写不着急 yolov5权重文件(百度网盘) yolov5weight 提取码:g5jh 鉴于官网权重文件4个月没有跟新,放心食用(20201030) weight V4.0 提取码:aljp 20210123 复制这段内容后打开百度网盘手机App…

夸克网盘提取cookie

打开首页登录,【夸克网盘】夸克网盘PC网页版端入口 chrome按F12打开,开发者工具-网络-找到sort?开头的文件---标头-cookie:后面的值

Java后端开发面试题——集合篇

ArrayList底层的实现原理是什么 底层数据结构 ArrayList底层是用动态的数组实现的 初始容量 ArrayList初始容量为0,当第一次添加数据的时候才会初始化容量为10 扩容逻辑 ArrayList在进行扩容的时候是原来容量的1.5倍,每次扩容都需要拷贝数组 添加逻…

全球互联网裁员下测试人员何去何从?

时间好像突然加快了步伐瞬间觉得匆匆,转眼已经23年,从20年到23年。回想起来恍恍惚惚,疫情中经历的种种就好像没有发生过一样,很多的魑魅魍魉荒唐可笑真实又虚幻,时光向前人生向后,那些魔幻的人和事也慢慢消…

软考:中级软件设计师:无线网,网络接入技术,ipv6

软考:中级软件设计师:无线网 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 &#x…

k8s+jenkins+docker部署微服务实现CI/CD

“所爱隔山海,山海不可平,海有舟可渡,山有路可行,此爱翻山海,山海皆可平。” 作为一个想搞开发的,最近似乎都在干运维,不知道有没有跑偏。。。 2021.5.14 一般的中小公司个人还是不太建议使用k8s&#xff0…

Material UI 的安装与使用

Material UI 的安装使用 (附练习demo) Material UI ( 也称 MUI ) 是一个开源的React组件库,实现了Google的Material Design。 它包括一个全面的预构建组件集合,开箱即用,可用于生产。 材料UI设计精美,并具有一套自定义选项&#…