Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

MARKET_CLOSED Abfrage, aber wie?!

Geschrieben

Hallo,

es gibt 2 Errors mit denen ich immer wieder konfrontiert werde:

 

ERR_MARKET_CLOSED 132 Market is closed.
ERR_TRADE_DISABLED 133 Trade is disabled.

 

für den 133er (TRADE_DISABLED) hab ich das Ergebnis von MarketInfo(symb1, MODE_TRADEALLOWED) in die View eingebaut

aber für MARKET_CLOSED finde ich keine Abfrage-Möglichkeit.

 

Hat jemand eine Idee?

 

vielen Dank im voraus!

Gruß, Thomas

Featured Replies

Geschrieben

Tach erstmal !

Schön das Du mit deiner Frage zu uns gefunden hast.

 

Hallo Thomas :Howdy:

 

Soviel Zeit sollte zum Neueintritt vorhanden sein, meinste nicht ?

 

Jetzt wo das geklärt ist, Du sprichst von einer Abfrage im Code, hast Du nähere Einzelheiten zu deiner Problematik ?

Hier sind ganz sicher Leute, die Dir helfen können, aber ein jeder freut sich, wenn er zumindesr begrüßt wird.

Geschrieben

Hallo erstmal und schön das du hergefunden hast.

 

Eine Frage: Wann taucht denn das Market_Closed problem auf? Meist reagiert man bei EAs ja auf Ticks aus dem Markt. Diese treten aber nur bei offenem Markt auf. Ich vermute mal das du somit einen etwas ungewöhnlicheren Ansatz hast.

 

Wie man das abfragt wüsste ich auch nicht, aber sobald du das erstemal den Error kriegst weißt du das der markt zu ist. Beim nächsten Tick weißt du das der Markt wieder offen ist.

Geschrieben
  • Autor

Hallo Mythos,

 

Danke für die Antwort!

 

Dass es ohne Ticks schwierig werden wird, eine Abfrage zumachen, daran hab ich noch gar nicht gedacht,

danke für den Hinweis!!

 

Eine vielleicht andere Möglichkeit: mir ist letzte Nacht aufgefallen, dass es bei den Indexen 3 Möglichkeiten gibt:

Trade: FULL (Ein- und Ausstiege möglich), Trade: Close (keine neuen Orders mehr), Trade: No (keine Ticks mehr und somit auch keine Abfrage mehr möglich) aber die ersten 2 Möglichkeiten sind noch mit Ticks verbunden.

 

Ich hab mir glaub ich alle Befehle durchgesehen, aber ich kann keine Abfrage finden, mit der ich mir diese Info in die View einbauen kann... warum ich das machen will: in der Markt-Übersicht, wo die Symbole aufgelistet sind, sieht man keinen Unterschied zw. FULL & Close, nur die "Trade: No" sind hellgrau, aber im Chart-Window würde ich auch gerne sehen, ob der Index bereits abgelaufen ist und ich mich um den neuen umschauen muss, sprich Symbol-Liste neu laden, mit

 

MODE_STARTING 20

Market starting date (usually used for futures).

 

MODE_EXPIRATION 21

Market expiration date (usually used for futures).

 

 

scheint es nicht zu funktionieren, da kommt immer nur "0" raus...

 

vielleicht kennt jemand eine Möglichkeit "Trade: FULL" & "Trade: Close" abfragen zu können?!

 

Ist zugegebener Weise nicht wirklich soooo wichtig, aber ein nettes Feature wäre es schon ;-)

 

Danke

 

Geschrieben

Hallo tompaul

und erstmal herzlich Willkommen !

MODE_EXPIRATION 21

Market expiration date (usually used for futures).

 

scheint es nicht zu funktionieren, da kommt immer nur "0" raus...

Also ich denke es hängt ab vom aufgerufenen Instrument (also dem Chart) und evtl. auch noch vom Broker.

 

Ich hab das gerade mal getestet bei einem Activetrade-Account:

 

MODE_STARTING war immer 0, egal bei welchem Instrument.

MODE_EXPIRATION war immer 0 bei Endloskontrakten (also Devisen, Gold ...)

MODE_EXPIRATION hat den Verfalltag herausgegeben bei Index- und Rohstoff-CFDs auf Futures

steht ja auch im Kommentar "(usually used for futures)"

 

Ich denke bei adjustierten Endloskontrakten auf CFD-Indizes dürfte dann wohl auch eine 0 drin stehen.

 

z.B. bei

CocoaSep13 2013.08.16 20:00:00 (siehe Bild)

LCrudeJul13 2013.06.19 23:15:00

Ger30Jun13 2013.06.20 22:00:00

EuBundSep13 2013.09.05 22:00:00

 

Das ist der Script-Code:

string msg =  
"  Mode Starting\t" + DoubleToStr(MarketInfo(mySymb, MODE_STARTING), 4) + "\n" +
"  Mode Expiration\t" + DoubleToStr(MarketInfo(mySymb, MODE_EXPIRATION), 4) + "\n" +
"  Mode Starting\t" + TimeToStr(MarketInfo(mySymb, MODE_STARTING),TIME_DATE|TIME_SECONDS) + "\n" +
"  Mode Expiration\t" + TimeToStr(MarketInfo(mySymb, MODE_EXPIRATION),TIME_DATE|TIME_SECONDS) + "\n";
MessageBox(msg, "Account/Symbol Details", 0);

MODE_EXPIRATION_COCOA_SEP13.png

Bearbeitet von Mythos
quote tag mit code tag ersetzt

Geschrieben

Thomas

 

willkommen bei TN

 

Vola hat recht : Welcher Hintergrund ? Was willst Du, was handelst Du, wo soll es hingehen ? Ausgabe im Chart durch einen EA oder einen Indi ?


Sonst Rätselraten und dafür ist die Zeit knapp .

 

KB

 

PS.: Ohne Ticks ist Dein Metatrader "blind und tot" , mit jedem Tick werden seine Routinen genau einmal durchlaufen . Er wird NICHT durch die CPU Deines Rechner getaktet wie alle anderen Programme Deines Rechners (stimmt das auch ? @ unsere Spezialisten )

Geschrieben

PS.: Ohne Ticks ist Dein Metatrader "blind und tot" , mit jedem Tick werden seine Routinen genau einmal durchlaufen . Er wird NICHT durch die CPU Deines Rechner getaktet wie alle anderen Programme Deines Rechners (stimmt das auch ? @ unsere Spezialisten )

Jein. Die start() Methode wird bei "jedem" Tick (außer sie läuft noch vom vorigen Tick) ausgeführt. Man kann den EA auch dauerhaft "aktiv" halten indem man die start() Methode nie verläßt. Das ist auch der einzige Anwendungsfall wo die Abfrage ob der Markt geschlossen ist Sinn macht (wenn überhaupt).

Aber ich schließe mich an: ohne Anwendungsfall & ein paar mehr Infos is es rätselraten und dafür hat niemand Zeit.

Geschrieben

@Thomas

Poste doch einfach deinen Code, eventuell vorhandene Sorge vor kopieren kannst du durch verändern der Parameter doch umgehen.

Es geht ja erstmal darum deinen Code zum laufen zu bringen, Parameter kannst Du danach ja problemlos ändern.

Geschrieben
  • Autor

Danke Wolf,

hab deinen Code getestet, sieht aus, als ob mein Broker diese Info nicht mitschickt, aber egal, hab mich damit abgefunden, dass ich halt von Zeit zu Zeit schaun muss, ob's neue Indexe mit neuem Datum gibt... was nicht geht, geht halt nicht wacko.png

 

Kann ich davon ausgehen, dass diese Wechsel (von zB Symbol-JUN13 auf Symbol-SEP13) immer am Wochenende stattfinden?

 

sonst hab ich keine Frage mehr zu diesem Thema, scheint ja irgendwie nicht bei jedem Broker möglich zu sein

und wenn dann würde es vermutlich nach WOLF's Methode funktionieren...

 

@Vola:

als Code verwende ich nur ein simples CreateObject:

 

ObjectCreate("Infozeile", OBJ_LABEL, 0, 0, 0);
ObjectSetText("Infozeile", TMarketInfo(symb, MODE_TRADEALLOWED),size, "Verdana", color);
ObjectSet("Infozeile", OBJPROP_CORNER, 3);
ObjectSet("Infozeile", OBJPROP_XDISTANCE, (20));
ObjectSet("Infozeile", OBJPROP_YDISTANCE, (20));

Geschrieben

tompaul, on 17 Jun 2013 - 16:50, said:

hab mich damit abgefunden, dass ich halt von Zeit zu Zeit schaun muss, ob's neue Indexe mit neuem Datum gibt... was nicht geht, geht halt nicht wacko.png

Naja, "von Zeit zu Zeit" ist relativ wenn das Symbol JUN13 heißt. Es gibt ja vordefinierte Verfallsdaten und im Symbolnamen steht auch noch drin welcher es ist...
Geschrieben

 

Danke Wolf,

hab deinen Code getestet, sieht aus, als ob mein Broker diese Info nicht mitschickt ...

bitte gerne, das habe ich vermutet. Wahrscheinlich sind es wohl keine CFD's auf Futures, sondern eben CFD's auf adjustierte Endloskontrakte.

 

Kann ich davon ausgehen, dass diese Wechsel (von zB Symbol-JUN13 auf Symbol-SEP13) immer am Wochenende stattfinden?

Wie Mythos bereits schrieb hängt es eben vom Verfall der realen Futures-Kontrakten ab.

 

Hier findest Du die Spezifikationen zum jeweiligen Vefalltermin beim Broker Activetrades:

 

für Rohstoff-Futures und Metalle: http://www.activtrades.de/index.aspx?page=cfds_metals

für Indizes und Anleihen: http://www.activtrades.de/index.aspx?page=cfds_indices

Verfalltermine_Activetrades.png

 

Hier findest Du die Spezifikationen der realen zugrundeliegenden Futures:

http://www.eltee.de/verfallstage.php

 

Angegeben sind jeweils der letzte Handelstag "Last Trading Day" (LT) und - wo relevant - der "First Notice Day" (FN)

 

Ich habe mal als Stichprobe für die folgenden vier Kontrakte, den per MT4-Skript ausgelesenen MODE_EXPIRATION mit dem Verfall der realen Future-Kontrakte verglichen

 

Cocoa September13

Verfall (LT) des realen Cocoa Future September 13/9 = 2013.09.13

Erster Anzeigetag (FT) 19/8 = 2013.08.19

Verfall Laut Activetrades ist "der Geschäftstag vor dem Ersten Anzeigetag der Andienung des Kontraktes":

da der 19.08. ein Montag ist, wäre das der Freitag der 16.08.

Verfall bei Activetrades nach MODE_EXPIRATION = 2013.08.16 20:00:00

 

LCrudeJul13

Verfall (LT) des realen CrudeOil Future Juli 20/6 = 2013.06.20

Verfall bei Activetrades nach MODE_EXPIRATION = 2013.06.19 23:15:00

 

Ger30Jun13

Verfall (LT) des realen FDAX Future Juni 21/6 = 2013.06.21

Verfall bei Activetrades nach MODE_EXPIRATION = 2013.06.20 22:00:00

 

EuBundSep13

Verfall (LT) des realen Bund Future September 06/9 = 2013.09.06

Verfall bei Activetrades nach MODE_EXPIRATION = 2013.09.05 22:00:00

 

Fazit:

Die CFD's auf Futures und Rohstoffe verfallen beim Broker Activetrades i.d.R. einen Tag vor dem Verfall (LT) der realen Futures-Kontorake

 

Ausnahme:

Cocoa und wohl auch noch andere Rohstoffe (habe ich nicht weiter überprüft).

Da findet der Verfall beim Broker Activetrades einen Tag vor dem First Notice Day (FN) des realen Futures statt

 

 

Geschrieben
  • Autor

Vielen Dank für die Infos!

Hab jetzt bei meinem Broker nachgesehen, und siehe da, der hat auch so eine Liste mit genauem Rollover-Datum

z.B.:

DAX-JUN13 mit 20. Juni 2013,

ASX-JUN13 mit 19. Juni 2013,

NK225-JUN13 mit 12. Juni 2013,

usw.

 

Ich glaub jetzt hab ich's verstanden, wie das mit dem Datum bei den Indexen funktioniert.

 

Vielen Dank @Mythos & Wolf!

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.