我试图将一个方程系列编码如下: 从值[0]开始
the first result (Return[1]) = RR * Riskpc * Value[0], Value[1] = Value[0] + Return[1]
Return[2] = RR * ((k * Riskpc * Value[1]) + Return[1]), Value[2] = Value[1] + Return[2]
...
Return[n] = RR * ((k * Riskpc * Value[n-1]) + Return[n-1]), Value[n] = Value[n-1] + Return[n]
这有效地将整个系列的损失限制为Riskpc*值,同时将(乘数(k)*上一次收益的全部)添加到风险金额上
我需要能够在python以及mql4和mql5中对此进行编码,以便无论n如何,Value[n]==m*Value[0],m都是一个常量>;1.在当前问题中,m=1.101,RR=3,Riskpc=1
我知道解是一个几何方程,对于任意给定的长度为n(n>;1)且常数为RR Riskpc和m的序列,k是RR、Riskpc、n和m的函数,但这远远超出了我30岁的a级数学
我曾尝试探索matlab和sympy,但迷路了
编辑
对不起,我意识到原来的问题太模糊了。 我的colab文件是here
根据该文件中的默认值,它适用于compoundLength = 2
,但对于compoundLength = 3+
它只会降低最后一笔交易的风险
在这里,我试图对calcRisk()
函数进行编程,以替换第56行和第51行中的逻辑,从而使先前收益的部分保留分布在整个系列中(不包括第一笔交易),而不仅仅发生在最后一笔交易中
最初的问题是:回报:风险比为3,将第一笔交易的回报加上新账户价值的1%,作为第二笔交易的风险(以便增加上行潜力,同时在两笔交易中损失不超过最初的1%),我如何将第二笔交易的风险限制在达到10.1%的目标所必需的范围内
这是通过第56行的逻辑在一系列2中实现的,并保留了交易1的约50%(取决于以前的提取)
目标是将其扩展到n(compoundLength
)个交易。monte-carlo模拟器运行1000000个可能的交易序列,计算每次盈利交易后下一次交易的降低累积风险,但在3+系列上,目前为止,风险降低的所有好处仅在最后一次交易中实现
下面是一个简单的python实现:
它返回
Value
和Return
的第n项的符号值;您可以用来替换已知值,例如相关问题 更多 >
编程相关推荐