Jump to content
Tom Next - Daytrading Community

Knochen

*_skilled
  • Posts

    111
  • Joined

  • Last visited

  • Days Won

    1

Knochen last won the day on January 14 2011

Knochen had the most liked content!

About Knochen

  • Birthday 10/12/1975

Kontaktinformationen

  • Website URL
    http://www.ea-programmierung.de
  • ICQ
    0

Profile Information

  • Wohnsitz
    Gelsenkirchen

Community Informationen

  • Newsletter Abonnement
    abonniert
  • Typ Newsletter
    alle

Verschiedenes

  • auf die Community aufmerksam geworden durch
    -Please Select-

Knochen's Achievements

Newbie

Newbie (1/14)

7

Reputation

  1. Wenn ich es richtig interpretiere, musst du statt "DayOfWeek()" -> "TimeDayOfWeek(dtVal)" nehmen! DayOfWeek gibt nur den aktuellen Tag (zum Zeitpunkt der Ausführung) zurück und TimeDyOfWeek den Tag eines bestimmten Datums. vg
  2. Was ich noch vergessen habe... Für den Backtest (visuelle Modus, Chartansicht) werden die Einstellungen aus dem Template "tester.tpl" geladen (sofern vorhanden). Wenn du also auch dafür die Standardeinstellungen ändern möchtest, dann musst du diese im Template "tester.tpl" speichern. vg
  3. Hallo Foxy, du must einfach nur ein Template mit dem Namen "default.tpl" anlegen welches deinen Ansrpüchen genügt. Das wird dann bei Eröffneun jedes neuen Charts automatisch dafür geladen mit den entsprechnden Einstellungen. vg Knochen
  4. Mit den MQL-Standardfunktionen geht es gar nicht. Du musst stattdessen die kernel32.dll in dein Script einbinden und die Funktionen, die dort zum Zugriff auf Dateien zur Verfügung gestellt werden, nutzen. Inbinden der dll und Deklaration der Funktionen: #import "kernel32.dll" int _lopen (string path, int of); int _lcreat (string path, int attrib); int _llseek (int handle, int offset, int origin); int _lread (int handle, int& buffer[], int bytes); int _lwrite (int handle, string buffer, int bytes); int _lclose (int handle); #import Such mal bei mql4.com nach "Read_Write_File.mqh", dort siehst du, wie du die Funktionen nutzen musst/kannst.
  5. Nein, hatte ich ja schon geschrieben ist nur ein Schönheitsfehler. Kann aber unter Umständen an anderen Stellen zu Fehlern führen.Deshalb sollte man natürlich möglichst jeden noch so kleinen Fehler vermeiden. Das kann eigentlich nicht sein, dann hast du vielleicht noch einen anderen Fehler gemacht. Das stimmt nicht, wenn OrdersToral() == 1 ist, dann wird die Schleife dann trotzdem einmal durchlaufen. Eine korrekte For-Schelife würde so aussehen: for (j=OrdersTotal()-1; j>=0; j--) { ... }
  6. Hast du dein Probelm schon gelöst? Einen kleinen Fehler hast du übrigens noch beim Durclaufen aller Orders. Die höchste Ordernummer ist immer "OrdersTotal()-1" weil die Zählung ja bei 0 beginnt. Müßtest du also in den for-Schleifen bei dem Startwert berücksichtigen. Dieser Fehler dürfte zwar nichts mit dem eigentlichen Problem zu tun haben, aber sollte man trotzdem beachten.
  7. Hallo, ich vermute, dass es an dem Bid-Kurs liegt, den du beim Close übergibst. Da Sell-Positionen immer zum Ask-Kurs geschlossen werden, müßtest du mal statt Bid Ask im OrderClose verwenden. Ansonsten muss natürlich noch sichergestellt sein, dass alle Positionen die du in dem EA öffnest und verwaltest das gleiche OrderSymbol haben. Wenn nicht, dann dürftest du nicht Bid und Ask verwenden sondern müßtest dir die aktuellen Kurse mit MarketInfo holen. Wenn das alles nicht weiterhilt, solltest du nach jeder Funktion LastError (und ErrorDescription) auswerten, um einen Hinweis auf den Fehler zu bekommen. vg
  8. ja das ist richtig, gelegentlich wünscht man sich sowas.
  9. Man kann OHLC Daten für alle Zeitebenen herunterladen aber es ist scheinbar egal auf welcher Zeitebene immer auf die letzten 500 Datensätze beschränkt. Theoretisch ginge es auch mit anderen Daten, aber dann muss ich neben der Oanda-API-Anbindung noch mit einer 2. API auf öffentlich über diese API verfügbare historische Daten zugreifen, da es hier nicht um eine Backtestmöglichkeit geht, sondern lediglich um den Livehandel (damit erübrigt sich auch das CV-Problem). Das wäre dann zusätzlicher Programmieraufwand. Zumal ich nicht glaube, dass es eine kostenlose API-Anbindung zum herunterladen der aktuellsten historischen Daten bei einem anderen Broker gibt. Zum Verständnis: Diese Daten werden lediglich benötigt im einen Moving Average auf den letzten x Bars zu berechnen und immer aktuell zu halten.
  10. Danke für deine Mühen... Nein, es müssen schon die Daten von Oanda sein, weil dann auch dort nach diesen Kursen gehandelt werden soll. Es sollten deshalb Originaldaten von Oanda sein.
  11. Hallo Leute, ich weiß zwar nicht ob das hier der richtige Forumsbereich zum Thema ist, aber ich habe leider auf die Schnelle kein passenderes gefunden. Also verzeiht mir, wenn es hier nicht so ganz passt und verschiebt es dann bitte in den besser passenden Bereich. Danke! Ich suche jemanden, der Erfahrungen mit der Programmierung der Oande-API hat. Speziell geht es mir hier um die Funktion GetHistory, mit der man sich historische Kursdaten herunterladen kann. Hier scheint es eine Beschränkung in der Anzahl der Kursdaten (scheinbar max. 500) zu geben, die man sich herunterladen kann. Da man keinen Zeitpunkt angeben kann, ab dem man diese 500er Historie herunterladen möchte, hat man somit nur Zugriff auf die letzten 500 Kursdaten. Meine Frage: Kennt jemand einen Weg mehr als diese 500 Kursdaten herunterzuladen? Wäre für jeden Hinweis dankbar. vg Knochen
  12. Du musst folgenden Code verwenden damit nur auf Schlusskursbasis gearbeitet wird: int iCurrentBars = iBars(NULL, 0); if (iCurrentBars>iLastBars) { //Regeln auf Schlusskursbasis if (iCustom(NULL, 0,"Indikator X",1,0) < Close[1]) { //dein Code } } iLastBars = iCurrentBars; //iLastBars muss eine globale Variable sein Das Ganze setzt natürlich voraus, dass iCustom(NULL, 0,"Indikator X",1,0) einen korrekten Wert größer als 0 zurückliefert. Sobald du nämlich nicht alle nötigen Indikator-Parameter übergibst oder der Indikator nicht gefunden wird, lifert die Funktion immer 0 zurück.
  13. Hallo, kann mir jemand sagen, ob es im NinjaTrader möglich ist, für jede geöffnete Position einzeln jeweils einen eigenen (unterschiedlichen) StopLoss mit der Funktion SetStopLoss(string fromEntrySignal, CalculationMode mode, double value, bool simulated) zu setzen? Ich habe es bei mir versucht und irgendwie setzt er immer nur einen Stop, der dann für alle offenen Positionen gilt, obwohl ich im Parameter fromEntrySignal immer den Namen der Order übergebe, für die der Stop gelten soll. Vielen Dank im Voraus
×
×
  • Create New...