交易中的机器学习:理论、模型、实践和算法交易 - 页 2650 1...264326442645264626472648264926502651265226532654265526562657...3399 新评论 Aleksey Nikolayev 2022.05.26 06:18 #26491 mytarmailS #:使用符号回归,准确设计你想要的,而不是其他算法建议的。你知道 Rku,有一个软件包,有一些例子,一切都已经在我们之前完成了。 我正在研究。还没有圣杯) Aleksey Nikolayev 2022.05.26 06:23 #26492 elibrarius #: 如果只有 1 和 2 可以互动。或 3、4、5。那么在第一次拆分后,例如在 3 上,所有下游的拆分都只能从集合 3、4、5 开始。我假设,只需从 1,2 和 3,4,5 组建立两棵树。如果有 10 个集合,那么就有 10 棵树。以此类推。 也可以把组合并成组--这样就得到了一棵树(列表的列表,列表的列表......)。 在我们的情况下,建立这种组的一般原则还不是很清楚。 mytarmailS 2022.05.26 06:45 #26493 Aleksey Nikolayev #:正在努力。还没找到圣杯)。 你掌握 grammEvol 软件包了吗? Aleksey Nikolayev 2022.05.26 07:14 #26494 mytarmailS #: 您收到 grammEvol 软件包了吗? gramEvol?如果就语法而言,你需要参数语法,其中的规则有需要优化的数字参数。乍一看,我并没有在软件包中看到这些参数。我的意思是不仅要得到x1-x2*x3<0 的规则,还要 得到 A<x1-x2*x3<B形式的所有可能规则,其中 x1、x2、x3 是预测因子,A 和 B 是参数。 不,我只是在最底层--用 Rcpp--尝试找到正确的数学方法。 mytarmailS 2022.05.26 07:31 #26495 Aleksey Nikolayev #: 第一眼没在包装里看到它们。 一切都在这里。你能想到的一切都能在这里实现。看看小节中的示例,看看作者 gthub 上的问题,我在那里也问了很多关于规则的问题 Aleksey Nikolayev 2022.05.26 07:39 #26496 mytarmailS #: 一切都在那里。你能想到的一切都能在这里实现。 看看小故事中的例子,看看作者的 gthub 中的问题,我在那里也问了很多关于规则的问题 谢谢,有时间我会仔细看看的。 mytarmailS 2022.05.26 07:47 #26497 Aleksey Nikolayev #:谢谢,有时间我再仔细看看。 这实际上是一个代码构造器,你只需设置你需要的元素。 也就是说,它可以自己编写真正的代码,包括循环、数组等一切....。 既然它能写代码,就能写任何东西,唯一的限制就是你的想象力,当然还有推理能力。 mytarmailS 2022.05.26 08:44 #26498 Aleksey Nikolayev #:gramEvol?如果就语法而言,我们需要参数语法,即规则有数字参数需要优化。乍一看,我并没有在软件包中看到这些参数。我的意思是不仅要得到x1-x2*x3<0 的规则,还要 得到 A<x1-x2*x3<B形式的所有可能规则,其中 x1、x2、x3 是预测因子,A 和 B 是参数。不,我只是在最底层--用 Rcpp,试图找到正确的数学方法。 我不知道我是否正确理解了你的意思,我用头撞了一下显示器,写了一个简单的例子。 library(gramEvol) ruleDef <- list( logyc_exp = grule(comparison(big_math_expr, parameters)), comparison = grule(">=","<=","!=","=="), parameters = grule(100,200,300), # A и B - параметры. big_math_expr = grule( math_expr, math_oper(math_expr, math_expr)), math_expr = grule(math_oper(predictors, predictors)), math_oper = grule("+", "-", "*","/"), predictors = grule(x1,x2,x3,x4) # где x1, x2, x3 - предикторы ) grammarDef <- CreateGrammar(ruleDef) GrammarRandomExpression(grammarDef,numExpr = 10) 这是你想要的吗? [[1]] expression(x4 * x1 + (x2 + x4) <= 100) [[2]] expression(x1/x3 * (x4/x1) >= 300) [[3]] expression(x2/x1 + x1 * x1 != 300) [[4]] expression(x4 - x3 + (x3 + x1) != 100) [[5]] expression(x2/x1/(x2 + x1) != 300) [[6]] expression(x3/x1 + (x3 + x3) >= 100) [[7]] expression(x1 * x1 >= 200) [[8]] expression(x3/x2 - x3/x2 <= 100) [[9]] expression((x3 + x4)/(x4 - x1) <= 300) [[10]] expression(x3/x1 <= 200) Aleksey Nikolayev 2022.05.26 16:51 #26499 mytarmailS #:我不知道我是否正确理解了你的意思,我在用头撞了一下显示器后写了一个简单的例子。这是你想要的吗? 看起来是的,但似乎参数只能取几个指定值,而不是任意的实数。 mytarmailS 2022.05.26 17:10 #26500 Aleksey Nikolayev #:类似,但参数似乎只能取几个给定值,而不是任意实数。 my_var <- round(seq(-10,10,length.out = 100),2) library(gramEvol) ruleDef <- list( logyc_exp = grule(comparison(big_math_expr, parameters)), comparison = grule(">=","<=","!=","=="), #parameters = grule(100,200,300), # A и B - параметры. parameters = do.call(gsrule, as.list(my_var)), # A и B - параметры. big_math_expr = grule( math_expr, math_oper(math_expr, math_expr)), math_expr = grule(math_oper(predictors, predictors)), math_oper = grule("+", "-", "*","/"), predictors = grule(x1,x2,x3,x4) # где x1, x2, x3 - предикторы ) grammarDef <- CreateGrammar(ruleDef) GrammarRandomExpression(grammarDef,numExpr = 10) [[1]] expression(x1 - x2 != 9.6) [[2]] expression(x3 + x1 != 9.8) [[3]] expression(x2 - x1 - x1 * x1 == 9.8) [[4]] expression(x4/x3 - (x2 - x3) != 8.59) [[5]] expression(x4 + x2 >= -8.18) [[6]] expression((x1 - x4)/(x3 * x2) <= 6.57) [[7]] expression(x2 - x1 >= 1.92) [[8]] expression(x1 * x3 + x3/x4 != -2.93) 这样更好吗? ===================== 您还可以将表达式复杂化 library(gramEvol) ruleDef <- list( final_exp = grule(logyc_exp , logyc_exp | logyc_exp , logyc_exp & logyc_exp), logyc_exp = grule(logyc_oper(big_math_expr, parameters), logyc_oper(big_math_expr, big_math_expr)), logyc_oper = grule(">=","<=","!=","=="), parameters = do.call(gsrule, as.list(my_var)), # A и B - параметры. big_math_expr = grule( math_expr, math_oper(math_expr, math_expr)), math_expr = grule(math_oper(predictors, predictors)), math_oper = grule("+", "-", "*","/"), predictors = grule(x1,x2,x3,x4) # где x1, x2, x3 - предикторы ) grammarDef <- CreateGrammar(ruleDef) GrammarRandomExpression(grammarDef,numExpr = 10) [[1]] expression(x3 * x2 <= x2 * x3 - (x4 - x4)) [[2]] expression(x2/x1 != x3 - x1 | (x1 + x3)/(x1 * x3) >= -9.6) [[3]] expression(x4 + x3 - (x2 - x2) >= 3.94 & x3 * x2 * (x1 - x3) == x2 * x1) [[4]] expression(x3 * x3 - x2 * x4 == -6.97) [[5]] expression(x4 * x4 - (x1 + x4) <= x4/x4 - x3/x2 | (x3 + x1)/(x4 - x1) >= x2 * x3) [[6]] expression(x2 + x3 + x2/x1 != -3.74) [[7]] expression((x1 - x2)/(x2 + x1) <= (x3 - x3)/(x2 - x1) & x4/x2 - x4 * x2 <= 6.97) 1...264326442645264626472648264926502651265226532654265526562657...3399 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
使用符号回归,准确设计你想要的,而不是其他算法建议的。
你知道 Rku,有一个软件包,有一些例子,一切都已经在我们之前完成了。
我正在研究。还没有圣杯)
如果只有 1 和 2 可以互动。或 3、4、5。那么在第一次拆分后,例如在 3 上,所有下游的拆分都只能从集合 3、4、5 开始。我假设,只需从 1,2 和 3,4,5 组建立两棵树。如果有 10 个集合,那么就有 10 棵树。以此类推。
也可以把组合并成组--这样就得到了一棵树(列表的列表,列表的列表......)。
在我们的情况下,建立这种组的一般原则还不是很清楚。
正在努力。还没找到圣杯)。
您收到 grammEvol 软件包了吗?
gramEvol?如果就语法而言,你需要参数语法,其中的规则有需要优化的数字参数。乍一看,我并没有在软件包中看到这些参数。我的意思是不仅要得到x1-x2*x3<0 的规则,还要 得到 A<x1-x2*x3<B形式的所有可能规则,其中 x1、x2、x3 是预测因子,A 和 B 是参数。
不,我只是在最底层--用 Rcpp--尝试找到正确的数学方法。
第一眼没在包装里看到它们。
一切都在那里。你能想到的一切都能在这里实现。
谢谢,有时间我会仔细看看的。
谢谢,有时间我再仔细看看。
这实际上是一个代码构造器,你只需设置你需要的元素。
也就是说,它可以自己编写真正的代码,包括循环、数组等一切....。
既然它能写代码,就能写任何东西,唯一的限制就是你的想象力,当然还有推理能力。
gramEvol?如果就语法而言,我们需要参数语法,即规则有数字参数需要优化。乍一看,我并没有在软件包中看到这些参数。我的意思是不仅要得到x1-x2*x3<0 的规则,还要 得到 A<x1-x2*x3<B形式的所有可能规则,其中 x1、x2、x3 是预测因子,A 和 B 是参数。
不,我只是在最底层--用 Rcpp,试图找到正确的数学方法。
我不知道我是否正确理解了你的意思,我用头撞了一下显示器,写了一个简单的例子。
这是你想要的吗?
我不知道我是否正确理解了你的意思,我在用头撞了一下显示器后写了一个简单的例子。
这是你想要的吗?
看起来是的,但似乎参数只能取几个指定值,而不是任意的实数。
类似,但参数似乎只能取几个给定值,而不是任意实数。
这样更好吗?
=====================
您还可以将表达式复杂化