Entwickler! Testen Sie überhaupt, was Sie schaffen? - Seite 7

 

Guten Tag!

С-4

Stock# ist für das neue Cgate Plaza II-Gateway nicht kostenlos.

Die Cgate-API wird von der Börse kostenlos zur Verfügung gestellt. Schreiben Sie Ihr eigenes Terminal (natürlich wird es nicht so schön wie MQ sein),

ist nicht schwer, es ist schwierig, Cgate API zu übersetzen API-Benutzer, der in der Lage, in jeder Sprache ihre eigenen Expert Advisor - DLL zu schreiben sein wird.

Meine Idee ist im Wesentlichen die folgende:

BASE --> PLAZAII(Cgate API) --> Simple Terminal --> DLL Benutzerberater.

In der Abbildung erhalte ich einen Testkurs von der Börse über das Plaza II-Protokoll


Das Terminal ist fast fertig (ich habe es in 3 Tagen geschrieben)!

In der Sprache (in einem DLL-Advisor) können Sie beliebige "Gadgets" erstellen (Tassen, Schaltflächen, zusätzliche Grafiken usw.),

werden Sie nur durch die Entwicklungsumgebung eingeschränkt.

Dieses Konzept hat jedoch einen großen Nachteil - die Komplexität des Testens des EA (vorerst nur durch Protokolle).

Aber die unbestreitbaren Vorteile - die "direkte" Verbindung zum Austausch, und jede Programmiersprache.

P.S Client-Server-Konzept (wie generell jeder elektronische Handel) basiert NUR auf dem Ereignismodell: ANFRAGE-Antwort - das ist die BASIS!

Sie können alles erfinden, was Sie wollen (verschiedene Prüfungen usw.), aber wenn es nicht richtig funktioniert, wird es am Ende immer noch

Dies führt unweigerlich zu einem Fehler im Expert Advisor.


 
Mikalas:

...

Dieses Konzept hat jedoch einen großen Nachteil - die Schwierigkeit, den EA zu testen (vorerst nur anhand von Protokollen).

...

Der große Vorteil des MT5-Konzepts ist die Kommunikation im Forum mit den klugen Köpfen. Wenn es nichts kostet, dann ...

 
Mikalas:

Das Terminal ist fast fertig (3 Tage lang wurde daran geschrieben)!

Beeindruckend für drei Tage!

Die einzige Frage ist: Wenn alles so gut ist, warum benutzen Sie dann noch MT5?

DC2008:

Es gibt ein sehr großes Plus im Konzept von MT5 - die Kommunikation im Forum mit klugen Leuten. Wenn es nichts kostet, dann .

Ja, das ist sicher. Heutzutage können solche Produkte ohne ihr Ökosystem einfach nicht mehr überleben. Ein Forum, Kommunikation, Tausende von Nutzern, Aktivisten wie du und ich, die bereit sind zu posten, zu diskutieren, zu bloggen... Ohne die Unterstützung der Nutzer wird jedes Projekt, egal wie es aussieht, früher oder später ins Stocken geraten, und alle Anstrengungen, es zu entwickeln, sind umsonst.
 

С-4!

Das Terminal - dient NUR dazu, etwas anzuzeigen!

Ich habe schon einmal geschrieben, dass das gar nicht so schwierig ist. Der schwierigste Teil ist die Umwandlung der Cgate-API in eine Benutzer-API,

Ich habe 1/200 (nicht den schwersten) Teil dessen erledigt, was zu tun ist.

Cgate Plaza II ist ein asynchroner Streaming-Client-Server, und die Streams können

mehr als eine Art von Information enthalten!

Leider habe ich nicht das Niveau, um diese Umwandlung ganz schnell durchzuführen....

Es gibt nur 2 (kostenpflichtige) Produkte auf dem Markt, die über Cgate funktionieren, und ich bin nicht

Ich bin mir nicht sicher, ob es der richtige ist.

Bis ich CGate Trader schreibe, ist es bei FORTS also MT5.

 

Übrigens bin ich auf einen interessanten Artikel über MetaTrader 5 Trading Events von MetaQuotes Software Corp. vom 24. Januar 2011 gestoßen. Darin heißt es unter anderem:

Сообщения о торговых событиях и об изменениях в торговой истории поступают по независимым каналам. При отправке запроса на покупку функцией OrderSend() можно сразу же узнать тикет ордера, который был создан при успешном результате проверки запроса. Но в то же время сам ордер еще может не появиться в клиентском терминале и попытка выбрать его с помощью функции OrderSelect() окажется неуспешной. 

Auch:

Alle Operationen auf dem Handelsserver und das Versenden von Nachrichten über Handelsereignisse werden asynchron durchgeführt. Es gibt nur einen sicheren Weg, um herauszufinden, was genau sich auf einem Handelskonto geändert hat. Auf diese Weise wird der Stand des Handels und der Handelsgeschichte gespeichert und der neue Stand mit dem gespeicherten verglichen.

Im Folgenden finden Sie Beispiele für die korrekte Einrichtung eines Auftrags- und Handelsschalters.

Wenn Sie sich das Problem des Autors genau ansehen, wird sich herausstellen, dass es kein Problem gibt. Sie müssen nur die moralische Stärke finden, die Funktion OnTradeTransaction() abzulehnen und alle Änderungen in OnTimer() mit hochauflösender Aktualisierung abzufangen.

In wenigen Minuten habe ich mein Beispiel für eine Arbeit mit geänderter Geschichte verfasst.

///
/// Следит за поступлением новых трейдов и ордеров.
///
void OnTimer()
{
     datetime tBegin = TimeCurrent();
     HistorySelect(dataBegin, TimeCurrent());
     //Если новые трейды не поступили, то и нечего обрабатывать.
     if(HistoryDealsTotal() == 0)return;
     AddDeals();
     dataBegin = tBegin;
}
Dieses Beispiel birgt eine versteckte Falle und kann so nicht verwendet werden, aber ich denke, das Konzept ist klar. Jedes Mal laden wir einen Teil der Geschichte vom letzten verarbeiteten Handel bis zum aktuellen Zeitpunkt. Wenn ein neuer Handel eintrifft, verarbeiten wir ihn und verschieben den Beginn des Ladens der Geschichte auf den Zeitpunkt der Ankunft des Handels.
 
C-4:

Übrigens bin ich auf einen interessanten Artikel über MetaTrader 5 Trading Events von MetaQuotes Software Corp. vom 24. Januar 2011 gestoßen. Darin heißt es unter anderem:

Aha,

Rosh:

Darüber hinaus gibt es Artikel zu diesem Thema:

 

Und ich empfehle dem Autor, den Artikel How to create a trading robot zu lesen und keine Zeit zu verschwenden. Es passt genau:

Программисты часто выбирают четвертый путь – они сразу начинают писать торгового робота и не хотят особенно тратить время на ручную торговлю. Зачем? Ведь можно сразу написать автомат, потратив на это несколько месяцев, и затем только пожинать плоды своего труда.

Aber "man kann den Fisch nicht ohne Arbeit aus dem Teich holen", und der Programmierer fängt oft an, die gesamte notwendige Infrastruktur von Grund auf neu zu schreiben - das Abrufen und Verarbeiten von Preisdaten, die visuelle Darstellung von Charts und Indikatoren, benutzerdefinierte Tools zum Testen der Strategie anhand der Historie und so weiter - anstelle des Handelsroboters.

Bei dieser Arbeit sammelt er eine Menge nützlicher Erfahrungen. Aber gleichzeitig ist er oder sie in den meisten Fällen dem endgültigen Ziel - der Schaffung eines automatisierten Handelssystems - kein Stück näher gekommen. Und selbst wenn er oder sie den ganzen Weg bis zum Ende geht, wo ist die Garantie, dass der geschriebene Roboter profitabel sein wird? Und was, wenn er oder sie ein weiteres Handelssystem schreiben möchte? Sie müssen alles neu aufbauen und mit den neuen unvermeidlichen Programmierfehlern umgehen.

 

Wassili!

Ich verstehe natürlich Ihre Vorliebe für den MT-5, aber nehmen Sie mich beim Wort.

Es hat keinen Sinn, in der Geschichte zu wühlen, denn auch dort könnten falsche Daten stehen!

Bitte verstehen Sie eine einfache Sache - Client-Server = Anfrage-Antwort!

Sehen Sie, der Auftrag wurde hochgestuft und die Antwort kommt, dass er teilweise ausgeführt wurde,

Was wird Ihrer Meinung nach in der Geschichte passieren?

 

Roch!

Auch Sie drängen mir auf, was ich schon fünfmal gelesen habe.

Ich spreche nicht darüber, wie man einen Roboter baut (oder wie man einen schreibt), sondern über

Ich spreche nicht darüber, wie man einen Roboter baut (oder wie man ihn schreibt), sondern über bestimmte Fehler in MT-5!

Sie machen sich nicht einmal die Mühe, das Bild genau anzuschauen

Ich habe beigefügt (MESSAGE TIME)

 
Mikalas:

Sie machen sich nicht einmal die Mühe, das Bild, das ich beigefügt habe, genau anzuschauen.

Ich habe beigefügt.

Armer Kerl, ich wünschte, ich könnte dir helfen... du bist so angespannt, dass du schreist.


Sie können mir eine Textprotokolldatei anstelle von Bildschirmfotos zur Verfügung stellen.

+ einen Code, mit dem ich Ihren Fehler reproduzieren kann?