I will start this thread by first stating that if you are a beginner and have no high level programming experience you are better off reading other threads. I intend this thread to be for the very experienced programmers with some Artificial Intelligence background. I am attaching a screen of the latest trading activity from the 2007 MT Automated Trading Championship of the Better NN EA which is in first place currently and it is likely to win to win the contest. you can read about it at: News - Automated Trading Championship 2007 and here:
Participant Better - Automated Trading Championship 2007
From my past experience with Cyberia Trader and other NN EAs I have recognized that this EA is using a Probabilistic Neural network (PNN) that forecasts 3 moving averages few bars in advance and enters MA crossovers that have the highest probability rating. Being very selective, it has a high winrate % and a decent PF. You can easily see this pattern from analyzing the attached screen. Even the last trade in progress (a sell) has been initiated at the crossover of MAs.
I would like to form a team of good programmers to program the PNN initially in C++ as the author did then test it and finally convert it to mq4 code to enable it to run more effectively on MT4. I have the necessary knowledge of AI and have the documentation needed to proceed with programming by an experienced programming team. I have a library of very clever Money Management functions so this aspect is already covered. Knowledge of Kalman filters adaptation is a plus and for those who know AI they will understand why without asking. Please PM me if you are qualified and are willing to share your programming knowledge. I will then discuss detail with everyone picked as a team and we can get things done very effectively.
Please do not post in this thread unless you meet the qualifications. Basic questions of how, why what etc. will not be answered by me since my time is valuable and yours should be too. If I don't answer posts don't be offended, because I simply try to stay focused on this project. Looking forward working with a great team to complete this wonderful project together!
Disclaimer: There is no commercial interest nor there will be in selling, renting or distributing this EA to the general trading public.
I'd be interested to find out how you plan to train it.
There are so many MAs to pick from...... plus, how far into the future are you going to try to forecast?
I have EURUSD M1 backdata to 2001 if needed. My MT4 skills are good.... very concious of state persistance for power failures, unanticipated reboots, and disconnects.
One thing though..... how will you control all the TSD freeloaders getting something for nothing? Private development?
PS) I have an MT4 STP I am testing..... automation of an ECN through MT4 is also doable..... porting signals can be done pretty efficiently.
I think we had already discuss about NN and Better EA...
No need to open new thread for this..
If we want to make development for this, just continue the previous thread..
This thread is solely for the purpose of private development of this EA not for public sharing information about it. Development documentation will only be shared privately between myself and experienced programmers that decide to become a part of the development team. I hope this explains the difference between this thread and the other Better NN threads.
To answers your questions, the MAs are not a big issue. Kalman EMA envelopes will be very appropriate for this job as they are for most NN inputs. Training will be done dynamically. As the EA runs it will compute past error rates and lower them to an acceptable level. If you are interested in getting involved with some mql code please PM me with your info. I also have M1 data to 1999, however keep in mind that the NN will need ticks to be fed to it like in the regular market and not M1 OHLC data. This is why the need for initial NN written in C++ so we can feed it ticks. I will need tick data not M1 data. This follows the same development path that the Better NN author has followed. MT backtester does not feed intrabar M1 ticks unfortunately since it does not record them. This is one of the reasons for the discrepancies between backtest results and forward results for EAs that are tick sensitive. Good luck to you!
I truly encourage all experienced programmers to participate in the development of this EA. This is like buying a ticket to the big show. Participation will guarantee access to the final EA. There is no other way to get it and the experience of working on such an exiting project will be an experience like no other. I am truly looking forward working with some very talented programmers and contributing my part in the creation of this exciting EA.
three major approaches for pattern classification:
2.multi-layer perceptron (MLP) https://www.mql5.com/en/forum/178276 and
3.support vector machine (SVM)https://www.mql5.com/en/forum/178276
2.multi-layer perceptron (MLP):
3.support vector machine (SVM):
LIBSVM -- A Library for Support Vector Machines
libsvm for MT4:
Example for testing the svm dll:
//| PNN_v02.mq4 |
//| Copyright c 2007, MetaQuotes Software Corp. |
//| Forex Trading Software: Forex Trading Platform MetaTrader 4 |
#property copyright "Copyright c 2007, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
//open mode constants
#define READ 1
#define WRITE 2
#define READWRITE 3
//seek mode constants
#define FILE_BEGIN 0
#define FILE_CURRENT 1
#define FILE_END 2
int gFileOpen(string file_name,int mode);
bool gFileWrite(int handle,string data);
bool gFileClose(int handle);
string gFileRead(int handle,int length=0);
void gFileSeek(int handle,int offset, int mode);
bool gFileDelete(string file_name);
int gFileSize(int handle);
int SvmTrain(string, string);
int SvmPredict(string, string, string);
//| expert initialization function |
int file = gFileOpen("c:\mt4.log",WRITE); //open the file for read and write , create it if not exist
string write = "Open Price: " + Open + " - Close Price: " + Close;
gFileWrite(file,write); //write some date
gFileClose(file); //close the file
int xx=SvmTrain("c:\heart_scale", "c:\heart_scale.model");
//| expert deinitialization function |
//| expert start function |
Very cool - playtime