Better's EA - 世界自动交易大赛冠军

Discussion in 'Philosophy and Strategy' started by orator, May 5, 2008.

  1. 这是ATC2007年的冠军better的ATS的资金曲线
    [​IMG]
     
    Last edited by a moderator: Nov 6, 2009
  2. 上面的曲线是去年截止今天的资金走势,better的ea一直实时挂盘,图中有两个资金快速增长的波段,其中第一个波段就是better参赛期间的波段,从2007.10.1-2007.12.20,leverage 30:1资金从10000$到130000$。
    他的系统采用了NN+均线策略,使用c++开发,后为了参赛移植到MT4平台。
     
  3. better的ea一经成功,在forex field 引起震动,下面是当时better's ea的所有交易。

    BetterEA.zip
     
    Last edited by a moderator: Nov 6, 2009
  4. 随后在tsd,fxreal.ru,forexfactory,火线等外汇论坛出现大量讨论该ea 的帖子,最具代表性的是tsd由barnix领衔的better ea 帖子。

    下面这个连接是better ea目前的近况:
    http://www.viac.ru/cd/23&list=graph&acc=2102


    这是ATC2007另一参赛者的采访:
    http://championship.mql4.com/2007/cn/news/317


    这是最终比赛结果:
    http://championship.mql4.com/2007/cn/news/343


    这是forexfactory的帖子:
    http://www.forexfactory.com/showthread.php?t=57824


    这是tsd的帖子:
    http://www.forex-tsd.com/expert-advisors-metatrader-4/11096-better-nn-ea-development.html


    这是整个比赛过程中better与观众的所有66页对话:
    http://championship.mql4.com/2007/users/Better/discussion#comments
     
  5. 以下是ATC官方对better的采访,其间涉及部分better ea内容:
    原文链接:http://championship.mql4.com/2007/news/303
    better其人:

    Olexandr Topchylo (Better) is an experienced trader. He is Cand. Sc. (Physics and Mathematics), and this helps him develop trading systems. He performed unsuccessfully in the last-year Championship, but that failure was the making of him. Olexandr learned his lesson and became the leader of Championship 2007 with a huge equity!

    以下是采访内容:

    Hello, Olexandr. Could you tell us a little about yourself? When and how did you start trading?
    I'm 41 and Cand. Sc. (Physics and Mathematics), so I had all necessary foundations for trading. I've been trading forex for one and a half years. However, I have traded binary options on currency for three years. Methods forecasting currency exchange rate changes are absolutely the same for both spheres of trading, so I did not have to retrain myself.

    When and for what reason did you become interested in automated trading? What are your achievements in this field?
    I wanted to automate trading even when I was trading options. I opened 15-20 positions daily, and I had to do it all manually. However, that trading platform did not allow automated trading, unfortunately. When went to forex, I decided immediately that I would only trade on a platform that enables automated trading. So MetaTrader met my needs ideally.

    In summer 2006, I saw an advertisement for Automated Trading Championship 2006 and decided to learn MQL4 and try to participate in it. Fortunately, I code well in С++, so I wrote the first Expert Advisor in MQL4 within a week. Using that EA, I won a traders' contest conducted on demo accounts in one of Brokerage Companies.

    I wrote the second EA especially for ATC'2006. However, my experience was insufficient as related to what the difference is between testing and real conditions. This is why my EA contained some errors and took only the 113th place.

    Talking of Championship 2006, your Expert Advisor traded three currency pairs that time - EURUSD, GBPUSD and USDJPY. The trading was profitable for only one of them, while two other pairs were weighting your deposit down. This time, your EA trade only one pair, EURUSD. Have you concluded that it is better to trade only one pair?
    I have an absolutely different system this year. It has nothing in common with the last-year one. It works on EURUSD best of all.

    You EA made over 900 trades during Championship 2006. Your present EA has closed 144 positions within the first month of the contest. So we can say that your new strategy trades very actively, too. Or has your approach changed all the same?
    Yes, it has. The last-year system can be called scalping. However, I have revised my position towards this trading technique since that Championship. My present system is based on absolutely different principles. The real number of my trades at the present Championship can be with every reason divided by three, since I'm using three strongly correlated subsystems. Thus, it makes approximately two trades per day. Not too much.

    Summarizing your participation in ATC'2006, could you tell us what it has taught you? What conclusions have you made and what exactly has influenced them?
    First of all, it taught me that the results of scalping EAs may be as different as day and night in Tester, on a demo account or in real trading, as well as they are different for different brokers. So such strategies are unfit for a long-term and stable trading forex.

    You wrote on your Participant's page that you were using neural networks in your EA. How complicated is such an EA? What is more difficult to create - an optimal neural network or the Expert Advisor's algorithm?
    A neural network that forecasts the changes in exchange rates and a trading algorithm are inseparable, they belong each other. Indeed, the Expert Advisor is very complicated. This trading system was first developed in С++, tested and optimized. Only after that, it was re-written in MQL4 and debugged.

    Olexandr, why did you write the program in С++ and then re-write in MQL4?
    MQL4 will, for objective reasons, will never be able to compete with C++ in performance, whereas the program operating speed is a very important factor for neural networks. However, there is a more important thing - debugging means available in С++. This accelerates coding of complicated programs.

    What do you input in a neural network: indicator readings or a certain set of prices on a certain interval/timeframe?
    Readings of indicators developed especially for this trading system. I won't give more details now. The only thing I can say is that they combine some moving averages.

    You informed above that your EA consisted of three subsystems. Is it an implementation of the so-called "committee of neural networks"?
    No, it is not a "committee". These are three independent subsystems. No one of them "sees" what other subsystems are doing. Committee of neural networks can be a possible development of my EA in future.

    After having optimized my trading system's Strategy Tester, I obtained a parameter space where the system produced good results. And, in order not to put all my eggs in one basket, I took from this space three sets of parameters to be optimized. I allocated 1/3 of the deposit for each subsystem at the very beginning. So each subsystem defines the volume of trades according to "its" balance.

    Although the subsystems correlate strongly, I managed to achieve some diversification. Well, in a case one of the subsystems starts to lose its deposit for some reasons, two others can get the account out of losses.

    Your EA opens positions with preset levels of Stop Loss and Take Profit, but the most of them are closed "by market". What is the reason for this: Does the position holding time run out or do the conditions of position opening "spoil"?
    No, it has no relation to the time at all. Positions are closed when the probability of opposite trend increases.

    Do you find this probability using moving averages?
    Yes, I do. A certain set of moving averages is processed by a neural network. Then the neural network gives a forecast.

    The position holding time average of your EA made a little more than 8 hours in October. Multiplying 144 orders by 8 hours and dividing the result by 24 hours (the duration of a day), we can see that your Expert Advisor had been "in the market" for 48 days in October. However, there were only 23 trade days in October. So it is no wonder that your EA was "in the market" practically all the time. Was it your purpose or is it a random side effect of optimization?
    Well, it would be just too boring for me to observe my EA that is out of the market most of the time. It's a joke, of course. However, it was not my purpose, it happed so.

    Do you visit other Participants' reports? Do statistical data on Participants' pages help you in any way?
    Of course, I visit them and look through with much interest. The reports are very informative. The first thing I look at is the balance curve. It can provide you with 80% of information you need. Then I read the data - maximal drawdown, Profit Factor, etc.

    In the Participants table, I would add the total volume, direction and currency of the current trades for each Participant to make it more illustrative.

    Olexandr, who of your competitors could pretend to take Top Three places, in your opinion?
    Locations of the most Participants change so rapidly in the table that I find difficulty in naming real candidates.

    Let's imagine that you have won. How would you dispose your prize money, if it is not a secret?
    There is no secret at all: I never estimate expenditures before I gain income.

    Thank you very much for your interview, Olexandr. We wish you much success in automated trading.
     
  6. better ea 采用了三个子系统,据better本人讲都是基于均线实现的,三个子系统将10000$比赛资金均分成三份,独立管理自己的资金,分别对应保守、稳重、激进三种交易风格。
    三个子系统magic number分为别 854、855、856,其中854和855盈利都在1700-2000点之间,856盈利为负。
     
  7. 虽然比赛已经结束,仍可通过MetaQuotes-Demo服务器
    用户:500008 密码:MetaTrader登陆当时better的帐户观看当时的交易情况,复盘例图如下:

    通过观看以下截图可以发现,很多单出入场点非常精准,有如神助:
    [​IMG]
     
    Last edited by a moderator: Nov 6, 2009
  8. :cool:
    [​IMG]
     
    Last edited by a moderator: Nov 6, 2009
  9. :eek:
    [​IMG]
     
    Last edited by a moderator: Nov 6, 2009
  10. 2007年ATC大陆、台湾、香港都有多名先行者参加,但都铩羽而归,期待今年的ATC2008中国人有不俗的表现。
     
  11. better 'ea的几个要素:
    1、EURUSD 1分钟图交易
    2、采用PNN网络
    3、三个子系统
    4、固定止损60点止赢70-80点
    5、日内交易,日平均交易2-3单
    6、buy sell严格的序列
    7、止损止赢单一般不连续交易,其他单非空即多
     
  12. Blot:I agree except you don't know how the 3 NN are configured. From my experience i have had good results from NN but the money man is just as important. NN only give a slight edge and its how you exploit that edge to make a system. In fact 3 NN's suggest he is using majority voting. The 1st NN is configure to look for buy signals. 2nd to sell and the 3rd NN is do nothing! Then you take an EA controlling 5 separate trades. The ist lot is fire off as a taster. The more the market goes to the direction you think the more you add to the trades. As the other NN's begin to suggest a Do Nothing or go short from long the position is unwound. The mistake of a newby system is to use one NN and either go long or short with your entire lots allocated.

    However, NN is a hill climbing system. Its NOT predictive it waits till something happens before it can signal something. Genetic Programming is much better at looking for the global search area. In these case its better to use a classification model of majority voting against probabilities of an event occurring.

    Regarding the inputs for an NN then use GA to select the inputs and check the outputs. This enables thousands of imputs dials to be tested rapidly compared to the output which is basically how the backtester works. Again in my experience oscillators work best and of the standard range CCI wins hands down showing the best "predictive" quality.
     
  13. 感谢orator,提供如此详细的成功范例,好帖,一定要顶。
     
  14. 纵轴显示的是点么?

    换算成美元是多少
     
  15. 谢谢提供这些信息,很有意思。从他的interview中看到几点:

    better之前的系统是scalping EAs,但后来放弃了,因为:“the results of scalping EAs may be as different as day and night in Tester, on a demo account or in real trading, as well as they are different for different brokers. So such strategies are unfit for a long-term and stable trading forex.”

    基本上所有的工作都在C++的平台上搞定的,然后再写成MT4,便于执行。C++的平台拥有很多优越性,而其中速度倒不是主要的,而是其他的方面,比如debug、分析等等。

    神经网络的输入是indicators developed especially for this trading system(结合了一些均线)。“A certain set of moving averages is processed by a neural network. Then the neural network gives a forecast.”

    “After having optimized my trading system's Strategy Tester, I obtained a parameter space where the system produced good results. And, in order not to put all my eggs in one basket, I took from this space three sets of parameters to be optimized. I allocated 1/3 of the deposit for each subsystem at the very beginning. So each subsystem defines the volume of trades according to "its" balance. ”--在参数空间里选了三组进行优化,然后产生出三个子系统进行交易。
    三个子系统有点关系:“in a case one of the subsystems starts to lose its deposit for some reasons, two others can get the account out of losses. ”

    如何评价别人的结果:“The first thing I look at is the balance curve. It can provide you with 80% of information you need. Then I read the data - maximal drawdown, Profit Factor, etc.”
     
  16. 有趣的事情:)

    不过看到"C++的平台拥有很多优越性,而其中速度倒不是主要的,而是其他的方面,比如debug、分析等等。"我倒是觉得刚刚相反

    等抽出来空还真得搞一搞
     
  17. 感谢楼主,顶
     
  18. Last edited by a moderator: May 7, 2008
  19. 哦,对不起!
    你干嘛不发在这里呢?
     
  20. 我觉得你写得不错,就粘过来了.
    请以后在这里多多指导.
    再次对你的侵权表示抱歉!