Strukturregeln. Lernen, wie man Programme strukturiert, Erforschung von Möglichkeiten, Fehlern, Lösungen usw. - Seite 6
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
ZS: Das ist ein bisschen klein, also warum machen wir nicht ein globaleres Projekt?
Nun, kleiner Trottel (allgemein gesagt), wie stopfen Sie diese Lücken in den Top 4? Ist alles in DLLs? :)
Keine DLL, reine MCL + winepi für die Ereignisbehandlung .
Diesbezüglich müssen wir Zeit finden, alles schön zu beschreiben und einen großartigen Artikel zu machen. Ich kann entweder ein Beispiel oder eine Implementierung von visuellen Pseudoklassen für MT4 werfen, aber ich fürchte, es wird ohne eine detaillierte Beschreibung schwer zu verdauen sein. Das Wesentliche beim Erstellen eines DOM (Data Object Module) für MT in Analogie zu JS - sie sind sowieso sehr ähnlich. Für Samen - sozusagen die Hauptfunktion des Herzens:
Haben Sie ein konkretes Angebot?
Es gibt, und die Aufgabe ist lebendig, aber ich habe Angst, es hier auszusprechen, ich kann in einem persönlichen.
Heutzutage zeichnet kein normaler Programmierer mehr Flussdiagramme. Das ist alles theoretischer Unsinn, der den Schülern beigebracht werden soll, aber nicht in realen Projekten funktioniert.
Keine DLL, reine MCL + winapi für die Ereignisverarbeitung.
Diesbezüglich muss ich Zeit finden, um alles schön zu beschreiben und einen großen Artikel zu verfassen. Ich kann entweder Beispiel oder Implementierung von visuellen Pseudoklassen für MT4 werfen, aber ich fürchte, es wird schwer zu verdauen sein, ohne detaillierte Beschreibung. Die Essenz ist, DOM (Data Object Module) für MT in Analogie zu JS zu erstellen - sie sind wirklich ähnlich. Für eine Fibel - sozusagen die Hauptfunktion des Herzens:
(Ja, mit einem Schwung. ))
DOM - das ist eine Menge. Gib mir wenigstens ein paar Screenshots... Oder (falls verfügbar) ein eigenständiges kompiliertes Beispiel, um es im Terminal zu testen. Haben Sie eine?
(Lacht...) Mit einem Knall. ))
DOM - das ist eine Menge. Gib mir wenigstens ein paar Screenshots... Oder (falls verfügbar) ein eigenständiges kompiliertes Beispiel, um es im Terminal zu testen. Haben Sie eine?
Sollen wir es mal versuchen?
Nichts.
1. Das Panel steht ganz am Ende. Die Strategie ist primär, wenn sie nicht funktioniert, ist das Panel sinnlos und nutzlos.
2. Die Umsetzung des Handelsteils hängt von der Strategie ab, so dass es im Rahmen des Sturms auf eine hypothetische Strategie nichts zu diskutieren gibt. Die Umsetzung der Strategie hängt merkwürdigerweise auch von der Strategie ab :)
3. Erzeugen Sie sofort einen Auslöser, um die Strategie, die im Handelsblock berücksichtigt wird, zu deaktivieren. Und deaktivieren Sie die Erteilung neuer Aufträge.
4. Gremium. Was ein Gremium ist - eine Routine.
Was das Schreiben des TS betrifft, so geht es ungefähr so:
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Diskussion über den Hochfrequenzhandel auf MT5
hrenfx, 2013.02.06 14:30
Простой и довольно эффективной логикой написания боевого робота является следующая схема:
- робот делится на две части: тестер и синхронизатор.
- тестер на основании ранней истории и только что пришедшей выдает текущее состоянии торговой стратегии.
- синхронизатор "переносит" текущие тестерные открытые позиции и приказы на реал.
Это чем-то напиминает копирование торговых сигналов с одного счета на другой. Только вместо примитивного копировщика работает грамотный синхронизатор.
К сожалению, правильную логику синхронизатора посмотреть где-либо практически невозможно, поэтому озадачевшемуся придется подумать самому - очень полезно.
Но и такая логика построения боевого-робота далеко не совершенна, т.к. встает дилема первичности курицы и яйца. Поэтому применяются более сложные свои схемы, основанные на опыте автора-алготрейдера.
Все эти действия совершаются только ради одного - адекватной настройки стратегии. Какой бы совершенной не была схема, все равно одинаковые боевые роботы на разных счетах одного и того же ECN/STP брокера покажут расхождения. И помимо поиска рыночных закономерностей, важной задачей для алготрейдера также является уменьшение этих расхождений. Как уже говорилось выше, чем ближе брокер к возможстям HFT, тем меньше расхождения.
Если вникнуть в написанное, должно прийти понимание, что результаты работы стратегии на реале являются также своего рода тестером. И выводы на основании этой торговли также должны быть вероятностными.
Nichts.
1. Das Panel geht direkt zum Heck. Die Strategie ist primär, wenn es nicht weitergeht, ist das Panel sinnlos und nutzlos.
2. Die Umsetzung des Handelsteils hängt von der Strategie ab, so dass es im Rahmen eines hypothetischen Strategieangriffs nichts zu diskutieren gibt. Die Umsetzung der Strategie hängt merkwürdigerweise auch von der Strategie ab :)
3. Erzeugen Sie sofort einen Auslöser, um die Strategie, die im Handelsblock berücksichtigt wird, zu deaktivieren. Und deaktivieren Sie die Erteilung neuer Aufträge.
4. Gremium. Was für ein Gremium - eine Routine.
Nun, hier haben wir gleich etwas, worüber wir streiten können. :))
Nicht um zu argumentieren, sondern um auf die Möglichkeiten hinzuweisen:
1. Die Strategie ist primär, wenn es nicht weitergeht, ist die Platte sinnlos und nutzlos.
So weit, ich stimme zu, aber mit einem Vorbehalt: das Programm sollte sofort orientiert werden, um in zwei Modi arbeiten, so dass die Strategie / Handel Teil sollte auf einmal vorgeschrieben werden, unter Berücksichtigung der Anwesenheit / Abwesenheit von Kontrolle aus dem Panel und mit / ohne Anzeige von Informationen auf dem Panel.
Der gesamte Handelsteil ist in einer Klasse (CMarketDriver) geschrieben, die die Ordereingabe, die Positionsverfolgung, die Requotes und andere mit dem Handel zusammenhängende Dinge vollständig implementiert. Für alle Symbole auf einmal. Der Teil der Strategie empfängt nur die empfohlenen Marktpositionen für die Symbole: d.h. er füllt das Array der Strukturen des Formats {string Instrument; double Position} aus und fordert die Synchronisierung mit dem Server an: MD.Synchronize(PositionArray). Das ist alles. Derzeit wird nur mit Marktaufträgen gehandelt, aber eine Version, die mit innerhalb der Spanne festgelegten Limits handelt (um die Handelskosten zu senken), ist in Vorbereitung. Für den Handel Takeprofits / Stops nicht verwenden, aber MarketDriver kann Schutzstopps im Falle einer langen Verlust der Verbindung zum Server (Stop-Parameter werden einmal in Treiber-Einstellungen angegeben). By the way, sehr erfolgreich, fast keine Probleme strukturierte Lösung. Für die Prüfung der strategischen Ideen in der Tester - keine Probleme mit dem Handel, kann die ganze Aufmerksamkeit auf die Strategie gewidmet werden - alle Handels hat lange debuggt und in den Handel Treiber gekapselt.
2............., so dass es im Rahmen eines hypothetischen Strategieangriffs nichts zu diskutieren gibt. Die Umsetzung der Strategie hängt merkwürdigerweise auch von der Strategie ab :)
In diesem Fall besteht das Problem darin, das Programm so umzustrukturieren, dass ich bei der Weiterentwicklung (z. B. Hinzufügen eines dritten Scheibenwischers) nicht den größten Teil des Codes ändern muss. Dann kann das Programm in Richtung Mehrwährung entwickelt werden (der Einfachheit halber nehmen wir an, dass der Handel mit Symbolen strikt unabhängig ist und Wechselbeziehungen nicht berücksichtigt werden). Wie ist der strategische Teil zu organisieren, der eine solche Entwicklung voraussetzt?
3. Setzen Sie sofort den Auslöser, um die im Handelsblock berücksichtigte Strategie zu deaktivieren. Und deaktivieren Sie die Aufgabe neuer Bestellungen.
Aber das müssen wir nicht, schließlich erwarten wir hier keine großen Schwierigkeiten.
4. Gremium. Nun, das Gremium ist eine lästige Pflicht.
Aber die Organisation der ereignisgesteuerten Verbindung der Strategie mit dem Panel ist eine ziemlich kreative Aufgabe, insbesondere wenn wir versuchen, eine mehr oder weniger universelle Vorlage für ein solches Panel zu entwickeln, die leicht an verschiedene Expert Advisors angepasst und leicht weiterentwickelt werden kann, wenn das Projekt wächst/entwickelt wird.
Das müssen Sie nicht, es hängt fast nie von mir ab.
Bei mir kommt es fast immer darauf an. Insbesondere bei der Arbeit mit ECN. Ich meine, es wird natürlich nicht alles auf der untersten Ebene gemacht, sondern nur durch die Hüllen der Standardhandelsfunktionen.
Bei mir kommt es fast immer darauf an. Insbesondere bei der Arbeit mit ECN. Ich meine, es wird natürlich nicht alles auf der untersten Ebene gemacht, sondern nur durch die Hüllen der Standardhandelsfunktionen.
Ich weiß nicht, wie sich meine Beziehung zu ECN dort entwickeln wird (ich werde ein Konto bei RoboForex eröffnen), aber ich werde mein Bestes tun, um diese strukturelle Entkopplung (Strategie/Markttreiber) beizubehalten. Es ist so bequem, dass ich sogar bereit bin, einige moderate Handelskosten (wie entgangenen Gewinn) in Kauf zu nehmen.
Sehen Sie, wie einfach der Hauptzyklus des EA am Ende aussieht:
Testen Sie die vereinfachte Testversion und sehen Sie, ob Ihnen das Schema gefällt. Wenn ja, passen Sie es an Ihre Bedürfnisse an und nutzen Sie es zu Ihrem Vorteil.