Machine learning in trading: theory, models, practice and algo-trading - page 1174

 
Maxim Dmitrievsky:

This is exactly what annoys me, the eternal integration, which takes more time than TC development. I would also like to do some python, but I don't have time yet

Alas, there is no solution to this problem:

1. Or write in a third-party language (platform) of the TS, but you get problems:

a) no historical data

b) no tester

c) There is no test on a demo account

-) there may be problems with the platform support, as an example - I googled Alglib, very little information on it on the web, all only on the developer site, there is no support

all this you need to fix it with .dll, integrations and other crutches

2. or write everything in MQL, you won't have any problems a.b.c.. You will either look for ready-made solutions and mathematical apparatus in Kodobase or write all logic (of the mathematical apparatus) from scratch with MQL capabilities.

If you write your code for yourself, this is the most practical solution. You can't use .dll for Market.

Many development and analysis systems allow you to create a .dll as an example - Matlab


SFT: MQL suits me by 90%, the only thing I have to do is to visualize the results almost from scratch, in Matlab the output is always at hand, one line of code and you have a ready chart, all variables are visible, you can change the variables... in one word, Matlab is a ready development environment for a matrix.

 
Igor Makanu:

I mean research in terms of MO, it is quite a specific process where the main work with matrices, in low-level languages to work with them is a nightmare. The rest can somehow be survived :)

 
Maxim Dmitrievsky:

all MO libraries have developed, since this one is just the libs on the pros.

It's not convenient and long to work with MO in low-level languages, especially research

I just don't have a choice question. And in general, it's all applied - my emphasis is on predictors and a bit of targeting, and more time is spent just developing new predictors from paper to code. So the first question I'm asking is was it a good idea to add new predictors or not!!! And if there will be a clearer answer to this question, then eventually we can look for other implementations/approaches of integration in the final code, but now I'm far away from it.

 
Igor Makanu:

alas, this problem has no solution:

1. or write in a third-party language(platform) of the TC, but you get problems:

a) no historical data

b) no tester

c) no test on a demo account

What is worth in a third-party language:

1. upload the history to CSV,

2. Make a tester (it is only and no more than a cycle),

3. on the demo account you can test, say, through file exchange with the terminal. If you do it through RAM-Disk, the performance is like exchanging through memory - Gigabytes per second.

If the system succeeds, which it won't the first time, it will save a lot of time on modeling. And later on how to get it into the terminal is a manageable matter.

 
Maxim Dmitrievsky:

I mean research in terms of MO, it's quite a specific process where the main work with matrices, in low-level languages to work with them is a nightmare. The rest can somehow be survived :)

I understand - I myself am in the same situation, that's why after studying the literature or the mathematical apparatus I first pull everything into Matlab, then I start experimenting and partially porting it into MQL. The same matrices and vectors in Matlab are initially linked to all variables, you don't need to describe or understand anything, you just go ahead: multiply a vector by a matrix or transpose it, it's hard to imagine what Matlab cannot do in terms of mathematical operations

SZY: With MO in MQL for a long time to sort out, Мatlab here and can help, but I remember when I installed it everything was clearly there and the network was drawn and the state of each network element could be viewed step by step, like NeuroSolutions , maybe later I will do it

 
Aleksey Vyazmikin:

I just don't have a choice question. And in general, it's all applied - my emphasis is on predictors and a bit of targeting, and more time is spent just developing new predictors from paper to code. So the first question I'm asking is was it a good idea to add new predictors or not!!! And there will be a clearer answer to that question, then eventually we can look for other implementations/approaches to integrate into the final code, and right now I'm far away from that.

Honestly, I don't know what kind of grail production tenology you have, since you only use machine learning to select predictors... and then what to do with them? )

 
I will correct my trading strategy: Yuriy Asaulenko:

What is worth in a third-party language:

1. upload the history to CSV,

2. Make a tester (it is only and no more than a cycle),

3. On the demo account, you can test, say, through file exchange with the terminal. If you do it through RAM-Disk, the performance is like exchanging through memory - Gigabytes per second.

If the system succeeds, which it won't the first time, it will save a lot of time on modeling. And how to use it afterwards in the terminal is a solvable question.

1. That's what I do in Matlab.

I tried to do it in Delphi long time ago, but luckily I didn't, I moved to MQL, I can see the drawdown and visualize how the EA was trading, I can add ready-made indicators as additional filters, I can add trailing, averaging... I can see everything in the tester, simulate it all in a third-party program.If you know what to do with it, it is much easier to study MQL from scratch in 3-4 months and learn to write EAs following a template, now I can check any graphical indicator in the tester in 15 minutes - I write my EA following a ready-made template in the form of procedure programming, i.e. I just connect ready functions

3. you can, but I have everything in MQL, what I don't have, I'll add or connect the .dll.


But again on the issue of modeling - we live in happy times, ready-made implementations are abundant on the Internet, the modeling environment and trading platform should be separated, so it turns out that one person has to be a developer and a programmer and a mathematician, and... And everything.

The fuse is either that or as 90% of "traders" in runet trade by primitive TS))

 
Maxim Dmitrievsky:

Honestly, I don't know what kind of grail production methodology you have, since you only use machine learning to select predictors... and then what do you do with them? )

I select predictors for the purpose of getting rid of erroneous ones that are noisy and contribute to overtraining...

At the same time I'm mining tree sheets for R, which also turn out to be pretty good predictors, and catbust eats them with pleasure.

Now I've got prolonged experiment on R tree root splitting, i.e. after building a new tree (using genetics - I don't know details, forDr. Trader script), I remove root predictor and build tree again - this process is not fast - on average it takes 3-4 days, so I'm already at 29 splitting, and what is interesting, even now new and interesting tree leaves, which work in positive profits in 2014-2018 (every year profits), and training goes to 2015-2017. This implies that the tree-building algorithms are still not that good at results, since they miss the obvious things when they have a surplus of good predictors, but when they start to starve, new solutions emerge. In general, based on this experience, I want to try feeding predictors in groups and see where the greatest sensitivity will be. Then I want to build different trees with different groups, make a collegial decision-making body of them and send to trade...

 
Aleksey Vyazmikin:

I select predictors in order to get rid of erroneous ones, which are noisy and contribute to overtraining...

At the same time I mine tree sheets on R, which also turn out to be good predictors and catbust eagerly eats them.

Now I've got prolonged experiment on R tree root splitting, i.e. after building a new tree (using genetics - I don't know details, forDr. Trader script), I remove root predictor and build tree again - this process is not fast - on average it takes 3-4 days, so I'm already at 29 splitting, and what is interesting, even now new and interesting tree leaves, which work in positive profits in 2014-2018 (every year profits), and training goes to 2015-2017. This implies that the tree-building algorithms are still not that good at results, since they miss the obvious things when they have a surplus of good predictors, but when they start to starve, new solutions emerge. In general, based on this experience, I want to try feeding predictors in groups and see where the greatest sensitivity will be. Then with different groups build different trees, make a collegiate decision-making body out of them and send them out to trade...

I don't really understand the splitting of the root of the tree... I wish I could show the schematic :) and how the leaves can work separately, the working structure is the tree as a whole...

i will think about it tomorrow, i'm sleepy :)

By the way, mql5 has standard classes ctree and cnode for building binary trees. If you know how to use them for datamining... but I don't know, but it seems that you have something like that

 
Maxim Dmitrievsky:

I don't really understand about splitting the root of the tree... I wish I could show the schematic :) and how the sheets can work separately, the working structure is the tree as a whole...

I'll think about it tomorrow, I'm sleepy :)

By the way, mql5 has standard classes ctree and cnode for building binary trees. If you know how to use them for datamining... but I don't know, but it seems that you have something like that

"Root of the tree", in my language, is the very first predictor that splits the tree into other branches - usually into two parts (but there are other options).

"Splitting the tree" is eliminating the root predictor from the sample before processing the data again.

Leaves are just a set of rules, which are implemented not often, but can give stable results unlike the whole tree. I.e. I'm for unhurried trading - if the algorithm does not understand the market situation, it's better to let it wait until the map is laid and it can make a decision.

I've handled more than 20000 leaves so far, as I look at what the genetics has discarded as well, good leaves for trading decisions are about 200 of them - the ones with profit every year and acceptable profitability (1.4 as a minimum I think), but there are also good filters, that give a signal "wait" - I didn't count them - I'm just developing a method to select them more clearly.

I have 3 classes, i.e. the tree has buy, sell and wait signal, it's now I'm experimenting with catbust and simplified the targets to be compressed into one class...

I don't know anything about ctree and cnode classes, as well as about OOP in general - I'm not very good at programming, so you can hardly understand class codes without a programmer...

Reason: