English Русский Español Deutsch 日本語 Português
资金管理回顾

资金管理回顾

MetaTrader 4交易 | 11 四月 2016, 16:54
6 002 0
Hide
Hide

引语:

简介

交易活动可以分成两个相对独立的部分。第一个部分称为交易系统 (ТS),作用是分析当前状况,做入市决策,定义仓位类型(买入/卖出)和退市时机。第二个部分称为资金管理系统,定义每笔交易中的资金金额。本文中,我们尝试根据 MM 策略中参数的变化对这些策略进行分析。我们选择了模拟法进行分析。但是,某些情况下还要考虑分析决策的结果。分析工具是 МТ4 交易终端和 Excel。此外还要使用提供伪随机数生成 (PRNG) [1] 的库、统计函数 [2] 和用于将数据从 МТ4 传输至 Excel [3] 的模块。

假设任意交易活动 (TA) 都有某种程度的不确定性。换句话说,已知 TA 参数有一定的精确度,但永远无法进行完全精确的定义。“随机赌注”的策略可作为此类 TA 的一个好例子,也许也是最简单的例子。使用此策略,交易者随机(例如,通过抛硬币)押注于某个货币汇率将相对于另一个上涨还是下跌一定的点数。货币汇率的生成很可能与抛硬币的结果并不相关。因此,我们就有了一个 TA,其中产生的交易结果相互之间并无关联(伯努利交易结果)。此外, 我们也无法定义下一次抛硬币的结果或是预测它是否匹配未来的货币方向。我们只知道,在尝试次数足够多的情况下,每 100 次中约有 50 次是匹配的。很多交易者相信他们的交易有所不同。也许他们是正确的,但首先我们会查看这个特殊案例。然后我们将分析系统的行为和性能,在此系统中,100 次尝试可预测的次数超过 50 次。

从结构上看,本文首先使用“理论”示例分析最有趣的 MM 参数。然后我们将尝试对 MM 的行为建模,相关数据类似于真实的外汇交易情况。要注意的是,我们不会分析特定的 TS。假定无论使用什么 TS,它都仅向我们提供有关获利和亏损的数据和指定的概率,以及预设的获利和亏损值。这里不考虑与实际交易结果的独立性定义(伯努利)以及与 TS 稳定性的及时评估相关的事宜。

前面已经提到,我们将使用模拟法。实际上,模拟的本质是基于用预设参数生成的伪随机数定义下一次赌注的结果(获利或亏损)。赌注大小由选定 MM 策略定义。如果赌输了,则从交易者当前的资金中扣除所下赌注。如果赌赢了,资金增加。将模拟指定数量的交易,之后计算总结果。然后重复此流程多次(从数百次到数十万次不等),之后以最合适的方法取结果的平均值。


一些基本术语和缩写

先说一下最终财富比例 (TWR ) 的概念。它将从一系列交易中获取的总利润用初始资金的乘数来表示。换句话说,如果我们将最终资金除以初始资金,就得到了 TWR。例如,如果利润有 12%,则 TWR=1.12。如果亏损有 18%,则 TWR=0.82。可以比较各种 TA 的结果,无论初始资金的绝对值为多少。同样,[4]、[5] 和 [6] 也这样使用术语 TWR

下一件重要的事情是“赢”的概念。任何结果,如果它的值超过初始值,就表示赢了。换句话说,TWR>1 就是赢了。相应地,不满足上述条件就是输了,即 TWR<=1。因此,当最终资金等于初始资金时,即 TWR=1,也算是输了。不过必要时,这种情况可以单独考虑。此外,有一种“输”的概念表示资金亏损(无论亏损是因单个交易还是一系列交易而导致的),之后无法继续交易活动。例如,情况可能是资金已经全部亏掉 (TWR<=0) 或剩余资金小于某个最小值(保证金)。

现在,让我们看看本文中使用的通用符号。赢的概率用 p 符号表示。其正常维数是单位分数。输的概率为 q=1- p。总交易数 - N,获利交易数 - V,亏损交易数 - L。按绝对价值计算,获利交易的规模被定义为 a,而亏损交易的规模被定义为 b,获利/亏损比为 k= a/b。在讨论相对于资金规模的获利\亏损交易规模时,各自的符号为 a% b%a% b% 的比率为 k。相对于资金的赌注大小用 f 表示。

计算期间发生事件的概率用 Prob 表示。必要时也还会用到其他符号。

此外,本文中的“赌注”和“交易”概念是一致的。它们都表示同一个东西 - 单次交易操作 (SТО)。根据上下文的不同,一系列此类 STO 可以称为一个赌局或交易。很多交易者并不喜欢这个称呼,但赌局一词很恰当地表现了交易活动中出现的不确定性。

历史背景

对基于抛硬币的 TS 属性的研究已持续了相当长的时间。其最简单的形态就是“正面还是反面”的赌博。赌局的参与者是两名拥有一些初始资金的玩家。双方抛硬币,正确叫出朝上一面的玩家赢得另一个玩家的一部分资金。否则,该玩家输掉自己的一部分资金。这就是数学家眼里经典的“赌徒破产”问题。相关的研究非常详尽,众所周知,结果取决于初始参数。

解决“赌徒在对阵非常有钱的对手时会破产”的问题的基本结果对交易者来说更为重要。这里,非常有钱的对手用交易中心 (DC) 来表示。如果你实在不想以 DC 为对手,可以将所有其他外汇交易者视为一个非常有钱的对手。

这种赌局有什么问题?我们不讨论无限博弈情况。没人能无限赌下去,因为可能无论如何都会以悲剧收场。让我们假设赌局是有限的,包含 N 次交易。假设你猜对的几率是 p>0.50,而输赢的值是相等的,即 a=b。我们再假设你想要在 N 次交易中获胜的次数达到可能的最大值。

在赌局中实现最大利润的最佳策略是下可能的最大赌注,即你手头的所有资金。但是,数学已证明,这种情况下的破产概率可用方程式 1-(pN) 计算,此概率取决于 N。[7][8] N 的值(即下注次数)越大,破产概率越高。因此,如果必须要赌,N=1 时破产概率最低。如果不是必须要赌,最好的策略就是不赌,因为破产概率为 0。

注意:这里有一个常见的误解。很多人相信,如果游戏赔率是相等的,那么他们的可能收益约为 0。这就好比他们和对手拥有差不多的资金。

在实际交易中,这意味着即便你能够在 3 次交易中赢下 2 次,并且每次都赌上你所有的资金,还是会发生以下情况。第一次交易中破产的概率为 1/3。这是一个很好的结果,但到第 10 次交易时,破产概率等于 ~0.98

因此,想要最大化利润,就需要满足一个荒谬的要求,即,一次性押上你的所有本钱,并且,只赌一次。这个结果当然不太令人满意,因为你还希望你的赌局中赌的次数越多,你能赢到的最终利润会越大。

我们可以通过消除最大利润要求来增加此类赌局的时间并降低破产的概率。换句话说,下注时只用一部分资金。如果这一部分非常小,那么赌局就可以持续相当长的时间。这一点也是经过数学证明的。[7][8] 然而在这种情况下,最终的收益也会较少。因此,高赌注增加了可能的利润,也提高了亏损的风险。低赌注降低了风险,也减少了可能的利润。那么就出现了一个问题,赌局中最合理的赌注应该占资金的几分之几(从特定角度来看)。

这些是通常的推理和假设。此问题已被彻底地研究过。随之出现的是整个所谓“资金管理”的领域,用于解决此问题。有多种 MM 方法,能够以各种途径满足破产概率和利润值的要求。篇幅所限,我们无法探讨所有方法,所以只重点介绍其中两个:定义固定大小赌注的方法,和以固定比例的资金下注的方法。

一些理论

如果我们忽略所有数学智慧,MM 中的关键时刻会是一个问题,此问题可做如下陈述:在一段时间之后(例如,交易数量),发生某事件的概率是多少(例如资金增长或破产)。实际上,这是一个看法问题,因此这个时刻可以是固定的,且仅可考虑两个参数 - 事件概率和事件本身。

如果我们考虑最简单形式的“正面还是反面”,那么只要知道 N 次投注的次数,就能非常轻松地算出一些东西。例如,每一次投注 (1) 的收入的数学期望值 (МО) 或一系列投注 (2) 的预期收入。注意,这里的 МО 是相对于初始资金而定义的。这意味着当 МО>0 时,期望值为正值,如果 МО<0,则预计每次投注平均起来是亏损的。

对于 [9] 中所述的情况:p=0.45,q=0.55,a%=0.08,b%=0.05,N=20,结果为 MO=0.0085,TWR=1.170。这种情况的有趣之处在于,当赢的概率 p<0.5 时,МО 在一次下注时保持正值,并预期最后可获得初始资金的 ~17% 作为利润。

警告:另一种 MM 方法在 [9] 中进行检查。因此,虽然输入数据类似,但结果将是不同的。

然而,此类期望值近似于全盘平均值。它并未根据获胜赌注的数量给出某些结果出现的概率,这就使风险评估变得更为复杂。因此,让我们再引入两个方程式,用于计算一定次数的获胜赌注 (3) 的利润以及计算一定次数的连续获胜赌注 (4) 的发生概率。

现在我们只需要计算所有 V= 0,1,...,NL=N-V 的值,并创建 Prob(V)TWR(V) 的依赖图。对于之前所述的案例,图形如下所示。注意,图中显示 ProbTWR 轴,不带 (V) 指数。这个工作是单独完成的,可以让图形看起来不那么复杂。


图 1

使用方程式 (3) 和 (4) 计算得出的结果显示为绿点。图形的说明如下。例如,当 TWR=1.04 时,发生交易系列结果的概率是 0.162。最常见的是概率为 0.177TWR=1.170 等。蓝点代表累积概率形式的相同数据。因此,我们的输入数据的亏损概率(即赌局的某些回合中的 TWR<=1.00)为 0.252。图上不显示极值。破产情况下 (TWR=0.00),Prob=6.4E-06。最大收益 TWR=2.60, - Prob=1.2E-07。这些是非常小的概率。但它们的存在引发了另一个重要问题。

让我们用以下示例说明这个问题。已针对以下条件执行计算:p=0.45,q=0.55,a%=0.05,b%=0.05,N=50。结果显示在图中。


图 2

我们可以看到,TWR 的取值范围为 -1.503.50。仅在资金金额小于 0.0 的情况下执行赌局时,才会出现 TWR=-1.50 这种情况。因此,我们所用的方程式并未考虑到这种情况,即资金在某个中间交易中已经耗尽,赌局无法继续。那么,新的任务就出现了,就是所谓的“边界吸收问题”。这个问题认为现有资金有某个边界(或限制)。达到这个边界时,赌局将停止。在其最简单的形式下,假设边界 =0。但我们更感兴趣的是它采用任意值时发生的情况。此问题的分析解决方案的某些方面在 [7] 中进行了说明。

机遇范围

让我们试着用数字方式来解决这个问题,首先使用迭代计算,然后使用基于随机方法(蒙特卡洛法)的模拟建模。首先,让我们查看图形并试着解决问题。


图 3

图中系统性地显示博弈期间资金可能的变化轨迹。显示三种情况,当然实际上远不止这三种。例如,假设资金超过 0.3(抵押要求)的玩家才允许参与赌局。假设赌局走的是红色路线,并变得无法继续游戏。出现了边界吸收轨迹,意味着完全破产。玩家退出游戏,而走绿色或蓝色路线的玩家则不同。因此,我们需要定义之前步骤的破产概率,以在某个明确步骤上定义此概率。

执行此类计算时采用的最简单、最直观也非常古老的技巧是帕斯卡三角形。实际上,这是一个递归过程,在此过程中,将使用之前的值来计算下一个值。以下显示的是略有修改的三角形。


图 4

绿点表示图中 TWR 轨迹会穿过的可能位置。在这种情况下,可使用方程式 (3) 计算 TWR。这些点有 Prob 值(分子)和 TWR 值(分母)。z% 符号指定发生吸收(黑线)时的边界值。红色水平线是通过 z%+b% 值绘制的。

点相对于红线的位置代表着什么?如果该点的位置较高,则可能可以进入下一轮。当红线穿过该点时,这是进入下一步的最后一个机会。如果成功,赌局继续,否则就发生吸收。红线与黑线之间的点是可达到的,但不可能进入下一步骤,因为资金已不足以进行下一次投注。换句话说,这不是完全破产,但赌局仍然无法继续。

注意:当然,在整数赌注的情况下这是不可能发生的,就像抛硬币一样,但如果赌注等于资金的 0.15,则总体状况就如上述示例那样。


图 5

此图包含不同边界条件下的计算结果。如果我们将其与上一图进行比较,我们应该能够注意到两者的区别。


图 6

现在,拥有这些数据后,我们能够知道任何事件的概率。例如,在图 6 中,当 N=6 时,相对于 TWR=1.4Prob 是多少?答案是 0.234。或者当 N=6 时,相对于 TWR>1 的 Prob 是多少?应将对应的 Prob 值求和。答案是 0.344。或者当 N=6 时,相对于 TWR=1.1 的 Prob 是多少?答案是 0。等等。

此系列的最后一个示例具有“大为逊色”的输入值:显示 p=2/3,q=1/3,a%=0.1,b%=0.2,z%=0.2 以展示 ProbTWR 在此情况下的变化。我们可以看到,赢的概率超过输的概率两倍。但是,获利大小是亏损大小的一半。


图 7

如果 TWR>1Prob=0.351。此 Prob 值非常接近图 6 显示的状况。但很明显,在可比押注次数中可实现的 TWR 值会小得多。

另一个我们还未讨论的重要事项关乎参数 f,此参数指示赌注中涉及的资金份额。事实上,这就是交易中所用的资金份额,即 b%。在经典的“正面还是反面”掷币方法中,可能会仅损失一部分可数的“硬币”。因此,像 1/f 这样的表达式显示的是会导致破产的连续亏损次数。1/f 参数在我们的案例中可能是非整数。同时,考虑到投注的不可分割性,投注次数不可为非整数。这意味着当赌局无法继续时,仍可能有一部分资金剩余(这一部分将少于 b%)。换句话说,这一部分是零风险的,因为不可能会亏损。就这一点而言,参与赌局的资金金额实际上要减去这个值。因此,z% 参数实际上增大了此值(见图 5)。在这种情况下,如果 z%>0,则 f 倾向于超过 b%。考虑到所有这些情况,实际的 f 可用以下方式计算:

其中 int 符号代表截断。对于图 5 中所示的例子,b%=1/5,但实际 f=1/3

机遇持续时间

让我们将结果视为 ProbTWR 之间的对应关系。已选择了多个不同的输入数据集作为一个示例。所有系列的长度都相同 - N=15


图 8

以下是图中显示的内容及其由来的一些相关说明。每条曲线都以“空”点开头(如果我们从左到右看)。这些是条件点(在某些情况下),实际上是不存在的。不过,它们可用于指示某些中间步骤上出现的吸收概率。换句话说,这是轨迹未达到最后一步的概率。图中的下一个点表示在考虑到所有之前的破产情况(有一些例外情况,但这里并不重要)下,最后一步发生吸收的概率的实际数据。

下一个图像演示了破产概率根据 N 系列长度所发生的变化。此例中所用的输入数据与图 8 中相同。接下来我们会发现,这两例的结果有很大的不同。


图 9

最重要的是,如果系列长度增加,破产概率也会增加。在边界吸收赌局中,这个关键问题是无法解决的。然而,并非所有事情都如同起初看起来那么糟糕。利用 TS 参数,破产概率最终可能变得很小(见红线)。如果 TS 参数并不非常成功,破产会很快到来(见棕线)。

另一个重要的问题是总体盈利的概率。我们已经探讨了 TWR<(z%+b%) 的情况,现在该根据 N 来定义 TWR>1 的概率行为了。


图 10

在以绿色和黑色显示的情况中,我们采用中性策略,即 MO=0 的策略,并且我们有充分的理由认为赢的概率应有 0.5 左右。然而事实并非如此。情况还要牵扯到边界吸收问题。

可能的 TWR 在特定步骤上出现的概率就是这样的。在这种情况下,N=50,类似于图 10 的值。


图 11

这些是普通的分布曲线。它们与传统分布曲线的不同之处在于,它们相对于其最大值是不对称的,而且相对于它们的最小和最大 TWR 值也是不对称的。此外,某些曲线有明显的歪斜现象,类似于对数正态曲线。另一个有趣的现象是,当我们将图 10 和 11 进行比较,我们会看到以下情况。虽然图 11 中的大部分分布情况中,TWR 值超过 1 的可能性都是最高的,但 TWR 值真正超过 1 的概率还不到 0.5。此外,当 MO=0(黑线和绿线)时,就像可以预料的那样,最可能的 TWR 也不等于 1。这其中并没有自相矛盾之处。

到此,这段对“边界吸收任务”的几个方面的简要回顾就结束了。我们要做下一件事是执行随机模拟,并将结果与之前所获结果进行比较,以评估推理的正确性和模拟精度。

模拟

我们一般使用以下模拟算法。在每次抛“硬币”之前,检查资金金额。如果资金不足以继续赌局,则赌局停止。如果可以继续,则使用 PRNG 定义赌注是赢还是输。根据结果增加或减少资金。整个赌局中都使用同一种算法。赌局中回合数较多时,结果取平均值。这一切都很简单。随机方法的唯一问题就是其精度。使用此方法时,根本不可能找出任务的精确解决方案,这一点已有数学证明(参见棣莫弗悖论)。因此,我们在将此模型用于未来的计算之前,应该先定义结果在多大程度上与其他结果相一致。

让我们针对以下参数比较两种解决方案:p=0.5,q=0.5,a%=0.2,b%=0.1,z%=0.0。以下两张图(12 和 13)显示了结果的一致性。


图 12


图 13

之前所获的值显示为绿色。黑点显示模拟结果。红色表示误差,即预期值与模拟值的比例。图 12 显示值,而图 13 是累加和。匹配地相当好。值中点处的误差率小于 0.5%。当然,误差率在值范围的边沿时较高。但没什么好担心的。我们只需要在今后考虑到这个情况就行了。除此以外,我们更加关注的是累加和。这里的误差率小得多(这是累积曲线的一大特色,因为不同值的误差会彼此抵消)。

模拟结果的另一个特征是几乎无法获取极罕见值的概率。在上例中,最大 TWR=11,而 Prob= 8.88E-16。这些值在模拟中是无法获取的。

另一个表明上述事实的示例是 N=250p=0.5,q=0.5,a%=0.1,b%=0.1,z%=0.0。这里无需更多注释。


图 14


图 15

现在我们可以以此模型为基础,解决比上述问题更复杂的问题。

交易操作

在继续讨论之前,我想重点说一下概念和方程式。乍看之下,实际交易和上述的“正面还是反面”掷币游戏大有不同 - 考虑到这一事实,模拟期间需要做更多的工作。因此,有必要立即澄清我们未来必须应对的问题。当然,大部分读者对此都有自己的看法。以下是一些有用的概念和符号。

注意:为简单起见,仅检查使用“直接报价”货币对(例如 EURUSD 和 GBPUSD)的交易。“间接报价”货币对和交叉汇率采用不同的方式计算。对于间接报价货币对,点的价格会根据当前报价发生变化。对于交叉汇率,还需考虑基准(第一)货币对 USD 的当前报价。此外,这里不使用 ASK 和 BID 概念。

交易中使用的资金称为 Deposit。我们有权买入和卖出使用 Leverage 和特定 LotSize 的合约。合约可能有多个部分,因此我们需要将的概念作为一个参数,指示应用的合约大小。以基准货币计算,所用的一手的实际大小将被相应地称为 LotPrice。我们应该为买入或卖出的权利支付 Margin。如果将 Margin 表示为 Deposit 的份额,我们会得到 Margin% 参数。我们还用 StopOut 指示 Margin 的最小份额。达到此最小份额即会导致当前交易关闭,并强制停止交易。因此,有两种不同的情况会无法进行进一步交易(使用所需的 LotPrice 比率),即破产情况。此外还包括另一个参数 Sigma。这是考虑到债转股情况下交易操作中所用资金的比率。所用资金与实际资金的比率,即杠杆模拟,尽管它应用于整个 Deposit 而非 LotPrice

作为交易流程的特征的基本概念之一是 Quote - 当前汇率。最小汇率变化为 Tick。交易品种汇率的最小变化规模为 TickPrice,被视为 Deposit 的一部分 - Tick%

此外我们还有一些与汇率变化相关的参数:所谓的 TP (TakeProfit) 和 SL (StopLoss) - 利润或亏损固定时的汇率变化。如果我们用货币形式表达这些参数,它们将被称为 TPpriceSLprice。表示为 Deposit 的一部分的参数将被称为 TP%SL%。此外还有各种经销商佣金,包括 SpreadSwap 等。我们不会检查这些参数的整体多样性,只关注 Spread,此参数值通常以变化率点数显示。必要时,可以相当轻松地考虑 Swap 数据(如果也是以点数显示)。如果 Swap 作为配合杠杆使用的借入资金的实际利率,那么情况还会变得更复杂一些。

让我们将所获参数与“边界吸收”问题中所用的参数相比较。SL% 明显对应于 b%,而 TP% = a%。初始资金已用 TWR=1 表示。当前情况也是类似的,因为我们的计算基于以单位的分数显示的参数。z%+b% 边界值通常可视为 Margin%。这些概念之间有些区别,但在不考虑 StopOut 存在的情况下,这些区别并不那么重要。由此看来,在第一次逼近时,任务是相似的。我们稍后会检查这个说法。

如果我们仔细审视方程式(9、11、13、15),我们会看到它们都含有 Sigma 参数。前面已经提到,这是所有关键方程式中都会用到的杠杆的等同项。Leverage 可以直接影响的仅有 Margin%


图 16

可通过以下示例检查计算的正确性。假设如果 Leverage=100 LotSize=100000Lots=0.1Deposit=10000,保证金大小为 100。如果我们查看相应的(棕色)图形,我们会看到 Margin%=0.01。如果 Deposit=10000,所获结果是 100

可在图上观察到两个特点:第一,Sigma 值越大,Margin% 越大,话句话说,交易中可用的自由资金就越少。第二,减小 Leverage 值会增加 Margin%。让我们查看图 9,该图中也有类似的情况(蓝线和绿线)。这些案例的唯一区别就是 z% 值。可以看到,在其他条件都相同时,增大边界值会导致破产概率增加。

由于 SL%Leverage 之间并无直接关联,让我们检查此参数与 Sigma 和 (SL+Spread) 的依赖关系。


图 17

增大 Sigma 参数会导致 SL% 值增大。因此,破产概率又会大大增加。这种依赖关系是一种线性关系。事实表明,要减小 SL%,我们需要减小 (SL+Spread) 或 Lots,因为 Sigma 中的所有其他值很可能无法更改。

然后我们就完成了方程式。现在让我们简短地描述一下模拟过程。此过程和上一个过程几乎没什么区别。检查了交易可能性,在当前市场条件下执行了买入操作,利用 PRNG 确定了利率,执行了卖出操作,并计算了当前的资金水平。所有这些都在循环中重复执行了多次。最终定义了交易结果。未使用特定分析方法,整个模拟过程都按“原样”进行。Tick 和其他相关概念以及 Swap 都未使用,因为它们都是不必要的。

为了评估模拟结果,我们使用了一个示例和以下基本参数:Deposit=1000, Leverage=100, LotSize=100000, Lots=0.1, TP=0.0040, SL=0.0040, Spread=0.0002, p=0.5, N=250.系列长度值约等于每年的工作日数。因此,如果我们假设每天执行一个交易)(盘中交易,因此不使用 Swap),结果将按年计算。应用方程式(9、13、15)后,我们将获得以下结果:TP%=0.038=a%SL%=0.042=b%Margin%=0.1(因此,z%=0.058)。让我们执行类似于图 4 中所示的随机模拟和计算。


图 18

在这里比较基于模拟和基于方程式执行的计算。正如我们看到的那样,各种计算的结果匹配度很高。这就是我们声称在处理“边界吸收”问题时,交易过程与经典的“正面还是反面”掷币游戏并无太大区别的另一个理由。

以下是图中的几条简短注释。绿红线的最左侧的最小点显示破产概率。在我们的案例中,它是 TWR<= Margin% - 0.375。当 TWR<=1 时,输的概率是 0.795,所以,赢的概率是 0.205

ММ - 固定大小 (FixSize)

此 MM 方法的主要思路是每次使用初始资金的固定份额,无论环境如何。 事实上,经销商提供给交易者的手数管理的传统特色直接对应于此方法。此外,此方法在“正面还是反面”掷币游戏中实施。由于我们之前已介绍了此方法的基本功能,现在让我们讨论影响此系统的单独参数的问题。我们将使用我们的模型处理这个问题。

由于我们考虑的是数字解决方案而非分析解决方案,要评估输入参数的变化所产生的影响,唯一的方法是比较计算结果。我们将固定数据,从某种程度上更改某些数据,并观察产生的变化。

让我们返回图 16 中显示的案例。使用以下参数执行计算:Deposit=3000, LotSize=100000, Lots=0.1, TP=SL= { 0.0030, 0.0040, 0.0050, 0.0060}, Spread=0.0002, p=0.5, N=250, Leverage= { 3, 4, 5, 6, 7, 10, 25, 50, 75, 100}.


图 19

计算结果以对数刻度显示,这样就更清晰明了。实际上,减小 Leverage 会导致 Margin%(黑线)增加,从而提高破产概率。破产概率与杠杆之间的关联是一种非线性关联,小小的 Leverage 值便可体现出这种关联的巨大影响力。Leverage 减小所导致的负面影响可通过减小 TPSL 水平来降低。但即使 Leverage 值足够小(在我们的案例中,它是 4),破产概率仍然很高。此外,下图还显示了另一个特征。


图 20

此图显示更改 Leverage 值时,输的概率将发生怎样的变化。我们可以看到,当 TPSL 减小时,输的概率会变得越来越高。

比如,如果我们将资金增至 10 000,则当 N=250 时,根本不可能破产。如果我们比较图 20 和 21,我们会看到在 Leverage>10 的区域内,结果是一致的。


图 21

让我们来看一个示例,其中,一次交易中赢的概率高于输的概率,换句话说,p>0.50。使用以下参数执行计算:Deposit=3000, LotSize=100000, Lots=0.1, TP=SL={ 0.0030, 0.0040, 0.0050, 0.0060}, Spread=0.0002, p=0.52, N=250, Leverage={ 3, 4, 5, 6, 7, 10, 25, 50, 75, 100}.


图 22


图 23

如果我们比较图 19 中显示的计算结果,我们会发现,增加每笔交易的收益会降低破产和亏损的概率。这是一个自然的,期望中的结果。

下例显示了在考虑到 TPSL 水平的情况下,一次交易中赢的概率如何影响输的概率。参数如下:Deposit=3000, LotSize=100000, Lots=0.1, TP=SL={ 0.0020, 0.0030, 0.0040, 0.0050, 0.0060}, Spread=0.0002, p={ 0.48, 0.49, 0.50, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57}, N=250, Leverage=100.

注意:选择的示例中,破产概率值应很小并可忽视。最糟糕的情况下的最高破产概率约为 0.04


图 24

第一件重要的事情是 p 的增大会减小输的概率。减小 TPSL 水平则会产生相反的效果。这是因为 Spread 值是固定的。另一个可从这些结果中得出的结论是,在每次交易中使用低价位交易是相当冒险的。

下例中显示了 Spread 值会对输的概率产生何种程度的影响。此模拟的主要参数为:Deposit=3000, LotSize=100000, Lots=0.1, TP=SL={ 0.0020, 0.0030, 0.0040, 0.0050, 0.0060}, Spread={ 0.00000, 0.00005, 0.00010, 0.00015, 0.00020, 0.00025, 0.00030, 0.00035, 0.00040, 0.00045}, p=0.55, N=250, Leverage=100.


图 25

下图显示了输的概率与使用方程式 (1) 针对图 24 中所示数据计算得出的交易的 MO 之间的对应关系。计算中使用了相应的 TP%SL% 值,而不是 a%b% 值。


图 26

我们可以看到,交易的 MO 的增大会减小输的概率,虽然不可能减小到 0。这意味着仅有正值的 MO 不足以保证能避免亏损以及破产。较高的 TPSL 水平自然能够降低输的概率。但同时(见图 19 和 22)也会增加破产概率。

换句话说,我们又回到了之前我在介绍经典的“正面还是反面”掷币游戏时所做的声明。增加赌注导致可能受益的增加(并降低输的概率),同时也增加了破产的概率。遗憾的是,应用此 MM 方法时,在交易量的选择上并没有合理的数学方法。我们仅可使用我们的个人偏好来确定各种情况下可接受的破产或亏损程度。

让我们探讨一个问题,即确定在赌局中达到特定 TWR 水平的概率。此模拟的主要参数为:Deposit=3000, LotSize=100000, Lots=0.1, TP=SL= 0.0030, Spread=0.0002, p={ 0.48, 0.49, 0.50, 0.51, 0.52}, N=250, Leverage=100.


图 27

图形数据的说明如下。当 p=0.48 时,TWR 值降至 ~0.90 的概率为 ~0.93。如果 p=0.52,此值为 ~0.68


图 28

此图显示赌局中 TWR 水平增至特定值的概率。例如,当 p=0.48 时,TWR 值达到 ~1.10 的概率为 ~0.09。如果 p=0.52,则此值为 ~0.37。一次交易中赢的概率提高会导致达到特定水平的概率也提高,这很合乎逻辑。

现在我们谈一谈 Drawdown 参数。已在脚本 [10] 中略作更改,以评估此参数。此外,与原始脚本不同的是,执行计算时还考虑到 Spread

此模拟的主要参数为:Deposit=3000, LotSize=100000, Lots=0.1, TP=SL=0.0030, Spread=0.0002, p={ 0.48, 0.49, 0.50, 0.51, 0.52}, N=250, Leverage=100.


图 29

如果初始参数类似于图 27,则 p=0.48 时,Maximal Drawdown % 达到 ~0.20 的概率为 ~0.85。如果 p=0.52,则此值为 ~0.47

下一个,也是最后一个示例:Deposit=2000, LotSize=100000, Lots=0.1, TP=SL={ 0.0020, 0.0030, 0.0040, 0.0050, 0.0060}, Spread=0.0002, p=0.50, N=250, Leverage= 100.


图 30

关于图 30 的一个小小说明。Maximal Drawdown % 水平为 0.96,与 Margin 水平大致匹配。这就是为何我们会看到图中的线有剧烈转折。我们可以看到,与图 29(红线)中所示的情况相比,达到较大 Maximal Drawdown % 值的概率已有增长。

对具有固定大小的 MM 的一些特征的讨论就到此为止了,在结束之前,让我们看看像 Profit FactorExpected Payoff 这种模型特点的另外两种分布情况。


图 31


图 32

图 31 和 32 的模拟的主要参数:Deposit=3000, LotSize=100000, Lots=0.1, TP=SL= 0.0030, Spread=0.0002, p={ 0.48, 0.49, 0.50, 0.51, 0.52}, N=250, Leverage=100.



ММ - 固定比例 (FixFrac)

此方法包含的 MM 采用的赌注为当前资金的一个固定比例。例如,参与交易的份额大小最初确定为 10%。交易中使用的资金金额是基于之后的当前总资金金额计算的,无论交易结果如何。因此,每次成功的交易都会增加下一次交易的交易量,反之亦然。有时,此系统也称反马丁格尔系统(尽管这种说法严格来说是不正确的)。此系统假设将可能的利润重新投入交易,与固定大小的 MM 相反。

此 MM 方法的优劣之处已是众所周知。使用此法交易成功时,资金可快速增长。这是一种几何级数的增长,与固定大小的 MM 方法的算术级数的增长截然相反。理论上说,此法可在赌注可无限分割的情况下避免全军覆没(当然,这种情况不符合实际交易)。

此法的一个缺点是所谓的不对称杠杆效应。这是指产生亏损的赌注之后的下一次赌注拥有较小的交易金额。因此,玩家的成功交易次数必须多于亏损交易次数,以挽回损失。此外,隐藏的交易系列的后果也会影响此法的结果(非伯努利)。

在实际应用中使用此 MM 方法时,用户难以选择一种可以提供最佳资金增长率以及可接受的破产概率的资金份额。这种渐进优化赌博策略由 Kelly 提供。

但首先让我们看看一些理论和方程式。如果我们知道获利和亏损赌注的数量,以及每次赌注的输赢金额值,我们就能计算 TWR(V)Prob(V),计算方式与固定大小的方法相同。方程式 (17) 类似于 (4)。

下方显示使用方程式 (16) 和 (17) 的计算示例。达到不同 TWR 值的概率显示为一个累加值。


图 33

下图显示两个具有类似条件但采用不同 MM 的案例。固定大小的案例取自图 8。固定大小 MM (FixSize) 以红色显示,而固定比例 MM (FixFrac) 以黑色显示。


图 34

在获利值和亏损值相同的情况下,描述资金增长速度的方程式如下。

通过使用简单的转换和推理 [8] 并最大程度减少预期的平均几何增长,我们可以生成以下显示最佳 f* 赌注大小的方程式。

这就是所谓的 Kelly 标准。其思路相当简单。如果你的 TS 的获胜概率超过 0.5,而获利值和亏损值相等,则你需要使用以方程式 (19) 算出的资金份额来下注。例如,p=0.55,在这种情况下,f*=0.55-0.45=0.10。这意味着你需要使用十分之一的资金下注,以使资金有效地增长。

警告:请注意,Kelly 的最佳下注值方程式与 Vince 在 [4] 中提供的方程式不同。Vince 一方并没有任何错误,稍后我会解释一下。

注意:如果我们计算 p=0.50 时的最佳资金份额值,我们会很自然地得出 0.00 的结果。换句话说,最好的方法就是完全不赌。

如果利润和亏损相差 k 倍,我们应该使用其他方程式替代 (18) 和 (19)。[8][5].

如果我们使用方程式 (20) 根据 f 创建 g(f) 变化图,结果类似于下图。此图标有 f* 点。这是图中的最高点,在此点上,资金增长率达到其最大值。此外还有代表此图与零线的交叉点的 fc 点。在此点处,资金增长率为 0。


图 35

注意:k=2 已被单独挑出,讽刺了 Vince 书中所示的相应图形。虽然如此,这一 k 值使他提倡的方法看上去更“清晰”也更“美观”。

在 [8] 中,有人说,如果根据指定条件执行赌局,则 f* 提供最大资金增长率和零破产概率。如果使用的份额小于 f*,则破产概率也为 0,但资金增长率也会更低。如果使用的资金份额超过 fc,则破产风险迫在眉睫(在这种情况下,任何资金股票都将面临破产,无论其价格有多低)。如果资金范围为 f*fc,虽然没有破产风险,但增长率也会低于最大增长率。

结果足以令人印象深刻。但是,这些理论性计算并未考虑现实世界的一些因素。因此,Vince 建议在考虑到最大亏损的情况下计算最佳 。这就导致了一种情况,即他的 f* 值变得低于以数学方式严格计算得出的值,各种后果也随之而来。

让我们尝试研究一下这种情况在图上的表现。以以下情况为例:Deposit=1000, LotSize=100000, f={ 0.01, 0.02, 0.03, 0.04, 0.05}, TP=SL=0.01, Spread=0.0000, p=0.51, N=250, Leverage= 100.根据这些输入数据,初始 Lots=0.01,而 TP%=SL%=0.01。此外,f*=0.02fc=0.04,如下图中所示。


图 36

如果 f 发生变化,ProbTWR 之间将产生以下关联。让我们执行一些计算来论证。


图 37

我们来更详细地分析这一点。对应于 f=0.01 的线证明了之前讨论过的 f<f* 时的情况,其中,资金增长率低于最大可能增长率,而破产概率为 0。在这种情况下,TWR<=1 时输的概率等于 ~0.40

在下一种情况中,f=0.02 时,所用资金份额是最佳份额。输的概率为 ~0.45。换句话说,赌局中超过一半的回合预计是可获利的。

计算版本 f*<f<fc,即 f=0.03。输的概率为 ~0.45。在给定赌局条件下,破产概率为 0。但是,TWR 值的下限比之前案例中的下限更有实际意义。同时也能够获得更高的利润。

现在,输的概率为 ~0.50,即 f=fc=0.04。这即是说,在这种情况下,TWR 几乎确定会在 0无穷大之间波动。

最后一种情况是 f>fc。输的概率为 ~0.55。这种情况下可能可以获得非常可观的收益,但长期来看(无限回合),所有资金都会输光,且 TWR 最终会降至破产水平。

再谈几个方程式。g(f) 资金增长率可以使用方程式 (18) 和 (20) 进行评估。由于 g(f) 增长率和交易数量 N 是已知参数,可使用方程式 (22) 计算 TWR。此外,对于将固定资金份额作为 Gmean 几何平均数的 MM,使用方程式 (23) 而非算术级数的方程式来评估交易的预期平均利润会更加正确。

建议:最好将交易的几何平均数的计算包括到 MT 测试程序的标准报告中。它可使用户能够使用固定比例 MM 更准确地评估交易系统。

以下是使用方程式 (23) 和 (24) 以及图 36 中的数据执行的两个计算示例。


图 38


图 39

因此,基于图 39,在给定条件下并在赌注中使用最佳份额时,整体资金趋向于 TWR=1.05。正如我们在图 37 中看到的那样,输的概率为 ~0.45

了解具有相同起始条件的不同 MM 会有怎样的行为,这会是一件有趣的事。如果我们使用图 36 中的数据,我们会看到下图。


图 40

f=0.01 的情况下,图表非常类似,虽然 MM 是不同的。换句话说,在特定条件下,结果可以是类似的。所有其他案例都表明,在相同的起始条件下,固定大小 MM 输的概率(TWR<=1)低于固定比例的 MM。

警告:上述观察结果仅适用于选定输入数据。在任何情况下都不可将其视为通则。

我们来看另一个有趣的情境 - TWR 所趋向的值与交易中所用资金份额之间的关联。对于固定大小的 MM,这些值的算法为 MO 乘以 N,对于固定比例的 MM,则使用方程式 (22)。


图 41

我们可以看到,使用固定大小的 MM 时,预期收益较高(针对所用的输入数据)。然而情况并非始终如此。

在考虑到每个交易中的各种获胜概率的情况下,我们可以查看 TWR 所趋向的关联会产生怎样的变化。以下是系列长度 N=250 的图。


图 42

我们可以看到,在特定条件下,根据预期 TWR,可能会出现固定大小的 MM 比固定比例的 MM 更可取的情况。但是,如果我们将这个问题与破产概率放在一起考虑,那么整件事又会开始扑朔迷离了。

此外,预期 TWR 的值很大程度上受 N 系列长度的影响。一般来说,系列越长,固定比例的 MM 的优势越大。

现在,让我们结束对一些理论方面的研究,把目光放到模拟上。实际上,除了必须添加最小和最大手数的概念 MinLotMaxLot 以外,我们的初始模型并无任何改动。此外,我们将需要 LotStep 值来描述手数更改的最小可能步骤。一般计算算法保持不变。MinDeposit 概念最初是作为最小可能保证金值引入的。因此,如果保证金值超过 MarginMinDeposit,交易便可继续进行。

下例中使用以下输入数据模拟各种 MM。Deposit=1000, MinDeposit=300, LotSize=100000, MinLot=0.01, LotStep=0.01, MaxLot=100, f={ 0.01, 0.02, 0.03, 0.04, 0.05}, TP=SL=0.01, Spread=0.0000, p=0.54, N=250, Leverage=100.请注意,此计算中未使用 Spread


图 43

在计算中使用 MinDeposit导致理论上零破产概率(f<fc 时)的固定比例现在有了一些非零破产概率的例外情况。此外,离散化和手数限制也导致某些特定条件下有破产风险(此处未显示)。可通过将 DepositMinDeposit 值之间的差异作为初始资金来降低这些负面因素的影响。实际上,这就是 Vince 建议的内容 - 仅应使用部分资金,以计算最佳资金份额。这看似是一个明智的决定,但这会自然地导致 TWR 减小。

现在,让我们再对图 43 做进一步的说明。让我们在图上找到“FixFrac; p=0.54; f=0.05”,这段对应于 Prob=0.50。这是一个中值,其上和其下的值各占所有值的 50%。在这种情况下,它对应于 TWR~2.00。换句话说,所有赌局的一半至少使初始资金翻倍。输的概率为 ~0.20,而破产概率为 ~0.03。与“FixSize; p=0.54; f=0.05”图相比,我们可以发现,破产概率会增至 ~0.08,而输的概率减至 ~0.14,但中值大约对应于 TWR~2.00。如果我们幸运地达到 TWR>2.00 时的回合数,结果很可能比使用固定比例的 MM 更低。

比较图 42 和 43 上的图形,我们应该可以看到,TWR 趋向的图 42 值不是别的,正是图 43 的中值。

现在,让我们在 Spread=0.0002 的前提下考虑图 43 中显示的情况。所有其他输入数据保持不变。


图 44

我们可以看到,Spread 值处于每笔交易的利润/亏损水平的 0.4%2% 这一范围内时,整张图形有很大的变动。下图中比较了两种计算情况(来自图 43 和 44),也很好地证明了上述说法。


图 45

因此,在计算中考虑 Spread 会将 TWR 中值(例如,蓝线)从 2.00 减小到 1.50。输的概率已从 0.20 增至 0.30。差异看起来并没有多大,只有 0.10,但如果换个角度来看,五分之一的玩家第一轮就会输(尽管不是破产),三分之一的玩家第二轮会输。

让我们尝试用各种 f 检查每次交易中赢的概率会如何影响输的概率的变化,并用以下输入数据模拟各种 MM:Deposit=1000, MinDeposit=300, LotSize=100000, MinLot=0.01, LotStep=0.01, MaxLot=100, f={ 0.01, 0.02, 0.03, 0.04, 0.05}, TP=SL=0.0100, Spread=0.0002, p={ 0.48, 0.49, 0.50, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57}, N=250, Leverage=100.


图 46

此例与图 24 中示例的不同之处在于,这里的 TPSL 水平是固定的,但手数是可变的。图 47 显示当 TP=SL=0.0050 时,使用类似于图 46 中数据时的情况。


图 47

与图 24 中所示情况类似,减小 TPSL 水平会导致输的概率增加。此外,各种情况之间散布的值减小了。图变得“更密集”了。换句话说,f 值的影响减小了。这一点在下图中尤为明显。


图 48

这种情况下使用的是 TP=SL=0.0020 水平。我们可以看到,为了补偿 Spread 的影响并将输的概率降至 0.50 以下,我们需要一个能够使 p=>0.56 的 TS。但一般而言,如果 TS 获利的概率仅是 100 次交易中有 50 次获利,则结果保持不变,输的概率在 250 次交易之后为 ~0.95,无论 MM 类型和 f 类型如何。

让我们进行计算,以表明当 TP=SL=0.0020p=0.56 时,TWR 将会怎样。 结果显示在下方。这实际上是一个输的概率约为 0.40 的案例,就像图 48 中的示例,只是预期 TWR 值为 1.01...1.04。不同的 MM 显示类似的值。


图 49

正如我提到过的那样,这对使用较小水平的案例来说是典型的情况。如果 Spread 是一个浮动值,并作为赌注大小的百分比值进行计算,则整张图就完全不同了。这种情况正发生在除“针对广泛客户的外汇”以外的其他市场上。

让我们回到以下输入数据的计算:Deposit=1000, MinDeposit=300, LotSize=100000, MinLot=0.01, LotStep=0.01, MaxLot=100, f={ 0.01, 0.02, 0.03, 0.04, 0.05}, TP=SL=0.0100, Spread=0.0002, p=0.51, N=250, Leverage=100.让我们看看 TWR 减小的概率如何上升至特定水平。


图 50

图中数据的解释方式应与图 27 相同。使用固定比例的 MM 时,在 f=0.05 时,TWR 值降至 ~0.70 的概率为 ~0.76。如果 f=0.02,此值为 ~0.34


图 51

这是保证金在赌局期间增加特定值的概率。此图的解释方式应与图 28 类似。


图 52

上一图根据所用资金份额显示某特定值的 Maximal Drawdown % 概率。我们通常可以假设固定比例的 MM 导致的 Drawdown 大于使用固定大小的 MM。这可通过不对称杠杆效应来说明。此外,如果 fc>f>f*,则 Drawdown 应该会更小,而利润可能类似于 f<f* 时的情况。



总结:

我们探讨了两种资金管理方法,回顾了它们的开发背景,并简要了解了此问题的一些理论知识和几个简单的方程式。我们进行了随机模拟研究,并比较了不同的方法,评估了它们的结果。也许,能够从此研究中得出的最重要的结论是,我们无法从两个探讨方法中选出最终的方法。MM 的效率取决于大量因素。这些因素的各种组合提供不同的结果。因此,在各种具体案例中,我们应根据 TS 属性、交易中心条件以及交易者的发展前途和喜好选择最合适的 MM。我们的文章重点说明了一些可能的解决方案和关键特性。我希望至少有部分交易者觉得本文是有帮助的。祝各位好运!

我未来的计划包括研究马丁格尔(我认为这个部分不会花很多时间和篇幅,因为这个方法的属性相当明显),以及回顾 R. Jones 的方法(作者声称此法兼有所研究的这两种 MM 方法的长处)。

参考和网络链接(按在文中出现的顺序)


  1. Agner Fog - 伪随机数发生器 - http://www.agner.org/random
  2. strator - 概率库(Cephes 的部分)- https://www.mql5.com/ru/code/10101(俄语版)
  3. Suvorov V. - MS Excel:数据交换和管理 - https://www.mql5.com/en/code/8175
  4. Vince R. - 资金管理的数学运算。
  5. Bershadsky А.V.- 风险管理方案方法的研究和开发。- 专题论文,2002(俄语版)。
  6. Smirnov А.V., Guryanova Т.V.- 初窥 Ralph Vince 的“最佳 f”(俄语版)。
  7. W. Feller - 简述概率论及其应用。
  8. E. Thorp - 21 点、体育博彩和股票市场中的凯利标准。
  9. S. Bulashov - 交易者的统计数据。(在线版本,199 页,俄语版)
  10. Starikoff S. - 如何评估 Expert 测试结果 - https://www.mql5.com/en/articles/1403


示例

编写本文时使用的公共可用库附于下方。但未附上脚本和应用程序。此举是有意为之,意在刺激 MQL 社区成员开发交易服务器模拟器。它是一种在模拟中使用的交易服务器模拟器。

免责声明 аkа 谅解

本文作者不承担任何责任。接受通过书面方式、讨论环节或电子邮件提供的投诉和建议。明智的建议会纳入考虑,不合理的建议将被忽略。所有已知版权都有说明。如未说明,则表示作者未知或版权已丢失。

作者承认文中的内容和计算可能有不准确之处或误差。因篇幅较大,且主题较复杂,所以错误是不可避免的。因此,笔者对每个类似于 D. Knuth 找到的错误都提供 1 美元的奖励。但现实生活已有一些调整。全球金融危机的寒风仍在这个国家肆虐。最脆弱的群体 - 失去了父母的孩子 - 在这种时候往往是受苦最深的。为了帮助他们,笔者决定不为自己的错误买单,而是将所有费用用于慈善。我已选择了位于俄罗斯的偏远省份的几家孤儿院,并送出了适量的资金。

在收到其中一家孤儿院负责人的回信时,我的感觉真是难以言表。这是一封简单的手写信函,所用纸张是从一份方形习字帖中撕下的一页纸。当然,信中有一些感谢的话,但最重要的是,里面有一份采购项目清单。这位聪明的女士并没有用这些钱购买一台新电脑,然后复制粘贴一份感谢信,也没有给她的办公室添置新窗帘,或是购买国家提供的食物,尽管这些食物和人们通常在莫斯科所吃的食物大有不同。所有资金投入到这些孩子的教育工作中。

习字帖、书签、笔、教学游戏、练习簿、绘画颜料。对于那些居住在偏远小镇或村庄中,还在也许是由我们刚打完伟大卫国战争的祖先所造的老式木结构建筑中上课的孩子们来说,所有这些易耗品对他们的成长是多么的重要。所以,如果有能力,如果尚有裕余,请也伸手帮助他们,别吝啬,也别懒惰。我们的所作所为不会毫无意义。实际上,我也不确定。也许这封信是某个值夜人员在将这份意外的礼物换酒喝时写下的。我对这个不感兴趣,我也永远不会知道真相。我只是在赌,我们都是正常人的概率比较高,虽然这只是个小赌局。不像“正面还是反面”的掷币游戏,这一局对我们所有人来说都是公平的。

本文由MetaQuotes Ltd译自俄文
原文地址: https://www.mql5.com/ru/articles/1367

附加的文件 |
experts.zip (94.95 KB)
指标外部参数的图形控制 指标外部参数的图形控制
指标的外部变量通过专门的窗口进行控制,在窗口内可以更改参数,然后再次运行指标。 这些操作的明显不方便性产生了在屏幕上显示所需参数和图形化控制指标的需求。
通过 MQL4 读取 RSS 新闻递送 通过 MQL4 读取 RSS 新闻递送
本文讨论了利用 HTML 标签分析的函数通过 MQL4 读取 RSS(简易信息聚合)标记的示例。 我们将尝试制作一个半成品,它可以继续转变为新闻指示器或 MQL4 语言的 RSS 阅读器。
外部指标的提醒和注释。 通过外部扫描进行多货币分析 外部指标的提醒和注释。 通过外部扫描进行多货币分析
外部指标的多货币和多时间范围分析的提醒。 本文讨论了一种获得外部指标事件信息的方法,而不必将指标添加到图表或自己打开图表。 我们将其称为外部扫描。
LibMatrix:矩阵代数库(第一部分) LibMatrix:矩阵代数库(第一部分)
作者让读者熟悉一个简单的矩阵代数库,并提供主要函数的说明和独特特性。