交易中的机器学习:理论、模型、实践和算法交易 - 页 254 1...247248249250251252253254255256257258259260261...3399 新评论 mytarmailS 2016.12.23 19:25 #2531 Dr.Trader:它看起来很复杂,我不知道结果如何,我就不去了。 R有一个GMDH包(英文是 "MGUA")。这很难,因为有各种各样的算法,很容易被混淆。有一个包,但它是 "沉闷的"。我试着用更简单、更简短的语言来解释......一个非物理性的自组织组合模型是对样本元素(预测器)的所有可能的组合进行简单的搜索,并在OOS下检查这种搜索的每个迭代,因为预测器是多项式或谐波,这种组合可能会变得更加复杂,所以要进入一个新的层次,进行组合,并再次在OOS下检查,再次进入一个新的层次,如此反复,直到找到OOS下的最小误差,这是自组织的本质(如果我对那里的一切理解正确)。我的建议....我们都知道,任何函数都可以被分解成傅里叶级数,如图所示。反之亦然,通过正确的谐波组合,我们可以得到 我们需要的任何 函数现在想象一下,有一个函数(一条曲线)或一个矢量,随你怎么称呼它......它完全描述了一个市场工具并胜过它。它可能是一个聪明的季节性表达的函数或对其他仪器的依赖性,或月球周期))这绝对是不重要的,我们凡人不知道它,但 我们可以找到这种依赖性,甚至不知道在哪里寻找它......让我们把这种依赖性--推动市场--进一步称为超级依赖性NW我们所需要的是 1)采取一些适当范围的谐波2) 创建一个目标3)开始经历所有可能的谐波之间的组合,观察OOS。你明白这有多简单和深奥吗?我们不知道在哪里寻找SP,但我们可以自己合成产生它!你知道吗? 就是这样,它看起来是一个简单的过采样算法,但当我理解它时,我感到很惊讶......但有一个很大的BUT! 将会有数万亿的组合,我们需要一个方法,我需要你的帮助。也许遗传学是一种寻找良好组合的方法?你对这一想法及其实施有什么看法?BLEEP!!!...... Dr. Trader 2016.12.24 05:05 #2532 你所描述的是符合 "对OOS好 "的结果。首先,你选择模型参数(谐波组合),以便对样本有一个好的结果。然后你从它们中选择那些对OOS有好处的参数。这是对良好结果的双重拟合,模型在新的交易数据上很可能是无用的。通过谐波的组合,你可以描述价格走势,但同样可以用神经元或森林来实现。我想你已经用神经元做了几百次,都没有成功,为什么你认为MGUA的结果会是积极的?外汇中的机器学习不能像传统问题那样容易使用,价格 行为随着时间的推移而变化,你发现和使用的大部分依赖关系--将很快不复存在。而所有这些模型都是为不随时间变化的恒定依赖性而设计的,正因为如此,在这样的问题上并不能盈利。 Maxim Romanov 2016.12.24 07:57 #2533 mytarmailS:这很难,因为有各种各样的算法,很容易被混淆。有一个包,但它是 "沉闷的"。我试着用更简单、更简短的语言来解释......一个非物理性的自组织组合模型是对样本元素(预测器)的所有可能的组合进行简单的搜索,并在OOS下检查这种搜索的每个迭代,因为预测器是多项式或谐波,这种组合可能会变得更加复杂,所以要进入一个新的层次,进行组合,并再次在OOS下检查,再次进入一个新的层次,如此反复,直到找到OOS下的最小误差,这是自组织的本质(如果我对那里的一切理解正确)。我的建议....我们都知道,任何函数都可以被分解成傅里叶级数,如图所示。反之亦然,通过正确的谐波组合,我们可以得到任何 我们需要的函数。现在想象一下,有一个函数(一条曲线)或一个矢量,随你怎么称呼它......它完全描述了一个市场工具并胜过它。它可能是一个聪明的季节性表达的函数或对其他仪器的依赖性,或月球周期))这绝对是不重要的,我们凡人不知道它,但 我们可以找到这种依赖性,甚至不知道在哪里寻找它......让我们把这种依赖性--推动市场--进一步称为超级依赖性NW我们所需要的是 1)采取一些适当范围的谐波2) 创建一个目标3)开始经历所有可能的谐波之间的组合,观察OOS。你明白这有多简单和深奥吗?我们不知道在哪里寻找SP,但我们可以自己合成产生它!你知道吗? 就是这样,它看起来是一个简单的过采样算法,但当我理解它时,我感到很惊讶......但有一个很大的BUT! 将会有数万亿的组合,我们需要一种方法,我需要你的帮助。也许遗传学是一种寻找良好组合的方法?对这一想法及其实施的任何想法 我已经在我的指标中实施了这样一个想法。这是非常耗费资源的。我可以根据1000条历史记录进行调整,也可以根据10000条历史记录进行调整。底线如下:有时它完美地发挥作用,预测了价格的一个点。但在其他时候,它甚至没有接近。原因是所有这些时期在计算点之后开始在市场上浮动。也许有可能从当前值中输入修正值-+,但对我来说并不奏效。 mytarmailS 2016.12.24 09:00 #2534 Dr.Trader:你所描述的是符合 "对OOS好 "的结果。首先,你选择模型参数(谐波组合),以便对样本有一个好的结果。然后从这些中,你选择那些对奥斯的参数是好的。这是对一个好结果的双重拟合,在新的交易数据上,这个模型很可能是无用的......。我睡了一觉,自己也明白了,这是个废话,只是一个契机......但这里有一个问题,为什么不适合其他一切?你知道,任何有OOS的训练都是对OOS的一种适应,对吗?Dr.Trader:为什么你认为MGUA的结果会是积极的?我自己还完全不明白这一点,也许我永远不会明白......只是在私人通信中,尼古拉建议我学习频谱分析,并熟悉MSUA,如果你想开始做一些有用的事情。他说,他自己也是这样开始的,当他建造第一个工作的机器人时,他只用了两本书,一本是Ivakhnenk的《MSIA》,另一本是Marple的《Spectrum Anal》。书名的翻译并不正确,我只是总结了一下,让大家清楚我们在大体上谈论的内容。谁是尼古拉斯?除了是一个谦虚和非常聪明的人之外。他是人工智能的博士,制造机器人大约有20年了,他最新的机器人看起来像这样。因此,他在大约30年前就开始旋转这些网络,当时我们还不知道 "神经网络 "这样的词 ......而现在这个人只推荐了两样东西 傅立叶和马瓜,常识告诉我们这值得一听...下面是我的一些理由,为什么它应该工作)) mytarmailS 2016.12.24 09:03 #2535 马克西姆-罗曼诺夫。 这大致上是我在指标中提出的观点。它非常耗费资源。我可以把它调整为1000条的历史,或者调整为10000条的历史。底线如下:有时它完美地工作,并预测了价格的一个点。但在其他时候,它甚至没有接近。原因是所有这些时期在计算点之后开始在市场上浮动。你可能可以从当前的数值中输入修正-+,但我没有得到它。 我明白了,合适就好))我同意我错了的事实。 mytarmailS 2016.12.24 11:55 #2536 问题有一个向量 "x "和一个矩阵 "y"。我们需要快速计算 "x "与矩阵 "y "的每一行之间的欧几里得距离。我超越了标准函数 "dist()",写了我自己的函数штатная system.time(for(i in 1:nrow(m)) {dist.ve[i] <- dist(rbind(x,m[i,]))}) user system elapsed 4.38 0.00 4.39 самописная system.time(for(i in 1:nrow(m)) {dist.ve[i] <- euc.dist(x,m[i,])}) user system elapsed 0.65 0.00 0.67 但这还不够,我想加速到第二个零点0.0....。还有什么可以做的?代码。x <- rnorm(10) m <- matrix(data = rnorm(1000000),ncol = 10) euc.dist <- function(x1, x2) sqrt(sum((x1 - x2) ^ 2)) dist.ve <- rep(0,nrow(m)) # distance vector system.time(for(i in 1:nrow(m)) {dist.ve[i] <- dist(rbind(x,m[i,]))}) system.time(for(i in 1:nrow(m)) {dist.ve[i] <- euc.dist(x,m[i,])}) Machine learning in trading: A quick and free Creating and initializing matrices Dr. Trader 2016.12.24 12:32 #2537 mytarmailS:但问题来了,那为什么不适合其他的东西呢?因为后来发现,任何有OOS测试的培训都是适合OOS的,对吗? 如果不是,那为什么不是?对静止数据(具有恒定不变的依赖关系)的交叉验证和OOS测试是很有用的。在非稳态数据上,它是无用的。例如,你可以使用相同的算法训练一堆模型,但在不同时间的数据上进行训练;对于每个模型,都要找到样本和OOS的利润,并找到这两个利润的相关性。对于常见的外汇模型,通常没有这种相关性,也就是说,样本上的利润并不能保证什么,在这种情况下,做交叉验证来试图改善新数据的结果是没有用的。 另一方面,如果相关性很高而且是正的,那么这个模型就有一定的潜力,你可以安全地进行交叉验证,以调整模型参数并改进结果。 Dr. Trader 2016.12.25 13:33 #2538 这里是上一篇文章的一个例子。我们采取几个月的eurusd公开价格,对其进行模型训练(randomForest),并使用它们来预测一小段时间内的新数据。目标值是下一个条形图的价格增量(两类0和1)。这一切在不同的时间间隔内重复1000次,然后找到相关的数据。最后,我们看到训练和新数据的结果的相关性,在这种情况下,我们得到了大约0.1,也就是说,在训练中应该有所改变,这种方法不会带来利润。训练数据上的好结果并不保证将来会有好结果。TrainModel函数可以用来训练你自己的模型,做交叉验证,遗传匹配,等等。 附加的文件: oos_correlation.txt 6 kb eurusd_h1_4y.zip 235 kb mytarmailS 2016.12.25 14:42 #2539 Dr.Trader:这里是上一篇文章的一个例子。我们采取几个月的eurusd公开价格,对其进行模型训练(randomForest),并使用它们来预测一小段时间内的新数据。目标值是下一个条形图的价格增量(两类0和1)。这一切在不同的时间间隔内重复1000次,然后找到相关的数据。最后,我们看到训练和新数据的结果的相关性,在这种情况下,我们得到了大约0.1,也就是说,在训练中应该有所改变,这种方法不会带来利润。训练数据上的好结果并不保证将来会有好结果。你可以使用TrainModel函数来训练你的模型,做交叉验证,遗传匹配,等等。1.你为什么要手动规范化?2.为什么相关的-1和1是好的?只有当1是好的-1是非常糟糕的,如果我理解正确的话,-1是反相关的。3.你是否尝试过在滑动窗口中监测训练过的模型的误差,如果它不适合你,就重新训练模型,看看会发生什么?4.而全局的想法是,为什么这一切运作得如此糟糕,市场不是静止的,你需要研究出一些其他特征形成的概念,也许完全切换到逻辑规则的范式,我认为你需要几乎完全远离数字,或者研究频谱分析)))))。 mytarmailS 2016.12.25 15:08 #2540 昨天我在袋子里翻找合适的东西来完成一个想法,我没有找到合适的东西,但我确实找到了一个有趣的东西......。这就是所谓的 "趋势"。https://cran.r-project.org/web/packages/trend/trend.pdf该软件包实现了各种趋势测试和其他东西例如,函数 mk.test() - 给出一个趋势的特征,例如上升或下降,等等...。pettitt.test() -按照我的理解,它找到趋势开始的向量中的那一点。Sens.slope() - 通过这个函数,可以计算出趋势斜率的角度。和很多其他的特殊功能我认为,只要能科学地观察到趋势,就应该检查)我根据clowes的说法,在200个值的滑动窗口中计算了mk.test()$Zg,结果发现它是一个类似指标的东西零以上是上升的趋势,零以下是下降的趋势。 还有呢?它能抓住趋势,不会像macd-ki和stochastc-ki那样混淆价格方向....。总的来说,我喜欢它总是沿着趋势的方向开仓。在某些时期,它甚至能赚到好钱。如果我采取计时码表,而不是M5,那么也许会有一些有用的东西。Karoch我的建议是,有人拥有强大的电脑和时间来计算所有这些测试的趋势性,斜率,角度等,并喂养MO,也许这将工作,只是我现在有一台电脑在全速运行,运行处理,在四天内完成计数,而我现在坐在上面的笔记本电脑,它只能看网站) 1...247248249250251252253254255256257258259260261...3399 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
它看起来很复杂,我不知道结果如何,我就不去了。
R有一个GMDH包(英文是 "MGUA")。
这很难,因为有各种各样的算法,很容易被混淆。
有一个包,但它是 "沉闷的"。
我试着用更简单、更简短的语言来解释......
一个非物理性的自组织组合模型是
对样本元素(预测器)的所有可能的组合进行简单的搜索,并在OOS下检查这种搜索的每个迭代,因为预测器是多项式或谐波,这种组合可能会变得更加复杂,所以要进入一个新的层次,进行组合,并再次在OOS下检查,再次进入一个新的层次,如此反复,直到找到OOS下的最小误差,这是自组织的本质(如果我对那里的一切理解正确)。
我的建议....
我们都知道,任何函数都可以被分解成傅里叶级数,如图所示。
反之亦然,通过正确的谐波组合,我们可以得到 我们需要的任何 函数
现在想象一下,有一个函数(一条曲线)或一个矢量,随你怎么称呼它......它完全描述了一个市场工具并胜过它。它可能是一个聪明的季节性表达的函数或对其他仪器的依赖性,或月球周期))这绝对是不重要的,我们凡人不知道它,但 我们可以找到这种依赖性,甚至不知道在哪里寻找它......让我们把这种依赖性--推动市场--进一步称为超级依赖性NW
我们所需要的是
1)采取一些适当范围的谐波
2) 创建一个目标
3)开始经历所有可能的谐波之间的组合,观察OOS。
你明白这有多简单和深奥吗?我们不知道在哪里寻找SP,但我们可以自己合成产生它!你知道吗?
就是这样,它看起来是一个简单的过采样算法,但当我理解它时,我感到很惊讶......
但有一个很大的BUT! 将会有数万亿的组合,我们需要一个方法,我需要你的帮助。
也许遗传学是一种寻找良好组合的方法?
你对这一想法及其实施有什么看法?
BLEEP!!!......
你所描述的是符合 "对OOS好 "的结果。首先,你选择模型参数(谐波组合),以便对样本有一个好的结果。然后你从它们中选择那些对OOS有好处的参数。这是对良好结果的双重拟合,模型在新的交易数据上很可能是无用的。
通过谐波的组合,你可以描述价格走势,但同样可以用神经元或森林来实现。我想你已经用神经元做了几百次,都没有成功,为什么你认为MGUA的结果会是积极的?外汇中的机器学习不能像传统问题那样容易使用,价格 行为随着时间的推移而变化,你发现和使用的大部分依赖关系--将很快不复存在。而所有这些模型都是为不随时间变化的恒定依赖性而设计的,正因为如此,在这样的问题上并不能盈利。
这很难,因为有各种各样的算法,很容易被混淆。
有一个包,但它是 "沉闷的"。
我试着用更简单、更简短的语言来解释......
一个非物理性的自组织组合模型是
对样本元素(预测器)的所有可能的组合进行简单的搜索,并在OOS下检查这种搜索的每个迭代,因为预测器是多项式或谐波,这种组合可能会变得更加复杂,所以要进入一个新的层次,进行组合,并再次在OOS下检查,再次进入一个新的层次,如此反复,直到找到OOS下的最小误差,这是自组织的本质(如果我对那里的一切理解正确)。
我的建议....
我们都知道,任何函数都可以被分解成傅里叶级数,如图所示。
反之亦然,通过正确的谐波组合,我们可以得到任何 我们需要的函数。
现在想象一下,有一个函数(一条曲线)或一个矢量,随你怎么称呼它......它完全描述了一个市场工具并胜过它。它可能是一个聪明的季节性表达的函数或对其他仪器的依赖性,或月球周期))这绝对是不重要的,我们凡人不知道它,但 我们可以找到这种依赖性,甚至不知道在哪里寻找它......让我们把这种依赖性--推动市场--进一步称为超级依赖性NW
我们所需要的是
1)采取一些适当范围的谐波
2) 创建一个目标
3)开始经历所有可能的谐波之间的组合,观察OOS。
你明白这有多简单和深奥吗?我们不知道在哪里寻找SP,但我们可以自己合成产生它!你知道吗?
就是这样,它看起来是一个简单的过采样算法,但当我理解它时,我感到很惊讶......
但有一个很大的BUT! 将会有数万亿的组合,我们需要一种方法,我需要你的帮助。
也许遗传学是一种寻找良好组合的方法?
对这一想法及其实施的任何想法
你所描述的是符合 "对OOS好 "的结果。首先,你选择模型参数(谐波组合),以便对样本有一个好的结果。然后从这些中,你选择那些对奥斯的参数是好的。这是对一个好结果的双重拟合,在新的交易数据上,这个模型很可能是无用的......。
我睡了一觉,自己也明白了,这是个废话,只是一个契机......
但这里有一个问题,为什么不适合其他一切?你知道,任何有OOS的训练都是对OOS的一种适应,对吗?
为什么你认为MGUA的结果会是积极的?
我自己还完全不明白这一点,也许我永远不会明白......
只是在私人通信中,尼古拉建议我学习频谱分析,并熟悉MSUA,如果你想开始做一些有用的事情。
他说,他自己也是这样开始的,当他建造第一个工作的机器人时,他只用了两本书,一本是Ivakhnenk的《MSIA》,另一本是Marple的《Spectrum Anal》。
书名的翻译并不正确,我只是总结了一下,让大家清楚我们在大体上谈论的内容。
谁是尼古拉斯?除了是一个谦虚和非常聪明的人之外。
他是人工智能的博士,制造机器人大约有20年了,他最新的机器人看起来像这样。
因此,他在大约30年前就开始旋转这些网络,当时我们还不知道 "神经网络 "这样的词 ......
而现在这个人只推荐了两样东西 傅立叶和马瓜,常识告诉我们这值得一听...下面是我的一些理由,为什么它应该工作))
这大致上是我在指标中提出的观点。它非常耗费资源。我可以把它调整为1000条的历史,或者调整为10000条的历史。底线如下:有时它完美地工作,并预测了价格的一个点。但在其他时候,它甚至没有接近。原因是所有这些时期在计算点之后开始在市场上浮动。你可能可以从当前的数值中输入修正-+,但我没有得到它。
问题
有一个向量 "x "和一个矩阵 "y"。
我们需要快速计算 "x "与矩阵 "y "的每一行之间的欧几里得距离。
我超越了标准函数 "dist()",写了我自己的函数
штатная
system.time(for(i in 1:nrow(m)) {dist.ve[i] <- dist(rbind(x,m[i,]))})
user system elapsed
4.38 0.00 4.39
самописная
system.time(for(i in 1:nrow(m)) {dist.ve[i] <- euc.dist(x,m[i,])})user system elapsed
0.65 0.00 0.67
但这还不够,我想加速到第二个零点0.0....。
还有什么可以做的?
代码。
m <- matrix(data = rnorm(1000000),ncol = 10)
euc.dist <- function(x1, x2) sqrt(sum((x1 - x2) ^ 2))
dist.ve <- rep(0,nrow(m)) # distance vector
system.time(for(i in 1:nrow(m)) {dist.ve[i] <- dist(rbind(x,m[i,]))})
system.time(for(i in 1:nrow(m)) {dist.ve[i] <- euc.dist(x,m[i,])})
但问题来了,那为什么不适合其他的东西呢?因为后来发现,任何有OOS测试的培训都是适合OOS的,对吗? 如果不是,那为什么不是?
对静止数据(具有恒定不变的依赖关系)的交叉验证和OOS测试是很有用的。在非稳态数据上,它是无用的。
例如,你可以使用相同的算法训练一堆模型,但在不同时间的数据上进行训练;对于每个模型,都要找到样本和OOS的利润,并找到这两个利润的相关性。对于常见的外汇模型,通常没有这种相关性,也就是说,样本上的利润并不能保证什么,在这种情况下,做交叉验证来试图改善新数据的结果是没有用的。
另一方面,如果相关性很高而且是正的,那么这个模型就有一定的潜力,你可以安全地进行交叉验证,以调整模型参数并改进结果。
这里是上一篇文章的一个例子。我们采取几个月的eurusd公开价格,对其进行模型训练(randomForest),并使用它们来预测一小段时间内的新数据。目标值是下一个条形图的价格增量(两类0和1)。这一切在不同的时间间隔内重复1000次,然后找到相关的数据。
最后,我们看到训练和新数据的结果的相关性,在这种情况下,我们得到了大约0.1,也就是说,在训练中应该有所改变,这种方法不会带来利润。训练数据上的好结果并不保证将来会有好结果。
TrainModel函数可以用来训练你自己的模型,做交叉验证,遗传匹配,等等。
这里是上一篇文章的一个例子。我们采取几个月的eurusd公开价格,对其进行模型训练(randomForest),并使用它们来预测一小段时间内的新数据。目标值是下一个条形图的价格增量(两类0和1)。这一切在不同的时间间隔内重复1000次,然后找到相关的数据。
最后,我们看到训练和新数据的结果的相关性,在这种情况下,我们得到了大约0.1,也就是说,在训练中应该有所改变,这种方法不会带来利润。训练数据上的好结果并不保证将来会有好结果。
你可以使用TrainModel函数来训练你的模型,做交叉验证,遗传匹配,等等。
1.你为什么要手动规范化?
2.为什么相关的-1和1是好的?只有当1是好的-1是非常糟糕的,如果我理解正确的话,-1是反相关的。
3.你是否尝试过在滑动窗口中监测训练过的模型的误差,如果它不适合你,就重新训练模型,看看会发生什么?
4.而全局的想法是,为什么这一切运作得如此糟糕,市场不是静止的,你需要研究出一些其他特征形成的概念,也许完全切换到逻辑规则的范式,我认为你需要几乎完全远离数字,或者研究频谱分析)))))。
昨天我在袋子里翻找合适的东西来完成一个想法,我没有找到合适的东西,但我确实找到了一个有趣的东西......。
这就是所谓的 "趋势"。
https://cran.r-project.org/web/packages/trend/trend.pdf
该软件包实现了各种趋势测试和其他东西
例如,函数
mk.test() - 给出一个趋势的特征,例如上升或下降,等等...。
pettitt.test() -按照我的理解,它找到趋势开始的向量中的那一点。
Sens.slope() - 通过这个函数,可以计算出趋势斜率的角度。
和很多其他的特殊功能
我认为,只要能科学地观察到趋势,就应该检查)我根据clowes的说法,在200个值的滑动窗口中计算了mk.test()$Zg,结果发现它是一个类似指标的东西
零以上是上升的趋势,零以下是下降的趋势。
还有呢?它能抓住趋势,不会像macd-ki和stochastc-ki那样混淆价格方向....。总的来说,我喜欢它总是沿着趋势的方向开仓。
在某些时期,它甚至能赚到好钱。
如果我采取计时码表,而不是M5,那么也许会有一些有用的东西。
Karoch我的建议是,有人拥有强大的电脑和时间来计算所有这些测试的趋势性,斜率,角度等,并喂养MO,也许这将工作,只是我现在有一台电脑在全速运行,运行处理,在四天内完成计数,而我现在坐在上面的笔记本电脑,它只能看网站)