Structure rules. Learning how to structure programmes, exploring possibilities, errors, solutions, etc. - page 6
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
ZS. It's a bit small, so why don't we do a more global one?
Well, tady prick (in general terms) how do you plug these gaps in the top four. Is everything in DLLs? :)
No DLL, pure MCL + winepi for event handling .
Regarding this, we need to find time to describe everything beautifully and make a great article. I can throw either an example or an implementation of visual pseudo-classes for MT4, but I'm afraid it will be hard to digest without a detailed description. The essence of creating a DOM (Data Object Module) for MT by analogy with JS - they are really similar anyway. For seed - the main function of the heart so to speak:
Have a specific offer?
There is, and the task is alive, but I'm afraid to pronounce it here, I can in a personal.
Nowadays, no normal programmer draws flowcharts. This is all theoretical nonsense designed to be taught to schoolchildren, but not to work in real projects.
No DLL, pure MCL + Vinapi for event processing.
Regarding this, I need to find time to describe everything nicely and make a big article. I can throw either example or implementation of visual pseudoclasses for MT4, but I'm afraid it will be hard to digest without detailed description. The essence is to create DOM (Data Object Module) for MT by analogy with JS - they are really similar. For a primer - the main function of the heart so to speak:
(Yes, with a swing. ))
DOM - that's a lot. Give me a couple of screenshots at least... Or (if available) some standalone compiled example, to feel it in the terminal. Got one?
(Laughs...) With a bang. ))
DOM - that's a lot. Give me a couple of screenshots at least... Or (if available) some standalone compiled example, to feel it in the terminal. Got one?
Shall we take a crack at it?
Nothing.
1. The panel is right at the tail end. the strategy is primary, if it doesn't work, the panel is pointless and useless.
2. The implementation of the trading part depends on the strategy, so there is nothing to discuss in the framework of storming a hypothetical strategy. The implementation of the strategy, oddly enough, also depends on the strategy :)
3. Immediately make a trigger to disable the strategy accounted for in the trading block. And disable the placing of new orders.
4. Panel. What a panel is - a routine.
As for the writing of the TS, it goes something like this:
Forum on trading, automated trading systems and trading strategy testing
Discussion of High Frequency Trading on MT5
hrenfx, 2013.02.06 14:30
Простой и довольно эффективной логикой написания боевого робота является следующая схема:
- робот делится на две части: тестер и синхронизатор.
- тестер на основании ранней истории и только что пришедшей выдает текущее состоянии торговой стратегии.
- синхронизатор "переносит" текущие тестерные открытые позиции и приказы на реал.
Это чем-то напиминает копирование торговых сигналов с одного счета на другой. Только вместо примитивного копировщика работает грамотный синхронизатор.
К сожалению, правильную логику синхронизатора посмотреть где-либо практически невозможно, поэтому озадачевшемуся придется подумать самому - очень полезно.
Но и такая логика построения боевого-робота далеко не совершенна, т.к. встает дилема первичности курицы и яйца. Поэтому применяются более сложные свои схемы, основанные на опыте автора-алготрейдера.
Все эти действия совершаются только ради одного - адекватной настройки стратегии. Какой бы совершенной не была схема, все равно одинаковые боевые роботы на разных счетах одного и того же ECN/STP брокера покажут расхождения. И помимо поиска рыночных закономерностей, важной задачей для алготрейдера также является уменьшение этих расхождений. Как уже говорилось выше, чем ближе брокер к возможстям HFT, тем меньше расхождения.
Если вникнуть в написанное, должно прийти понимание, что результаты работы стратегии на реале являются также своего рода тестером. И выводы на основании этой торговли также должны быть вероятностными.
Nothing.
1. The panel is straight to the tail. the strategy is primary, if it doesn't plough on, the panel is pointless and useless.
2. The implementation of the trading part depends on the strategy, so there is nothing to discuss in the framework of a hypothetical strategy assault. The implementation of strategy oddly enough depends on strategy too :)
3. Immediately make a trigger to disable the strategy accounted for in the trading block. And disable the placing of new orders.
4. Panel. What a panel - a routine.
Well, here we have something to argue about at once. :))
Not to argue, let's say, but to point out the possibilities:
1. Panel straight to the tail. strategy is primary, if it won't plough on, the panel is pointless and useless.
For now, I agree, but with a caveat: the program should be immediately oriented to work in two modes, so the strategy / trading part should be prescribed at once, taking into account the presence / absence of control from the panel and with / without display of information on the panel.
It doesn't depend on my strategy. The whole trading part is written in a class (CMarketDriver), which completely implements order placement, position tracking, requotes and other stuff related to trading. For all the symbols at once. The strategy part just receives recommended market positions for symbols: i.e. it fills in the array of structures of the format {string Instrument; double Position} and requests synchronization with the server: MD.Synchronize(PositionArray). That's all. For now it only trades with market orders but a version that trades with limits set inside spread (to reduce trade costs) is on the way. For trading takeprofits/stops do not use, but MarketDriver can put protective stops in case of long loss of connection to server (stop parameters are specified once in driver settings). By the way, very successful, almost no problems structured solution. For testing of strategic ideas in the tester - no problems with trading, all attention can be devoted to strategy - all trading has long been debugged and encapsulated in the trading driver.
2............., so there's nothing to discuss within the framework of a hypothetical strategy assault. The implementation of the strategy oddly enough depends on the strategy too :)
For example, I have a fresh idea - trade on intersection of a pair of wipers. In this case, the problem is to restructure the program so that when developing it (e.g. adding a third wiper), I will not have to change most of the code. Then the program may be developed towards multicurrency (for simplicity of the project, let us suppose that trading by symbols is strictly independent and interrelationships are not considered). How to organize the strategic part, anticipating such development?
3. Immediately set the trigger to disable the strategy taken into account in the trading block. And disable new order placing.
But we don't have to. After all, we do not expect much trouble here.
4. Panel. Well, the panel is a chore.
But the organization of the strategy's event-driven connection with the panel is quite a creative task, especially if we try to develop a more or less universal template for such a panel that can be easily adapted to different Expert Advisors and easily developed as the project grows/develops.
You don't have to, it almost never depends on me.
With me it almost always depends. Especially when working with ECN. I mean, everything is not done at the lowest level of course, but just through the shells of the standard trading functions.
With me it almost always depends. Especially when working with ECN. I mean, everything is not done at the lowest level of course, but just through the shells of the standard trading functions.
Well, that's a bad kind of thing. I don't know how my relationship with ECN will turn out there (I'm going to open an account with RoboForex), but I will try my best to keep this structural decoupling (strategy/market driver). It is so convenient, that I am even ready for some moderate trading costs (like lost profit).
See how simple the main cycle of the EA looks in the end:
Check out the simplified tester version and see if you like the scheme. If so, fine-tune it to your needs and use it to your advantage.