错误、漏洞、问题 - 页 2319 1...231223132314231523162317231823192320232123222323232423252326...3184 新评论 gianarhi 2018.11.05 22:59 #23181 你好!你能告诉我如何解决价格显示不正确的错误吗?它甩掉了所有的印第安人。 Igor Semyonov 2018.11.06 04:18 #23182 Slava:符号设置,而不是图形。 在市场概览中,从符号上下文菜单中选择 "符号规范"。 Slava 2018.11.06 05:42 #23183 Igor Semyonov: 谢谢你。 请从头展示问题发生时的终端日志 Igor Semyonov 2018.11.06 06:15 #23184 Slava:谢谢你。 请从头展示问题发生时的终端日志我已经通过私人信息 发送了日志文件。 Slava 2018.11.06 06:40 #23185 Igor Semyonov:我已经通过私人信息 发送了日志文件。是的,谢谢你。 日志都是清楚的。 告诉我,你描述的情况是否还在继续? fxsaber 2018.11.06 09:33 #23186 Volume没有DoubleToString(Volume, 2)。截图是欧元兑美元。 Igor Semyonov 2018.11.06 10:25 #23187 Slava:是的,谢谢你。 从日志上看,一切都很清楚。 告诉我,你描述的情况是否还在继续?重新启动终端后,到目前为止一切正常。 fxsaber 2018.11.06 12:23 #23188 关于交易、自动交易系统和交易策略测试的论坛 虫子、虫子、问题 pantural, 2018.11.01 16:03 你好,亲爱的MT开发人员,我想报告一个计算夏普比率的算法的错误。在Aleksey Vyazmikin 先生的附录报告中,SR=0.29,但根据我的计算,它大约是3.7-3.8(取决于是否为零PnL),这表明在没有标准差(sqrt(length))的比例系数的情况下,错误是由于平均回报不取决于系列的长度,它收敛,并且RMS随着sqrt(length)增加而增加 C++ double SharpRatio(vector<double> pnl){ double avret = 0; for (int i = 0; i < pnl.size(); ++i) avret += pnl[i]; avret /= pnl.size(); double var = 0; for (int i = 0; i < pnl.size(); ++i) var += pow(pnl[i] - avret, 2); var = sqrt(var / pnl.size()) / sqrt(pnl.size()); return avret / var;} 让我们来看看两个相同的TC。我们同时启动它们。一天后,他们都显示了pnl阵列。第一个被阻止了,第二个没有。又过了一天,第二个人向我们展示了完全相同的pnl。 也就是说,第一个人有pnl[],第二个人有pnl[]+pnl[]。也就是说,第二天的交易与第一天的交易完全相同。 那么根据建议的公式,第二个TS的夏普比率将比第一个TS的夏普比率少sqrt(2)(2的根)。但他们的交易情况是一样的! Errors, bugs, questions Can somebody help to money managment Rashid Umarov 2018.11.06 16:56 #23189 fxsaber: 取两个相同的TC。在同一时间运行它们。24小时后,他们都显示出一列pnl。第一个人被阻止了,第二个人没有。又过了一天,第二个人显示出完全相同的pnl。 也就是说,第一个人有pnl[],第二个人有pnl[]+pnl[]。也就是说,第二天的交易与第一天的交易完全相同。 那么根据建议的公式,第二个TS的夏普比率将比第一个TS的夏普比率少sqrt(2)(2的根)。但他们的交易情况是一样的!这个笑话是怎么说的?"你必须趁他们小的时候杀了他们" . 好吧,让我们看看#11396 所附文件中的例子。因为在理论上,这一切看起来都很可怕,直到你用手去感受它。 该文件中有 144笔交易,其夏普值为0.29(该网站显示的准确度为小数点后2位,这没关系--没有人需要小数点后5位,在这种情况下,小数点后2位就足以成为比较两种策略的良好衡量标准)。 夏普的计算方法是 K/STD 比率,其中。 K- 交易历史的平均增长率STD 是交易历史中收益的标准偏差假设我们有两倍的交易是以前交易的副本。这意味着,现在我们有288笔交易=144*2。同时,K 也不会改变。因此,我们只有通过改变STD才能改变夏普。 初始STD=MathSqrt(X2/(n-1)),其中。 X2是偏离平均值X_aver的平方之和。 n - 茶杯的数量 == 144也就是夏普=数学平方(X2/(144-1))= MathSqrt(X2/143) 我们的交易数量增加了一倍,所以对于两倍大的历史,新的夏普是这样计算的 SharpeNew=MathSqrt(X2_new/(2*144-1)) 其中X2_new=2*X2。因此夏普新/夏普比率 = MathSqrt(X2/(144-1)) / MathSqrt(X2_new/(2*144-1)) = MathSqrt(X2/(144-1)) / MathSqrt(2* X2/(2*144-1)) = MathSqrt(X2/(143)) / MathSqrt(2* X2/(283))= MathSqrt(X2*283/(2*143*X2))= MathSqrt(283/286)= 0.994741 即使我把分母和分子混在一起,SharpeNew也会在0.292919-0.296025 的范围内,也就是说,差异会在第三位数的某个地方。 但不是10-20倍。你自己看看我哪里犯错了。 Errors, bugs, questions fxsaber 2018.11.06 17:16 #23190 Rashid Umarov:有什么好笑的?"应该趁他们还小的时候把他们杀掉。"你误解了我的意思。 关于交易、自动交易系统和策略测试的论坛 虫子、虫子、问题 fxsaber, 2018.11.06 13:23 那么根据建议的公式, 第二个TS的夏普比率 将比第一个TS少sqrt(2)(2的根)。但他们的交易情况是一样的!我指的是引用自C++的公式。 而在MT使用的公式中,当然不会减去一个。那么拟议中的例子,无论有多少个144的间隔,夏普都会是一样的。 1...231223132314231523162317231823192320232123222323232423252326...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
符号设置,而不是图形。
在市场概览中,从符号上下文菜单中选择 "符号规范"。
谢谢你。
请从头展示问题发生时的终端日志
谢谢你。
请从头展示问题发生时的终端日志
我已经通过私人信息 发送了日志文件。
我已经通过私人信息 发送了日志文件。
是的,谢谢你。
日志都是清楚的。
告诉我,你描述的情况是否还在继续?
Volume没有DoubleToString(Volume, 2)。截图是欧元兑美元。
是的,谢谢你。
从日志上看,一切都很清楚。
告诉我,你描述的情况是否还在继续?
重新启动终端后,到目前为止一切正常。
关于交易、自动交易系统和交易策略测试的论坛
虫子、虫子、问题
pantural, 2018.11.01 16:03
你好,亲爱的MT开发人员,我想报告一个计算夏普比率的算法的错误。在Aleksey Vyazmikin 先生的附录报告中,SR=0.29,但根据我的计算,它大约是3.7-3.8(取决于是否为零PnL),这表明在没有标准差(sqrt(length))的比例系数的情况下,错误是由于平均回报不取决于系列的长度,它收敛,并且RMS随着sqrt(length)增加而增加
C++
double SharpRatio(vector<double> pnl)
{
double avret = 0;
for (int i = 0; i < pnl.size(); ++i) avret += pnl[i];
avret /= pnl.size();
double var = 0;
for (int i = 0; i < pnl.size(); ++i) var += pow(pnl[i] - avret, 2);
var = sqrt(var / pnl.size()) / sqrt(pnl.size());
return avret / var;
}
让我们来看看两个相同的TC。我们同时启动它们。一天后,他们都显示了pnl阵列。第一个被阻止了,第二个没有。又过了一天,第二个人向我们展示了完全相同的pnl。
也就是说,第一个人有pnl[],第二个人有pnl[]+pnl[]。也就是说,第二天的交易与第一天的交易完全相同。
那么根据建议的公式,第二个TS的夏普比率将比第一个TS的夏普比率少sqrt(2)(2的根)。但他们的交易情况是一样的!
取两个相同的TC。在同一时间运行它们。24小时后,他们都显示出一列pnl。第一个人被阻止了,第二个人没有。又过了一天,第二个人显示出完全相同的pnl。
也就是说,第一个人有pnl[],第二个人有pnl[]+pnl[]。也就是说,第二天的交易与第一天的交易完全相同。
那么根据建议的公式,第二个TS的夏普比率将比第一个TS的夏普比率少sqrt(2)(2的根)。但他们的交易情况是一样的!
这个笑话是怎么说的?"你必须趁他们小的时候杀了他们" .
好吧,让我们看看#11396 所附文件中的例子。因为在理论上,这一切看起来都很可怕,直到你用手去感受它。
该文件中有 144笔交易,其夏普值为0.29(该网站显示的准确度为小数点后2位,这没关系--没有人需要小数点后5位,在这种情况下,小数点后2位就足以成为比较两种策略的良好衡量标准)。
夏普的计算方法是 K/STD 比率,其中。
假设我们有两倍的交易是以前交易的副本。这意味着,现在我们有288笔交易=144*2。同时,K 也不会改变。因此,我们只有通过改变STD才能改变夏普。
初始STD=MathSqrt(X2/(n-1)),其中。
也就是夏普=数学平方(X2/(144-1))= MathSqrt(X2/143)
我们的交易数量增加了一倍,所以对于两倍大的历史,新的夏普是这样计算的
其中X2_new=2*X2。因此夏普新/夏普比率 = MathSqrt(X2/(144-1)) / MathSqrt(X2_new/(2*144-1)) =
即使我把分母和分子混在一起,SharpeNew也会在0.292919-0.296025 的范围内,也就是说,差异会在第三位数的某个地方。
但不是10-20倍。你自己看看我哪里犯错了。
有什么好笑的?"应该趁他们还小的时候把他们杀掉。"
你误解了我的意思。
关于交易、自动交易系统和策略测试的论坛
虫子、虫子、问题
fxsaber, 2018.11.06 13:23
那么根据建议的公式, 第二个TS的夏普比率 将比第一个TS少sqrt(2)(2的根)。但他们的交易情况是一样的!
我指的是引用自C++的公式。
而在MT使用的公式中,当然不会减去一个。那么拟议中的例子,无论有多少个144的间隔,夏普都会是一样的。