算法优化锦标赛。 - 页 51 1...444546474849505152535455565758...132 新评论 Dmitry Fedoseev 2016.06.21 23:05 #501 第二种方案不清楚,我们需要一个参与者的脚本的例子,某种巴尔干式的。导入了 FF,但在参与者的函数中是看不到的,MaxFFruns_P变量也是看不到的。 Andrey Dik 2016.06.21 23:11 #502 Dmitry Fedoseev:第二种方案不清楚,我们需要一个参与者的脚本的例子,某种巴尔干式的。导入了FF,但在参与者的函数中是看不到的,MaxFFruns_P变量也是看不到的。你是说参与人的算法的例子?好吧,算法已经被告知不要给FF打电话超过这么多次了InitAO(paramCount,MaxFFruns_P)。根据第二种选择,成员的算法也是进口FF。我检查了一下,脚本和算法中使用的是同一个FF库的副本。也就是说,算法使用其导入的函数 访问FF,而脚本使用自己的函数,但脚本的调用次数是正确的。安德烈-迪克现在,我将补充这两种类型调用FF的算法本身的例子,在非常,原生和心爱的MSF。请爱护,特别是对初学者。它们很容易理解,是一个如何建立一个基本的简单的同时又能工作的优化算法的例子。 Dmitry Fedoseev 2016.06.21 23:15 #503 Andrey Dik:你是说参与者的算法的例子?在这里,该算法被告知不要超过这么多次调用FF。InitAO(paramCount,MaxFFruns_P)。根据第二种选择,成员算法也进口FF。我 检查了一下,脚本和算法中使用的都是同一个FF库的副本。这就是你需要为参与者展示的模板。检查员的脚本显示。参数的数量是明确的。但我们需要写说明,至少要写几个字。 Andrey Dik 2016.06.21 23:18 #504 将没有必要让全局变量 停下来。只要在超过运行限制时给FF添加一个警报,这样就可以手动停止运行。该算法应记录其调用FF的次数。 Andrey Dik 2016.06.21 23:23 #505 Dmitry Fedoseev: 这里应该显示参与者的模板。检查员的脚本显示。参数的数量是明确的。但我们需要写说明,至少要写几个字。你应该。当然,会有一个指示。 但一切都很简单,我们不需要OOP来参与,我们相信参与者能够理解20行代码,他们既然来到了冠军赛,就不是青涩的孩子)。 Dmitry Fedoseev 2016.06.21 23:25 #506 Andrey Dik:我们必须这样做。当然,会有指示。 但一切都很简单,你不需要OOP来参与,参与者可能会理解20行代码,因为他们不是绿色的,因为他们来到了冠军赛)。 它可能很简单,但只有在你不得不猜测的情况下,它才会在某种程度上不具有展示性。 Andrey Dik 2016.06.22 00:28 #507 一个参与者对FF呼叫的第一种变体的算法的例子。#property library #property strict //+------------------------------------------------------------------+ void InitAO (int paramCount, int maxFFruns) export { } //+------------------------------------------------------------------+ // //+------------------------------------------------------------------+ void ServiceFunc1 () export { } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ void ServiceFunc2 () export { } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ void ServiceFunc3 () export { } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ int GetReplaysCount () export { return (1); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ void GetOptParam (double ¶m []) export { GenerateParam (param); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ void SendFFvolue (double volue) export { if(volue > maxFFvolue) maxFFvolue = volue; } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ double GetMaxFF () export { return (maxFFvolue); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ bool StopAlgo () export { return (false); } //+------------------------------------------------------------------+ //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // Все функции выше этой строки - обязательны! Именно они будут импортированы // и использованы тестовым скриптом. Они нужны для доступа к алгоритму оптимизации. // Содержимое - произвольное, на усмотрение участника //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // Ниже этой строки пример алгоритма оптимизации участника //———————————————————————————————————————————————————————————————————— double maxFFvolue = - DBL_MAX; double minParam = -10.0; double maxParam = 10.0; double stepParam = 0.1; //———————————————————————————————————————————————————————————————————— //———————————————————————————————————————————————————————————————————— // Генерация значений оптимизируемых параметров void GenerateParam (double ¶m[]) { int size = ArraySize (param); double paramVolue = 0.0; for(int i = 0; i < size; i++) { paramVolue = RNDfromCI (minParam, maxParam); param [i] = SeInDiSp (paramVolue, minParam, maxParam, stepParam); } } //———————————————————————————————————————————————————————————————————— //———————————————————————————————————————————————————————————————————— // Выбор в дискретном пространстве double SeInDiSp (double in, double inMin, double inMax, double step) { if(in <= inMin) return (inMin); if(in >= inMax) return (inMax); if(step == 0.0) return (in); else return (inMin + step * (double)MathRound ((in - inMin) / step)); } //———————————————————————————————————————————————————————————————————— //———————————————————————————————————————————————————————————————————— // ГСЧ в заданном интервале double RNDfromCI (double min, double max) { if(min == max) return (min); double Min, Max; if(min > max) { Min = max; Max = min; } else { Min = min; Max = max; } return (double(Min + ((Max - Min) * (double)MathRand () / 32767.0))); } //————————————————————————————————————————————————————————————————————算法的执行结果。2016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) ---------------------------------2016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) Time: 146 µs; 0.00014600 c2016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) FF运行: 10002016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) Max: 3.141592602016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) ---------------------------------2016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) Time: 148 µs; 0.00014800 c2016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) FF运行: 10002016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) Max: 3.101592602016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) ---------------------------------2016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) Time: 149 µs; 0.00014900 c2016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) FF运行: 10002016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) Max: 3.061592602016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) ---------------------------------2016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) Time: 153 µs; 0.00015300 c2016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) FF运行: 10002016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) Max: 3.091592602016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) ---------------------------------2016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) Time: 154 µs; 0.00015400 c2016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) FF运行: 10002016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) Max: 3.141592602016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) ---------------------------------2016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) Time: 152 µs; 0.00015200 c2016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) FF运行: 10002016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) Max: 2.64159260对于一个关于GCF的算法来说,这还算不错了!不是吗? Algorithm Optimisation Championship. iTime and iBarShift return PREDICT time period Andrey Dik 2016.06.22 00:32 #508 我不知道在这里还要解释什么。一切似乎都很清楚,函数很短,没有承诺的OOP。评论是存在的。而且,进一步说,关于FF呼叫的第二个变体的例子,如果莫菲斯没有被压制 - 他将被压制。 Dmitry Fedoseev 2016.06.22 01:47 #509 Andrey Dik:我不知道在这里还要解释什么。一切似乎都很清楚,函数很短,没有承诺的OOP。评论是存在的。再举个例子,关于FF呼叫的第二个版本,如果莫菲斯不被压制--他将被压制。我也可以这样写--我的问题有什么不清楚的地方? Dmitry Fedoseev 2016.06.22 01:49 #510 为什么一个问题要问10次? 1...444546474849505152535455565758...132 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
第二种方案不清楚,我们需要一个参与者的脚本的例子,某种巴尔干式的。
导入了 FF,但在参与者的函数中是看不到的,MaxFFruns_P变量也是看不到的。
第二种方案不清楚,我们需要一个参与者的脚本的例子,某种巴尔干式的。
导入了FF,但在参与者的函数中是看不到的,MaxFFruns_P变量也是看不到的。
你是说参与人的算法的例子?
好吧,算法已经被告知不要给FF打电话超过这么多次了
InitAO(paramCount,MaxFFruns_P)。
根据第二种选择,成员的算法也是进口FF。我检查了一下,脚本和算法中使用的是同一个FF库的副本。也就是说,算法使用其导入的函数 访问FF,而脚本使用自己的函数,但脚本的调用次数是正确的。
现在,我将补充这两种类型调用FF的算法本身的例子,在非常,原生和心爱的MSF。请爱护,特别是对初学者。它们很容易理解,是一个如何建立一个基本的简单的同时又能工作的优化算法的例子。
Andrey Dik:
你是说参与者的算法的例子?
在这里,该算法被告知不要超过这么多次调用FF。
InitAO(paramCount,MaxFFruns_P)。
根据第二种选择,成员算法也进口FF。我 检查了一下,脚本和算法中使用的都是同一个FF库的副本。
这就是你需要为参与者展示的模板。检查员的脚本显示。
参数的数量是明确的。但我们需要写说明,至少要写几个字。
这里应该显示参与者的模板。检查员的脚本显示。
参数的数量是明确的。但我们需要写说明,至少要写几个字。
你应该。当然,会有一个指示。
但一切都很简单,我们不需要OOP来参与,我们相信参与者能够理解20行代码,他们既然来到了冠军赛,就不是青涩的孩子)。
我们必须这样做。当然,会有指示。
但一切都很简单,你不需要OOP来参与,参与者可能会理解20行代码,因为他们不是绿色的,因为他们来到了冠军赛)。
一个参与者对FF呼叫的第一种变体的算法的例子。
算法的执行结果。
2016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) ---------------------------------
2016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) Time: 146 µs; 0.00014600 c
2016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) FF运行: 1000
2016.06.22 03:25:25.777 OAC variant 1 (GBPUSD,H1) Max: 3.14159260
2016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) ---------------------------------
2016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) Time: 148 µs; 0.00014800 c
2016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) FF运行: 1000
2016.06.22 03:25:21.874 OAC variant 1 (GBPUSD,H1) Max: 3.10159260
2016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) ---------------------------------
2016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) Time: 149 µs; 0.00014900 c
2016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) FF运行: 1000
2016.06.22 03:20:32.249 OAC variant 1 (GBPUSD,H1) Max: 3.06159260
2016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) ---------------------------------
2016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) Time: 153 µs; 0.00015300 c
2016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) FF运行: 1000
2016.06.22 03:20:26.626 OAC variant 1 (GBPUSD,H1) Max: 3.09159260
2016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) ---------------------------------
2016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) Time: 154 µs; 0.00015400 c
2016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) FF运行: 1000
2016.06.22 03:20:19.071 OAC variant 1 (GBPUSD,H1) Max: 3.14159260
2016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) ---------------------------------
2016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) Time: 152 µs; 0.00015200 c
2016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) FF运行: 1000
2016.06.22 03:20:13.407 OAC variant 1 (GBPUSD,H1) Max: 2.64159260
对于一个关于GCF的算法来说,这还算不错了!不是吗?
我不知道在这里还要解释什么。一切似乎都很清楚,函数很短,没有承诺的OOP。评论是存在的。
而且,进一步说,关于FF呼叫的第二个变体的例子,如果莫菲斯没有被压制 - 他将被压制。
我不知道在这里还要解释什么。一切似乎都很清楚,函数很短,没有承诺的OOP。评论是存在的。
再举个例子,关于FF呼叫的第二个版本,如果莫菲斯不被压制--他将被压制。
我也可以这样写--我的问题有什么不清楚的地方?