脚本形式的神经网络 - 页 5

 
Blast:

我如何使用这个?在图表上放一个脚本,成堆的数字开始重写...这些数字说明了什么?

被覆盖的数字(为清晰起见)是在学习过程中调整的神经元的权重(见上面的分支)。

这里有一个指标的例子,使用的是在该分支开始时发布的第一个版本的网格。

输入

               if (iMA(NULL,0,13,0,MODE_SMMA,PRICE_MEDIAN,pat + 0 )>iMA(NULL,0,13,0,MODE_SMMA,PRICE_MEDIAN,pat + 2 )) test_pat[0] = 0.1 ; else test_pat[0] = 0.9;
               if (iMA(NULL,0,13,0,MODE_SMMA,PRICE_MEDIAN,pat + 0 )>iMA(NULL,0,13,0,MODE_SMMA,PRICE_MEDIAN,pat + 3 )) test_pat[1] = 0.1 ; else test_pat[1] = 0.9;
               if (iMA(NULL,0,13,0,MODE_SMMA,PRICE_MEDIAN,pat + 0 )>iMA(NULL,0,13,0,MODE_SMMA,PRICE_MEDIAN,pat + 4 )) test_pat[2] = 0.1 ; else test_pat[2] = 0.9;
               if (iMA(NULL,0,13,0,MODE_SMMA,PRICE_MEDIAN,pat + 0 )>iMA(NULL,0,13,0,MODE_SMMA,PRICE_MEDIAN,pat + 5 )) test_pat[3] = 0.1 ; else test_pat[3] = 0.9;

输出

               if (iMA(NULL,0,13,0,MODE_SMMA,PRICE_MEDIAN,pat + 0 )>iMA(NULL,0,13,0,MODE_SMMA,PRICE_MEDIAN,pat + 1 )) desired[0] = 0.1 ; else desired[0] = 0.9;
               if (iMA(NULL,0,13,0,MODE_SMMA,PRICE_MEDIAN,pat + 0 )>iMA(NULL,0,13,0,MODE_SMMA,PRICE_MEDIAN,pat + 1 )) desired[1] = 0.1 ; else desired[1] = 0.9;

输入和输出只是举例。因为这不是最好的选择。

最好的变体必须被搜索和尝试。

附加的文件:
 
sprite:

进入和退出只是一个例子。因为这不是最好的选择。

必须寻求和尝试最好的选择。

你是否尝试过获得预测方向的 概率 作为出口,至少在简单的上升/下降选项中?

 
SK. писал (а):
精灵

进入和退出只是一个例子。因为这不是最好的选择。

必须寻求和尝试最好的选择。

你是否尝试过获得预测方向的 概率 作为出口,至少在简单的上升/下降选项中?

你是如何编码的 预测方向的概率)?
 
sprite:
如何对它 预测方向的概率)进行编码?

这一定是有可能的。你确实在输出中得到了某种0和1。

例如,01=50%,10=50%,00=-100%,11=+100%。

如果你再努力一点,你可以规定某种反馈--以检查实际的方向。

 

网格训练 的目标函数是一个有趣的问题!

Ezhov, Shumsky的书 "神经计算及其在经济和商业中的应用 "中涉及到这个问题。

 
朋友们,忘记这个mql吧。它很慢。你应该用C++写一个网络,学习它,然后把准备好的系数送入mql程序。人们甚至试图在培训期间加载显卡,不管它多么扭曲,以节省时间,而你却在浪费时间。
 
Wisard писал (а)>>
我的朋友们,忘记这个mql吧。它很慢。你应该用C++编写网络,学习它,然后将准备好的系数粘贴到mql程序中。人们甚至在培训期间试图加载一个视频卡,他们以任何方式扭曲它以节省时间,而你却在浪费时间。

这很明显...当然很慢

但这并不妨碍(好的程序员最好在MQL4代码中实现它)。

这不是重点

我在这里举了一个简单的例子,一个简单的网格:在C语言中,网格的训练只需要几秒钟,而在MQL中则需要长达数分钟甚至数小时。

而受过训练的人以可接受的速度工作--也就是说,如果你不每一步都重新训练它的话

PNN网络非常快!在C语言中,它要么在MQL4中,要么在最慢的脚本中--在实际工作中,它不会出现的

因为你不必像抓跳蚤一样做决定--机器的速度已经很好了。

但我更愿意在C语言中创建和编写网络--这样可以快速训练它,修改它,增加新的功能并在测试中运行它。

迁移到MQL4并没有任何意义......除了CHAMPIONSHIP。

 
SK. писал (а)>>

你是否尝试过将预测方向的 概率 作为输出,至少在一个简单的上/下版本中?

谢尔盖,我认为这里的任务只是显示当前的方向,并在它发生变化时迅速通知。

与其说是对即将发生的事情的预测,不如说是对目前正在发生的事情的一种指示。

这是在正确的方向上保持一个开放的位置而不让它违背指示的一种尝试

开盘本身可以根据不同的过滤器和其他指标来进行,例如,在较小的时间框架内的背离的背离。

可能有人的网络非常好,不需要额外的操作。

 
YuraZ писал (а)>>

这很明显......当然很慢了

但这并不妨碍(好的程序员最好在MQL4代码中实现它)。

这不是重点

我在这里举了一个简单的例子,一个简单的网格:在C语言中,网格的训练只需要几秒钟,而在MQL中则需要长达数分钟甚至数小时。

而受过训练的人以可接受的速度工作--也就是说,如果你不每一步都重新训练它的话

PNN网络非常快!在C语言中,它要么在MQL4中,要么在最慢的脚本中--在实际工作中,它不会出现的

因为你不必像抓跳蚤一样做决定--机器的速度已经足够了。

但我更愿意在C语言中创建和编写网络--这样可以快速训练它,修改它,增加新的功能并在测试中运行它。

迁移到MQL4并没有任何意义......除非是为了CHAMPIONSHIP。

也许走的是用C++连接DLL的方式,以加快MQL的速度。用C++写一些通用的模板-函数,虽然它和NSDT有点相同。顺便说一下,BETTER用C++写了所有的东西,并把最终结果翻译成MQL。
 
YuraZ писал (а)>>

本网络

同样的网络,但用微软Visual C++ 6.0编写。

速度比MQL4高了好几个数量级

算法没有改变,从MQL4到C++的转移是尽可能直接的,不使用对象--类。

我找不到一个dll文件。 如果你可以,请告诉我如何创建一个。