一个神经网络的EA的示例.docx
- 文档编号:20139526
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:16
- 大小:116.54KB
一个神经网络的EA的示例.docx
《一个神经网络的EA的示例.docx》由会员分享,可在线阅读,更多相关《一个神经网络的EA的示例.docx(16页珍藏版)》请在冰豆网上搜索。
一个神经网络的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")。
Wewilloptimizeonlyinputsthatcorrespondwiththefirststage,i.e.,thatendin1.Thus,wecheckonlytheseinputsforoptimization,anduncheckallothers.
我们仅仅优化步骤1相关的那些inputs(参数变量),即,尾标为1的参数变量,于是,我们仅仅测试优化有关的inputs而不测试其他的变量参数
tp1-TakeProfitoftheBTS.Itisoptimizedwiththevalueswithintherangeof10to100,step1
tp1,BTS的所取的止盈值(TakeProfit)。
在step1,优化的值的范围在10到100,
sl1-StopLossoftheBTS.Itisoptimizedwiththevalueswithintherangeof10to100,step1
sl1,BTS的所取的止损值(StopLoss)。
在step1,优化的值的范围在10到100。
p1-periodofCCIusedintheBTS.Itisoptimizedwiththevalueswithintherangeof3to100,step1
p1,用于BTS的CCI的周期值。
在step1,优化的值的范围在3到100
BelowaretheresultsoftheBTSoptimization:
下面是BTS优化的结果
Stage2.Teachingtheperceptronresponsibleforshortpositions:
步骤2,“教育负责管“开空仓”(shortpositions)的感知机
Setthevalue2(accordingtothestagenumber)fortheinput"pass".
根据步骤的步骤号,设置(input,参数变量)的"pass"的值为2。
Unchecktheinputscheckedforoptimizationinthepreviousstage.Justincase,saveinafiletheinputsobtainedatthepreviousstage.
不测试那些已经测试过的优化了的以前步骤的inputs.(变量参数)。
以防万一,保存以前步骤获得的inputs(变量参数值)到一个文件中去
Checktheinputsforoptimizationaccordingtoourrule:
theiridentifiersmustendin2:
根据我们的规则,必须是测试那些是在尾标为2的inputs(变量参数)。
x12,x22,x32,x42-weightnumbersoftheperceptronthatrecognizesshortpositions.Itisoptimizedwiththevalueswithintherangeof0to200,step1
x12,x22,x32,x42是识别并开空仓的感知机的权重,它们的值在step1时被优化在范围0to200
tp2-TakeProfitofpositionsopenedbytheperceptron.Itisoptimizedwiththevalueswithintherangeof10to100,step1
tp2 (TakeProfit)是感知机所开的仓的止盈值,它们的值在step1时被优化在范围10to100。
sl2-StopLossofpositionsopenedbytheperceptron.Itisoptimizedwiththevalueswithintherangeof10to100,step1
sl2(StopLos)在step1它是感知机所开的仓的止损值,被优化值的范围在10to100
p2-theperiodofthevaluesofpricedifferencetobeanalyzedbytheperceptron.Itisoptimizedwiththevalueswithintherangeof3to100,step1.
p2感知机所分析的价格差的周期值(iiCCI()函数的一个参数∶period-Averagingperiodforcalculation),在step1它的值所优化的范围在3to100
Let'sstartteachingitusingoptimizationwithageneticalgorithm.Theobtainedresultsaregivenbelow:
现在,开始用遗传算法来优化“教育”NN(让它“学习”市场),获得的结果如下∶
Stage3.Teachingtheperceptronresponsibleforlongpositions:
步骤3“教育”负责开多仓的感知机(“学习”市场)。
Setthevalue3(accordingtothestagenumber)fortheinput"pass".
设置值3(根据步骤的步骤号)说明这些input(变量参数)已经“通过”(theinput"pass")
Unchecktheinputscheckedforoptimizationinthepreviousstage.Justincase,saveinafiletheinputsobtainedatthepreviousstage.
同样,不测试,那些已经测试过的优化了的,以前步骤的inputs.(变量参数值),以防万一,保存以前步骤获得的inputs.(变量参数值)到一个文件中去
Checktheinputsforoptimizationaccordingtoourrule:
theiridentifiersmustendin3:
根据我们的规则,优化测试的inputs(变量参数值)必须是尾标为3的那些变量参数。
x13,x23,x33,x43-weightnumbersoftheperceptronthatrecognizeslongpositions.Itisoptimizedwiththevalueswithintherangeof0to200,step1.
x13,x23,x33,x43是识别多仓的感知机的权重,它们的值在step1时被优化时得到的范围在0to200
tp3-TakeProfitofpositionsopenedbytheperceptron.Itisoptimizedwiththevalueswithintherangeof10to100,step1
tp3 (TakeProfit)是感知机所开的仓的“止盈值”,它的值在step1时被优化时的范围是在10to100。
sl3-StopLossofpositionsopenedbytheperceptron.Itisoptimizedwiththevalueswithintherangeof10to100,step1
sl3(StopLoss)是感知机所开的仓的“止盈值”,它们的值在step1时被优化为范围是10to100。
p3-theperiodofthevaluesofpricedifferencetobeanalyzedbytheperceptron.Itisoptimizedwiththevalueswithintherangeof3to100,step1.
p3--感知机所分析的价差的周期值。
它在步骤1优化时得到的值的范围是3to100。
Let'sstartteachingitusingoptimizationwithageneticalgorithm.Theobtainedresultsaregivenbelow:
启动采用遗传算法的优化来“教育”NN,所获得的结果如下∶
Stage4(final).Teachingthefirstlayer,i.e.,teachingtheperceptronthatisintheupperlayer:
步骤4(最终步骤)“教育”第一层,即“教育”在上层的感知机。
Setthevalue4(accordingtothestagenumber)fortheinput"pass".
根据步骤的步骤号,设置值4为输入通过(fortheinput"pass")
Unchecktheinputscheckedforoptimizationinthepreviousstage.Justincase,saveinafiletheinputsobtainedatthepreviousstage.
不测试那些在之前步骤已经测试过的优化了的“输入”(inputs)(意思是∶已经在之前步骤优化过的变量的参数值就不再优化它们了)。
以防万一,将之前步骤获得的这些变量的参数值存到一个文件中去。
Checktheinputsforoptimizationaccordingtoourrule:
theiridentifiersmustendin4:
根据我们的规则,只测试优化标识符最后位是4的那些inputs(变量的参数值)
x14,x24,x34,x44-weightnumbersoftheperceptronofthefirstlayer.Itisoptimizedwiththevalueswithintherangeof0to200,step1.
x14,x24,x34,x44是第一层感知机参数的权重值。
在步骤1时它们被优化的值的范围在0to200。
p4-theperiodofthevaluesofpricedifferencetobeanalyzedbytheperceptron.Itisoptimizedwiththevalueswithintherangeof3to100,step1.
p4被感知机分析的价差的值的周期。
在步骤1它的值的范围被优化在3to100。
Let'sstartteachingitusingoptimizationwithageneticalgorithm.Theobtainedresultsaregivenbelow:
采用遗传算法来优化,启动“教育
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一个 神经网络 EA 示例