Wer Diagramme ohne fehlende Balken sehen wollte - hier =) - Seite 9

 
Ich habe den Grund herausgefunden, warum die Entwickler EAs verboten haben, auf Offline-Charts zu arbeiten.
Ich denke, es hat damit zu tun, dass bei Offline-Charts Bid und Ask 0 ergeben, d.h. für Expert Advisors, die auf dem Markt öffnen wollen, ist es unmöglich. Aber ich habe folgende Lösung für meinen EA gefunden, die nur mit schwebenden Aufträgen funktioniert: Ändern Sie Bid und Ask für _Bid() und _Ask() unter Verwendung der automatischen Ersetzung. _MarketInfo() gibt den Spread für das gehandelte Instrument zurück.

int _MarketInfo(string symb_for_work)
{
   if(symb_for_work=="USDCHFm") return(4);
   if(symb_for_work=="CHFJPYm") return(5);
   if(symb_for_work=="GBPUSDm") return(3);
   if(symb_for_work=="USDCADm") return(5);
   if(symb_for_work=="USDJPYm") return(3);
   if(symb_for_work=="EURGBPm") return(4);
   if(symb_for_work=="AUDUSDm") return(4);
   if(symb_for_work=="EURCHFm") return(4);
   if(symb_for_work=="EURJPYm") return(5);
   if(symb_for_work=="EURUSDm") return(2);
   if(symb_for_work=="NZDUSDm") return(6);
   if(symb_for_work=="AUDJPYm") return(6);   
 
return(0);
}
 
double _Bid()
{
   return(Close[0]);
}
 
double _Ask()
{
   return(Close[0]+_MarketInfo(symbol_for_trade)*Point);
}
Ich denke, die Idee ist klar. Nach den ersten Ergebnissen des überarbeiteten EA zu urteilen, öffnen sich die Aufträge normal. Jetzt ist Wochenende, also werde ich es im Detail testen, wenn der Handel nächste Woche beginnt. Ich denke, ich werde das erfüllen können, was ich ursprünglich wollte.
 
IMHO ist das Unsinn ...
Wenn die Entwickler sehen, dass "für Offline-Charts Bid und Ask 0 zurückgeben",
Was hindert sie daran, das Problem zu lösen?
 

Nun, Offline-Karten können zum Beispiel recht selten aktualisiert werden. Und während des Aktualisierungsintervalls, z. B. 1-2 Minuten, können die tatsächlichen Kauf- und Verkaufspreise ziemlich weit von dem abweichen, was im Offline-Chart angezeigt wird. Und RefreshRates() wird hier überhaupt nicht helfen. Nun, es muss noch andere Gründe als den bereits entdeckten gegeben haben. Aber das können nur die Entwickler beantworten.

 
solandr:

Nun, Offline-Karten können zum Beispiel recht selten aktualisiert werden. Und während des Aktualisierungsintervalls, z. B. 1-2 Minuten, können die tatsächlichen Kauf- und Verkaufspreise ziemlich weit von dem abweichen, was im Offline-Chart angezeigt wird. Und RefreshRates() wird hier überhaupt nicht helfen. Nun, es muss noch andere Gründe als den bereits entdeckten gegeben haben. Aber das können nur die Entwickler beantworten.

Richtig, wenn das Diagramm nicht aktualisiert wird, wird das Angebot veraltet sein.
Aber das gilt auch für Close[0]!

Sie können keine wissentlich falschen Kurse in einem Expert Advisor verwenden.
Verwenden Sie MarketInfo( MODE_BID ) und MarketInfo( MODE_ASK ), um einen neuen Preis zu erhalten)
 

Im Grunde bin ich mit Close[0] ganz zufrieden ;o)
Ich habe es nicht eilig. Ich verlangsame den Expert Advisor sogar absichtlich ;o) nach folgendem Prinzip:

1. Wenn der aktuelle Kurs mindestens 50 Pips vom Anbieter entfernt ist, kann der Anbieter die Anbieter-Order nur ändern, wenn es notwendig ist, sie um mindestens 10 Pips zu verschieben.
2. Wenn der aktuelle Kurs innerhalb des Bereichs von 25...50 Pips von der "Oder" liegt, darf der Expert Advisor die "Oder" nur dann verschieben, wenn es notwendig ist, sie um 5 Pips oder mehr zu verschieben.
3. Wenn der aktuelle Kurs näher als 25 Pips an der Order liegt, verschiebt der Expert Advisor die ausstehenden Orders um 2 Pips oder mehr.

Dieses Schema ermöglicht es uns, die Anzahl der ausstehenden Orderbewegungen mindestens um das Fünffache zu reduzieren, wenn nicht sogar mehr! :o) Im Durchschnitt sind es zwischen 0 (nachts) und 20 (während der Nachrichten) Züge pro Stunde, bei einer Gesamtmenge von etwa 60 ausstehenden Aufträgen (für 12 Währungen)! D.h. es gibt wahrscheinlich nicht mehr als 200 Züge pro Tag, und auch nicht jeden Tag. Im Allgemeinen bin ich der Meinung, dass man beim manuellen Handel sogar noch mehr Orders bewegen kann, wenn man genau eine bestimmte Strategie verfolgt und mit der gleichen Anzahl von Währungspaaren spielt! ;o)

 

komposter, noch einmal ein GROSSES DANKESCHÖN für die Entwicklung eines Expert Advisors, der die Tageskerzen vom Sonntag mit denen vom Montag zusammenführt!!!
Ich arbeite seit einem Monat mit Ihrem Skript an der Realität. Ich starte das Skript, um 19 Währungspaare (alle verfügbar bei InterbankFX) für jeweils 600 Intraday-Balken zu verarbeiten. Ich stelle die Aktualisierungszeit der Charts auf 1 Minute. Alles funktioniert reibungslos auf der CPU VIA C3 800 MHz!

Ich habe ein kleines Feature bemerkt, ich nehme an, dass dies ein Feature des Terminals ist, nicht des Expert Advisors, an dem ich persönlich nichts auszusetzen habe! Wenn ich in Metaeditor arbeite und versuche, einen EA zu kompilieren, der noch nicht einmal mit einem Chart verbunden ist, erzeugt das Terminal Fehler in seinen Protokollen. Gleichzeitig zeigt sich diese Tatsache stabil sowohl auf 800MHz Prozessor, als auch auf P4 3GHz und Celeron 2GHz. Build 198. Ich habe es nicht auf 200 ausprobiert, da es einige Probleme mit Updates auf InterbankFX gibt (Update-Anforderung erscheint, aber die Builds werden nicht heruntergeladen - aber das macht nichts).
******************************
2006.12.09 03:26:29 WithoutSunday_4: Ungültiges Handle -1 in FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: Ungültiges Handle -1 in FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_AUDNZDm1440. hst", FILE_BIN | FILE_WRITE ) - Fehler #4102
2006.12.09 03:26:29: FileOpen - zu viele geöffnete Dateien
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_NZDJPYm1440. hst", FILE_BIN | FILE_WRITE ) - Fehler #4102
2006.12.09 03:26:29: FileOpen - zu viele geöffnete Dateien
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_AUDCADm1440. hst", FILE_BIN | FILE_WRITE ) - Fehler #4102
2006.12.09 03:26:29: FileOpen - zu viele geöffnete Dateien
2006.12.09 03:26:29:29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_EURCADm1440. hst", FILE_BIN | FILE_WRITE ) - Fehler #4102
2006.12.09 03:26:29: FileOpen - zu viele geöffnete Dateien
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_EURAUDm1440. hst", FILE_BIN | FILE_WRITE ) - Fehler #4102
2006.12.09 03:26:29: FileOpen - zu viele geöffnete Dateien
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_GBPCHFm1440. hst", FILE_BIN | FILE_WRITE ) - Fehler #4102
2006.12.09 03:26:29: FileOpen - zu viele geöffnete Dateien
*****************************

Normalerweise starte ich nach dem Auftreten des Problems einfach das Terminal neu, und alles funktioniert rund um die Uhr normal weiter!
Ich schreibe dies nur zur Information und nicht, damit Sie versuchen, das Problem zu lösen. Ich denke, man kann nicht ohne die Hilfe der Entwickler auskommen.

Ich wende mich mit folgendem Anliegen an Sie. Der oben in diesem Zweig erwähnte Expert Advisor zur Berechnung von linearen und parabolischen Regressionen arbeitet auf der Grundlage der von diesem Skript generierten Kurse. Die Regressionsberechnungen basieren auf gemittelten Balkenparametern, d.h. ein Wert von (O+H+L+C)/4 wird als Referenzwert genommen. Aber nach meinen Langzeitbeobachtungen zu urteilen, ist dieses Modell der (O+H+L+C)/4 Ablesungen wohl nicht ganz erfolgreich. Ich platziere einen Stop für einen Auftrag, der an der Grenze des Konfidenzniveaus von 95% an der Grenze von 99,9% eröffnet wird. Es gab jedoch auch Fälle, in denen der Kurs die Grenze des 99,9 %-Konfidenzintervalls nur um wenige Punkte überschritt. Außerdem ist die Zahl dieser Fälle höher als der statistisch zulässige Wert! Deshalb wollte ich unbedingt meine Annahme überprüfen, dass, wenn wir das Modell von High und Close als Grundlage für die Berechnungen nehmen, diese Grenze statistisch genauer sein wird. Der Expert Advisor ist sehr umfangreich - 184kB in einer mq4-Datei. Es gibt viele Stellen, an denen auf Zitate verwiesen wird. Wenn ich den EA für ein neues Modell korrigiere, dann ist das nicht nur recht arbeitsintensiv, sondern es besteht auch eine hohe Wahrscheinlichkeit, dass ich Fehler in einen recht komplexen Berechnungsalgorithmus einführe, der meiner Meinung nach bereits gut getestet ist und zuverlässig funktioniert.

Deshalb möchte ich Sie bitten, die letzte Version des Skripts so zu verbessern, dass es die Kurse der H12-Periode aus den erhaltenen täglichen Candlesticks bildet.
Der Takt H12, der um 00:00 Uhr eröffnet wird, sollte die Werte O=H=L=C=Low des ersten Tagesbalkens haben.
Ein H12-Balken, der um 12:00 Uhr öffnet, sollte die Werte O=H=L=C=High des anfänglichen Tagesbalkens haben.
Außerdem sollte der Expert Advisor in der Lage sein, die Werte zu vertauschen, d. h. H12-Balken um 00:00 Uhr = Hoch des ursprünglichen Tagesbalkens, H12-Balken um 12:00 Uhr = Tief des ursprünglichen Tagesbalkens.
Bei Echtzeit-Chartaktualisierungen sollte der Expert Advisor den/die letzten H12-Balken des aktuellen Tages ohne Verarbeitung übergeben, d.h. mit den aktuellen Werten von O,H,L,C für jeden H12-Balken.
Die beschriebene Verarbeitung der Balken sollte erst nach dem Schließen der Tageskerze erfolgen, wenn es keine Änderungen mehr in den H12-Balken des geschlossenen Tages gibt.
Wenn Sie mir helfen können, das bestehende Skript entsprechend der beschriebenen Methode zu verbessern, wird dies die Überprüfung des High-Low-Modells im Hinblick auf die statistische Analyse der Kanalbildung SEHR beschleunigen. Ich verspreche, dass ich die Ergebnisse der Vergleiche hier vorstellen werde. Ich denke, es wird für viele an der statistischen Datenverarbeitung Interessierte interessant sein, sie zu lesen. DANKE im Voraus!

 
solandr:

InterbankFX hat einige Probleme mit dem Update (die Einladung zum Update erscheint, aber das Build wird nicht heruntergeladen - aber das macht nichts)

Von den neuen realen Servern gibt es eigentlich keine Aktualisierung. Mit dem liveupdate Demoserver verbindet er sich ohne Probleme.
 

Ich für meinen Teil werde zunächst versuchen, die Kanalberechnung nur für High und Low einzeln zu überprüfen. Ich werde die Ergebnisse sehen. Wenn die mit verschiedenen Stichproben gewonnenen Kanäle in der Länge übereinstimmen, können wir wahrscheinlich auf ein neues Skript für den Zeitraum H12 verzichten. Das heißt, wir verwenden die Daten zu High für die oberen Grenzen der Kanäle und die Daten zu Low für die unteren Grenzen. Vielleicht belästige ich Sie umsonst mit meinen Anfragen, wenn alles viel einfacher in meinem EA gelöst werden kann? Ich denke, es ist nicht schwer, dies in meinem Expert Advisor zu implementieren.

 
komposter Ich habe hier ein Problem, können Sie mir sagen, was zu tun ist? Alle Details sind hier http://forum.kimiv.ru/viewtopic.php?t=177
 
solandr:

Mir ist eine Kleinigkeit aufgefallen, von der ich annehme, dass sie ein Merkmal des Terminals und nicht des EA ist, worüber ich persönlich keine Beschwerden habe! Wenn Expert Advisor läuft und ich einen beliebigen EA in Metaeditor kompiliere, der nicht einmal mit einem der Charts verbunden ist, wird in den Terminalprotokollen ein Fehler angezeigt.

Tut mir leid, dass ich so lange nicht geantwortet habe - ich bin gerade aus dem Urlaub zurückgekommen...

Das Problem scheint mir zu sein, dass EA offene Dateien nicht schließt. Die Frage ist, warum es das nicht tut =)
Die einzige Annahme ist, dass während der Kompilierung die Startfunktion der funktionierenden EAs zwangsweise gestoppt wird.

Und beim nächsten "Start" werden die Dateien wieder geöffnet, aber es gibt "nicht genug Platz" (maximal 32 offene Dateien).

Expert Advisor selbst handhabt diese Situation nicht ganz korrekt - selbst wenn eine Datei nicht geöffnet ist, versucht er dennoch, Daten dorthin zu schreiben.
Behoben - eine Zeile hinzugefügt =)
if ( HistoryHandle[curChart] < 0 ) continue;


attached Expert Advisor.



Zu den H12-Tabellen. "Ich habe Zeit, aber kein Geld" ist nicht von mir =)
Auch bei mir stehen diese beiden Werte in umgekehrtem Verhältnis - je mehr Freizeit, desto weniger Geld und umgekehrt.

Im Moment kann ich keine Wohltätigkeitsarbeit leisten - ich habe zu viel Arbeit.
Und das Forum ist 5 Seiten (*30 Themen) ungelesen....
Dateien: