整理一个神经网络的EA的示例.docx
《整理一个神经网络的EA的示例.docx》由会员分享,可在线阅读,更多相关《整理一个神经网络的EA的示例.docx(13页珍藏版)》请在冰豆网上搜索。
整理一个神经网络的EA的示例
一个神经网络的EA的示例(含源码)——Combo_Right.mq4
软件简介:
去年年底结束的国际大赛的第一名为Better所夺得
他采用的就是神经网络原理的EA
这使得用神经网络方法做EA成为不少人关注的焦点
这里翻译一篇采用神经网络做EA的不错的示例文章
当然附有源码是吸引人的地方
不过也许作者提出了研究神经网络EA的一些思考更为值得注意
作者提出了∶
1。
“如果有飞机,为什么还要教人类去飞?
”
意思是研究是经网络不必从零起步。
MT4里已有了不错的“遗传算法”
文中介绍了如何利用MT4已有的“遗传算法”
2。
大家都说做单子最重要的是“顺势而为”,但更需要解决的是∶
“一个基于趋势的交易系统是不能成功交易在盘整(sidewaystrends),
也不能识别市场的回调(setbacks)和逆转(reversals.,反向走势)!
”
这可是抓到不少人心中的“痒处”,有多少人不是到了该逆势时没转向而产生亏损呢?
3。
训练神经网络需要用多长的历史数据,提出了并不是用的历史数据越长越好,另外也不是训练的间隔越短越好,文中提出了什么情况下有需再训练它。
等等。
。
下面是译文和作者的源码
Theproblemisstatedforthisautomatedtradingsystem(ATS)asfollows:
(ATS)自动的(智能的,采用神经网络的)交易系统的问题表述如下
Let'sconsiderwehaveabasictradingsystem-BTS.ItisnecessarytocreateandteachaneuralnetworkinorderittodothingsthatcannotbedonewiththeBTS.ThismustresultincreationofatradingsystemconsistingoftwocombinedandmutuallycomplementaryBTSandNN(neuralnetwork).
如果我们有一个(BTS,basictradingsystem),同时需要用创建一个神经网络系统并教会它做BTS所不能做的事,按这个思路就是要创建这样一个交易系统∶它由互相补充(配合)的两部分组成,BTS和NN(神经网络)。
Or,theEnglishofthisis:
Thereisnoneedtodiscoverthecontinentsagain,theywerealldiscovered.Whytoteachsomebodytorunfast,ifwehaveacar,ortofly,ifwehaveaplane?
呃,英语说,我们不需要再去发现“新大陆”,它们是已经存在的东西!
进一步说,如果我们已经有了汽车,那为什么还要教人如何跑得快?
如果有飞机,为什么还要教人类去飞?
Oncewehaveatrend-followingATS,wejusthavetoteachtheneuralnetworkincountertrendstrategy.Thisisnecessary,becauseasystemintendedfortrend-basedtradingcannottradeonsidewaystrendsorrecognizemarketsetbacksorreversals.Youcan,ofcourse,taketwoATSes-atrend-followingoneandacountertrendone-andattachthemtothesamechart.Ontheotherhand,youcanteachaneuralnetworktocomplementyourexistingtradingsystem.
一旦有一个趋势交易系统的ATS,我们仅需要教会这个神经网络如何逆势(反趋势)交易的策略。
这一点是非常必要的,因为一个基于趋势的交易系统是不能成功交易在盘整(sidewaystrends),也不能识别市场的回调(setbacks)和逆转(reversals.,反向走势)!
当然,你可以采用两个ATS,一个基于“趋势”,一个基于“反趋势”(逆向),然后把它们挂到同一图表上。
另一个办法是,你能教会神经网络如何与你现有的系统“互补地”协调工作!
Forthispurpose,wedesignedatwo-layerneuralnetworkconsistingoftwoperceptronsinthelowerlayerandoneperceptronintheupperlayer.
为实现这个目标,我们设计了一个两层的神经网络,下层有两个感知机(perceptrons)上层有一个感知机。
Theoutputoftheneuralnetworkcanbeinoneofthesethreestates:
这个神经网络的能输出下列三种状态之一
Enteringthemarketwithalongposition
(Entering)市场是处在多向仓
Enteringthemarketwithashortposition
(Entering)市场是处在空向仓
Indeterminatestate
不确定的,(不明确的,模糊的)状态
Actually,thethirdstateisthestateofpassingcontrolovertotheBTS,whereasinthefirsttwostatesthetradesignalsaregivenbytheneuralnetwork.
实际上,第三种状态是就把控制权交给BTS,反之前两种状态是交易信号由神经网络给出。
Theteachingoftheneuralnetworkisdividedintothreestages,eachstageforteachingoneperceptron.Atanystage,theoptimizedBTSmustbepresentforperceptronstoknowwhatitcando.
神经网络的“教育”分成三步骤,每一步骤“教育”一个感知机,在任何一步骤,这个优化了的BTS必须存在为的是“感知机们”知道它自己能做什么。
Theseparateteachingofperceptronsbyageneticalgorithmisdeterminedbythelackofthisalgorithm,namely:
Theamountofinputssearchedinwiththehelpofsuchalgorithmislimited.However,eachteachingstageiscoherentandtheneuralnetworkisnottoolarge,sothewholeoptimizationdoesnottaketoomuchtime.
感知机们分别的“教育”由遗传算法来承担,由于这样的算法的缺乏,换句话说,搜索到的这样的算法有限,限制了“输入”(参数变量)的数量(借助这样算法得到的参数变量的值),然而,每一步骤的“教育”是密切配合补充的。
(因此效果还是不错),这样这个神经网络不会太大,整个的优化也不会耗费太多的时间。
Theveryfirststage,precedingtheteachingofanNN,consistsinoptimizationoftheBTS.
在“教育”NN之前的一步是对BTS进行优化。
Inordernottoloseourselves,wewillrecordthestagenumberintheinputoftheATSidentifiedas"pass".Identifiersofinputscorrespondingwiththestagenumberwillandinthenumberequaltothisstagenumber.
为了不使我们自己也被搞糊涂了,我们将已经测试通过的ATS的输入(参数变量)记录上(”通过”("pass")的步骤号(stagenumber).,输入s(参数变量)的标识符将和stagenumber(步骤号)一致(等同)。
Thus,let'sstartpreparationsforoptimizationandteachingtheNN.Let'ssettheinitialdepositas$1000000(inordernottocreateanartificialmargincallduringoptimization)andtheinputtobeoptimizedas"Balance"inExpertAdvisorpropertiesonthetabof"Testing"intheStrategyTester,andstartgeneticalgorithm.
这样,我们开始对这个NN进行优化和“教育”的准备。
存入初始保证金为$100万(以便于在优化期间不产生人为的补充保证金的通知)。
Input(参数变量)是按“余额”进行优化,设置EA的StrategyTester的测试的属性tab为"Testing"。
开始运行遗传算法。
Let'sgotothe"Inputs"taboftheEA'spropertiesandspecifythevolumeofpositionstobeopenedbyassigningthevalue1totheidentifier"lots".
在这个EA的开仓量"lots".的值设为1lot。
Optimizationwillbeperformedaccordingtothemodel:
"Openpricesonly(fastestmethodtoanalyzethebarjustcompleted,onlyforEAsthatexplicitlycontrolbaropening)",sincethismethodisavailableintheATSalgorithm.
从这个ATS算法明确地有效开始,实施优化,所采用复盘模型是∶“仅用开盘价(以最快速的方法分析刚形成的柱线)”。
Stage1ofoptimization.OptimizationoftheBTS:
优化步骤1,BTS的优化
Setthevalue1fortheinput"pass".
设置为1为这input(参数变量)“为通过”(theinput"pass")。
Wewilloptimi