Règles de structure. Apprendre à structurer des programmes, explorer les possibilités, les erreurs, les solutions, etc. - page 6
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
ZS. C'est un peu petit, alors pourquoi ne pas en faire un plus global ?
Eh bien, tady pique (en termes généraux), comment comblez-vous ces lacunes dans les quatre premiers. Est-ce que tout est dans les DLL ? :)
Pas de DLL, pur MCL + winepi pour la gestion des événements .
À ce sujet, nous devons trouver le temps de tout décrire magnifiquement et de faire un excellent article. Je peux lancer soit un exemple, soit une implémentation de pseudo-classes visuelles pour MT4, mais je crains que ce ne soit difficile à digérer sans une description détaillée. L'essence de la création d'un DOM (Data Object Module) pour MT par analogie avec JS - ils sont vraiment similaires de toute façon. Pour les graines - la fonction principale du cœur pour ainsi dire :
Vous avez une offre spécifique ?
Il y a, et la tâche est vivante, mais j'ai peur de le prononcer ici, je peux le faire à titre personnel.
De nos jours, aucun programmeur normal ne dessine de diagrammes de flux. Tout cela n'est qu'un non-sens théorique conçu pour être enseigné aux écoliers, mais pas pour fonctionner dans des projets réels.
Pas de DLL, pure MCL + Vinapi pour le traitement des événements.
A ce propos, il faut que je trouve le temps de tout décrire joliment et de faire un grand article. Je peux proposer un exemple ou une mise en œuvre de pseudoclasses visuelles pour MT4, mais j'ai peur que ce soit difficile à digérer sans description détaillée. L'essentiel est de créer un DOM (Data Object Module) pour MT par analogie avec JS - ils sont vraiment similaires. Pour une amorce - la fonction principale du cœur pour ainsi dire :
(Oui, avec une balançoire. ))
DOM - c'est beaucoup. Donnez-moi au moins quelques captures d'écran... Ou (si disponible) un exemple compilé autonome, pour le sentir dans le terminal. Vous en avez un ?
(Rires...) Avec un bang. ))
DOM - c'est beaucoup. Donnez-moi au moins quelques captures d'écran... Ou (si disponible) un exemple compilé autonome, pour le sentir dans le terminal. Vous en avez un ?
On tente le coup ?
Rien.
1. Le panneau est juste à la fin. La stratégie est primaire, si elle ne fonctionne pas, le panneau est inutile et ne sert à rien.
2. La mise en œuvre de la partie trading dépend de la stratégie, il n'y a donc rien à discuter dans le cadre de l'assaut d'une stratégie hypothétique. La mise en œuvre de la stratégie, curieusement, dépend aussi de la stratégie :)
3. Effectuez immédiatement un déclenchement pour désactiver la stratégie comptabilisée dans le bloc de négociation. Et désactiver le placement de nouvelles commandes.
4. Panel. Ce qu'est un panel, c'est une routine.
Pour ce qui est de la rédaction du TS, cela se passe comme suit :
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Discussion sur le trading haute fréquence sur MT5
hrenfx, 2013.02.06 14:30
Простой и довольно эффективной логикой написания боевого робота является следующая схема:
- робот делится на две части: тестер и синхронизатор.
- тестер на основании ранней истории и только что пришедшей выдает текущее состоянии торговой стратегии.
- синхронизатор "переносит" текущие тестерные открытые позиции и приказы на реал.
Это чем-то напиминает копирование торговых сигналов с одного счета на другой. Только вместо примитивного копировщика работает грамотный синхронизатор.
К сожалению, правильную логику синхронизатора посмотреть где-либо практически невозможно, поэтому озадачевшемуся придется подумать самому - очень полезно.
Но и такая логика построения боевого-робота далеко не совершенна, т.к. встает дилема первичности курицы и яйца. Поэтому применяются более сложные свои схемы, основанные на опыте автора-алготрейдера.
Все эти действия совершаются только ради одного - адекватной настройки стратегии. Какой бы совершенной не была схема, все равно одинаковые боевые роботы на разных счетах одного и того же ECN/STP брокера покажут расхождения. И помимо поиска рыночных закономерностей, важной задачей для алготрейдера также является уменьшение этих расхождений. Как уже говорилось выше, чем ближе брокер к возможстям HFT, тем меньше расхождения.
Если вникнуть в написанное, должно прийти понимание, что результаты работы стратегии на реале являются также своего рода тестером. И выводы на основании этой торговли также должны быть вероятностными.
Rien.
1. Le panneau va droit à la queue. La stratégie est primaire, si elle n'avance pas, le panneau est inutile et ne sert à rien.
2. La mise en œuvre de la partie trading dépend de la stratégie, il n'y a donc rien à discuter dans le cadre d'une hypothétique stratégie d'assaut. La mise en œuvre de la stratégie dépend curieusement aussi de la stratégie :)
3. Effectuez immédiatement un déclenchement pour désactiver la stratégie comptabilisée dans le bloc de négociation. Et désactiver le placement de nouvelles commandes.
4. Panel. Quel panel - une routine.
Eh bien, ici nous avons quelque chose à débattre en même temps. :))
Pas pour polémiquer, disons, mais pour signaler les possibilités :
1. La stratégie est primordiale, s'il ne s'agit pas d'une attaque, le panneau est inutile.
Pour l'instant, je suis d'accord, mais avec une réserve : le programme devrait être immédiatement orienté pour fonctionner en deux modes, donc la partie stratégie / trading devrait être prescrite en une seule fois, en tenant compte de la présence / absence de contrôle depuis le panneau et avec / sans affichage des informations sur le panneau.
Toute la partie trading est écrite dans une classe (CMarketDriver), qui implémente complètement le placement des ordres, le suivi des positions, les requêtes et autres choses liées au trading. Pour tous les symboles à la fois. La partie stratégie reçoit simplement les positions de marché recommandées pour les symboles : c'est-à-dire qu'elle remplit le tableau de structures du format {string Instrument ; double Position} et demande la synchronisation avec le serveur : MD.Synchronize(PositionArray). C'est tout. Pour l'instant, il ne traite qu'avec des ordres au marché, mais une version permettant de traiter avec des limites fixées à l'intérieur du spread (pour réduire les coûts de transaction) est en cours de développement. Pour le commerce takeprofits / stops ne pas utiliser, mais MarketDriver peut mettre des arrêts de protection en cas de longue perte de connexion au serveur (paramètres d'arrêt sont spécifiés une fois dans les paramètres du pilote). Soit dit en passant, très réussie, presque aucun problème solution structurée. Pour le test des idées stratégiques dans le testeur - aucun problème avec le commerce, toute l'attention peut être consacrée à la stratégie - tout le commerce a longtemps été débogué et encapsulé dans le pilote de négociation.
2............., il n'y a donc rien à discuter dans le cadre d'un assaut stratégique hypothétique. La mise en œuvre de la stratégie, curieusement, dépend aussi de la stratégie :)
Dans ce cas, le problème est de restructurer le programme de sorte que lors de son développement (par exemple, en ajoutant un troisième essuie-glace), je ne doive pas modifier la majeure partie du code. Ensuite, le programme pourra évoluer vers le multi-devises (pour la simplicité du projet, supposons que les échanges par symboles soient strictement indépendants et que les interrelations ne soient pas considérées). Comment organiser la partie stratégique, en anticipant une telle évolution ?
3. Définissez immédiatement le déclencheur pour désactiver la stratégie prise en compte dans le bloc de négociation. Et désactiver le passage de nouvelles commandes.
Mais nous n'avons pas à le faire. Après tout, nous ne nous attendons pas à beaucoup de problèmes ici.
4. Panel. Eh bien, le panneau est une corvée.
Mais l'organisation de la connexion événementielle de la stratégie avec le panneau est une tâche assez créative, surtout si nous essayons de développer un modèle plus ou moins universel pour un tel panneau qui peut être facilement adapté à différents Expert Advisors et facilement développé au fur et à mesure que le projet grandit/développe.
Tu n'as pas à le faire, ça ne dépend presque jamais de moi.
Avec moi, ça dépend presque toujours. Surtout lorsqu'on travaille avec ECN. Je veux dire que tout ne se fait pas au niveau le plus bas bien sûr, mais juste à travers les coquilles des fonctions commerciales standard.
Avec moi, ça dépend presque toujours. Surtout lorsqu'on travaille avec ECN. Je veux dire que tout ne se fait pas au niveau le plus bas bien sûr, mais juste à travers les coquilles des fonctions commerciales standard.
Je ne sais pas comment ma relation avec l'ECN va évoluer (je vais ouvrir un compte avec RoboForex), mais je vais faire de mon mieux pour conserver ce découplage structurel (stratégie/conducteur de marché). C'est tellement pratique que je suis même prêt à supporter des coûts de trading modérés (comme le manque à gagner).
Voyez comme le cycle principal de l'EA semble simple à la fin :
Essayez la version d'essai simplifiée et voyez si le système vous plaît. Si oui, adaptez-le à vos besoins et utilisez-le à votre avantage.