Strukturieren komplexer JavaFX 8-Anwendungen für die Produktivität Kombinieren von Konventionen über Konfiguration und Abhängigkeitsinjektion mit Scene Builder. Published October 2014 In der Theorie, könnten Sie die gesamte Benutzeroberfläche für eine Anwendung mit einem schönen Werkzeug ohne Programmierkenntnisse zu zeichnen und damit wäre schneller als jede Code-getriebene Entwicklung. JavaFX kommt mit einem schönen Design-Tool namens Scene Builder aus der Box. Dieser Artikel erklärt, wie zu kombinieren und ernsthafte Codierung noch produktiver zu werden. Adam Bien zeigt Ihnen, wie Sie zusammengesetzte JavaFX-Ansichten erstellen. Die WYSIWYG Revolution Java-Benutzeroberflächen-Toolkits wurden immer von WYSIWYG-Visual Editoren begleitet. Die rasante Entwicklung und die einfache Wartung waren die Haupttreiber der visuellen Entwicklung. Da jedoch die meisten visuellen Editoren automatisch Code aus visuellen Darstellungen generierten, war der Code schwer zu pflegen. Die einzige Schnittstelle zwischen dem Entwickler und dem visuellen Editor waren leere Spots im generierten Code, so genannte geschützte Regionen, wo irgendwelche Hooks zur Präsentationslogik platziert werden mussten. Auch die Produktivität, die mit den WYSIWYG-Editoren erzielt wurde, war traditionell indirekt proportional zur Komplexität der Benutzeroberfläche, je schwieriger die Benutzeroberfläche ist, desto schwieriger wird sie, sich vollständig auf den codefreien Ansatz zu verlassen. Überraschenderweise hat der JavaFX Scene Builder nicht die oben beschriebenen Herausforderungen. Anstatt einen Layout-Code zu erzeugen, erzeugt Scene Builder eine Konfiguration für einen FXMLLoader. Der javafx. fxml. FXMLLoader ist eine Fabrik, die die Erstellung der Benutzeroberfläche kapselt und den Stamm javafx. scene. Parent zurückgibt. Zu jedem Zeitpunkt können Sie die Knotenhierarchie auch manuell kodieren und die übergeordnete Komponente an die Anwendung zurückgeben. Mit JavaFX Scene Builder, anstatt sich auf leere Stellen, die von einem Tool erstellt werden, stellt der Entwickler Vorzeigemethoden und - felder dem Szenen-Generator unter Verwendung von Annotationen oder Konventionen zur Verfügung. Diese freigelegten Haken werden vom FXMLLoader zur Ladezeit mit der erzeugten FXML-Konfiguration zusammengeklebt. Ein in der FXML-Datei deklarierter Presenter wird vom FXMLLoader instanziiert. Was die Interaktion mit den freiliegenden Haken ermöglicht. UI-Elemente werden mit den in der FXML-Datei gespeicherten Informationen instanziiert und in den Presenter injiziert. Jede öffentliche Methode oder jede Methode mit der FXM-L-Annotation kann als Ereignis-Listener-Hook verwendet werden. Die Erstellung des Moderators und das Dependency Management des generierten Widgets ist ein klassisches Beispiel für Inversion of Control. Anstatt von dem erzeugten Code abhängig zu sein, wird der erzeugte Code von dem handgefertigten Moderator abhängig. Noch geeigneter ist das Hollywood-Prinzip. Lassen Sie die FXML-Laufzeit die Widget-Injection und den Aufruf der Event-Handler für Sie behandeln. Der JavaFX WYSIWYG-Ansatz ist weniger spröde, produktiver, sehr wartbar und daher besonders interessant für den Aufbau großer Unternehmensanwendungen. Eine größere Frage Auch eine ehrgeizige einseitige Anwendung kann mehrere Unteransichten enthalten, die von einer Hauptansicht organisiert werden, die die Struktur diktiert. Außerdem könnte eine einzelne Ansicht für einen einzelnen Controller zu komplex sein. Da die FXML-Datei einen einzelnen Knoten (Ansicht) erzeugt und einen einzelnen Controller instanziiert, kann die Komplexität schnell wachsen und zukünftige Erweiterungen oder Fehlerbehebung unnötig schwierig machen. Mehrere Controller pro FXML-Ansicht würde die Codebasis vereinfachen. Tatsächlich habe ich am 16. November 2011 die folgende Frage an die offizielle JavaFX JIRA Bugtracker-Site gepostet: Zurzeit wird nur ein einziger Controller pro FXML-Datei unterstützt. Diese Einschränkung ist problematisch: 1. Größere Ansichten können die Einführung von mit mehreren Dutzend Methoden verursachen. 2. Mehrere Steuerungen pro Sicht (FXML) Akte sind kompatibler mit der Trennung von Interessen-Idee. Die Antwort der JavaFX-Ingenieure war klar: Jede UI-Komponente sollte in der Lage sein, einen dedizierten Controller zu verwenden. Die 1: 1-Beschränkung zwischen FXML-Datei und Controller sollte eine Konvention, keine Einschränkung sein. Die 1: 1-Zuordnung zwischen einem FXML-Dokument und seinem Controller ist von Entwurf. Haben Sie darüber nachgedacht, mit einzuschließen, um Ihr Markup in mehrere Dokumente zu trennen. Jedes Dokument kann über einen eigenen Controller verfügen. Eine Idee war geboren: Verwenden Sie FXML Die Konventionen in FXML eingeführt könnte leicht auf die gesamte Struktur der Anwendung angewendet werden. Ein Bildschirm wird durch ein Java-Paket dargestellt, das nach der Ansicht benannt wird. Jedes Paket wird immer den gleichen Inhalt haben: Paketname View. java. Eine Klasse, die für das automatische Laden der FXML-Datei verantwortlich ist. Der Name der FXML-Datei wird direkt aus dem Klassennamen dieser Ansicht abgeleitet. Paketname. fxml. Eine Datei, die ein Produkt des Designprozesses ist. Normalerweise wird diese Datei mit Scene Builder erstellt, aber sie kann in der IDE verfeinert werden. Der Moderator wird durch den FXMLLoader instanziiert. Aber es muss zu diesem Zweck manuell in der FXML-Datei deklariert werden. Paketname Presenter. java. Enthält UI-Elemente, die von der FXML-Laufzeit injiziert werden, und Methoden, die als Aktions-Listener verwendet werden. Auch Dienstleistungen und Modelle werden in den Moderator als Singletons eingespritzt. Paketname Service. java. Ein einfaches altes Java-Objekt (POJO), das für die Kommunikation mit einem Dienst oder die Implementierung jeder Art von Logik zuständig ist. Paketname Model. java. Ein POJO für die gemeinsame Nutzung der Staat zwischen den Ansichten oder die Umsetzung der Geschäftslogik verwendet. Paketname. css. Ein optionales Cascading Style Sheet (CSS) wird automatisch von der Ansicht geladen. Paketname. properties. Ein optionales Ressourcenbundle wurde geladen und an die javafx. fxml. Initializable-Initialisierungsmethode als Parameter übergeben. Konfigurationseigenschaften. Eine optionale Konfigurationsdatei, die Eigenschaften enthält, die in den Moderator injiziert werden. Konvention gepaart mit Dependency Injection eliminiert erfolgreich die Notwendigkeit für die Konfiguration und damit Duplizierung. Konvention erzwingt auch konsistente Code-Struktur und Namensgebung, was wiederum deutlich verbessert die Wartbarkeit. Nehmen Sie einen Ansatz für die offensichtlichen Sachen, und don t Ihre Zeit verschwenden immer wieder überdenken die Code-Organisation und Namensgebung. Alle Elemente sind sofort mit einem Blick zu erkennen. Sagen Sie hallo zu afterburner. fx: Eine extrahierte Bibliothek Meine ursprüngliche Idee wurde durch ein reales Projekt überprüft: das Verwalten der Teilnehmer für meine airhacks Java-Workshops am Münchner Flughafen. Die Produktivität nahm zu und die Codebasis wurde zur gleichen Zeit reduziert. Alle Ansichten wurden mit Scene Builder ohne Codierung entwickelt. Eine endgültige Refactoring führte zu einem eigenständigen Mikroframework, das mit zwei Klassen begann, deren Name vom Flughafen inspiriert wurde und die am Ende aus der eigentlichen Anwendung extrahiert wurde. Afterburner. fx implementiert die im vorherigen Abschnitt erwähnten Konventionen und fügt JSR 330 Inject Dependency Injection für Moderatoren, Modelle und Ansichten hinzu. Auch das Laden der FXML-, CSS - und Property-Dateien, die Instanzierung des Presenters und die Injektion von Modellen und Diensten, kommen mit der Vererbung von com. airhacks. afterburner. views. FXMLView. Alles was Sie tun müssen, ist an den Konventionen festzuhalten und eine Ansicht zu veranschaulichen. Der folgende Befehl generiert eine Beispielanwendung für Sie. Es ist auch die einfachste Möglichkeit, um mit afterburner. fx zu beginnen. Lassen Sie s eine völlig neue Ansicht und damit ein Java-Paket mit dem gleichen Namen erstellen. Nach den Konventionen sind die Inhalte des Pakets bereits vordefiniert: HelloView. java. HalloPresenter. java. HalloService. java. Und hello. fxml. Hinweis . Der Quellcode für das in diesem Artikel beschriebene Beispiel kann hier heruntergeladen werden. Die HelloService-Klasse ist optional, wird aber normalerweise in einer realistischen Anwendung verwendet. Ein Service muss nicht den Namenskonventionen entsprechen und wird üblicherweise nach seinen Verantwortlichkeiten benannt. In unserem Beispiel ist der Service s Verantwortung zu sagen, daher der Name Suiten perfekt. Die Ansicht muss die com. airhacks. afterburner. views. FXMLErstellen Sie den Ort, wo die Konventionen passieren: Eine der am meisten gestellten Fragen ist, Ein konkreter FXMLView ist in der Regel leer, aber Sie könnten den Parent-Knoten aus der FXML-Datei zu verbessern Überschreiben der Methode getView (): Allerdings ist die manuelle Ansicht Konstruktion in der Regel nicht erforderlich und die Ansicht bleibt in der überwiegenden Mehrheit der Fälle leer. Unterklassen von FXMLView repräsentieren die gesamte FXML-Datei und sind keine JavaFX-Komponente. Nur der Aufruf von getView erzwingt den eventuellen Aufbau der javafx. scene. Parent-Instanz. Weniger wichtig, aber nützlich in komplexeren Szenarien, ist die Methode getPresenter (). Wie der Name der Methode impliziert, gibt er den mit der View verknüpften Presenter zurück und wird von der FXML-Laufzeit erstellt. Ein Moderator ist ein POJO auf Steroiden und unterstützt die Injektion von UI-Komponenten, die mit Scene Builder entworfen wurden, sowie die Injektion von Services, Modellen oder POJOs, die mit einem Standardkonstruktor ausgestattet sind, wie in Listing 1 gezeigt: Listing 1. Beispiel für die Injektion Der UI-Komponenten und - Dienste Felder, die mit der FXML-Annotation markiert sind, werden von der JavaFX-Runtime gespritzt und Inject ist eine Funktion des afterburner. fx-Frameworks. Darüber hinaus sind alle öffentlichen Methoden des Moderators als Ereignis-Listener verwendbar. Jeder POJO, der mit einem parameterlosen Konstruktor ausgestattet ist, kann direkt in den Presenter injiziert werden. Die Injektion beginnt in der Moderatorin und arbeitet in allen injizierten Klassen. Neben der Injektion werden die Annotationen PostConstruct und PreDestroy unterstützt und die Methoden werden entsprechend aufgerufen. (Siehe Listing 2). Listing 2. Lifecycle-Hooks mit PreDestroy - und PostConstruct-Annotationen Eine JavaFX-Anwendung wird gestartet, indem die Startmethode ausgeführt wird und die UI-Konstruktion im Methodenstart mit dem Parameter javafx. stage. Stage ausgeführt wird. Die Initialisierung einer afterburner. fx-Anwendung ist die gleiche, erfordert aber deutlich weniger Code (siehe Listing 3). Listing 3. Starten einer afterburner. fx-Anwendung Composite Views Tab-, SplitPane - oder Akkordeon-Widgets fungieren als Skelett für mehrere Sichten. Die Einführung einer zusammengesetzten Ansicht hat nur einen geringen Einfluss auf den Quellcode: Anstelle der direkten Instanziierung von HelloView in der Hauptmethode wird zunächst die zusammengesetzte Ansicht instanziiert: Auch eine zusammengesetzte Ansicht wird mit dem Scene Builder entworfen (siehe Abbildung 1). Zusammengesetzte Ansicht, die mit Scene Builder erstellt wurde Alle Composite-Komponenten umfassen mehrere AnchorPane-Instanzen, die erneut für die Injektion in den Presenter in Frage kommen, wie in Listing 4: Listing 4 gezeigt. Injizieren von im Scene Builder entworfenen Unterviews Der Moderator interessiert sich nicht, was für ein Containerelement Verwendet, um die Anwendung zu strukturieren. Die Platzhalterelemente sind AnchorPane-Instanzen, die mit manuell instanziierten Ansichten gefüllt werden können. Statische Ansichten können in der Initialisierungsmethode eifrig verdrahtet werden. Ebenso gut, kann eine Ansicht dynamisch erstellt oder ersetzt werden faul zu jedem Zeitpunkt. Convenient Build Process Maven 3 ist das beliebteste Build-System in Unternehmensprojekten. Leider ist Maven's eigenes Übereinkommen über Konfigurationsverhalten nicht vollständig kompatibel mit den Konventionen von afterburner. fx. Das Laden der FXML-, CSS - und Property-Dateien aus src / main / java erfordert einige Tweaks in der pom. xml-Datei (siehe Listing 5): Listing 5. Beispiel für Änderungen, die in der pom. xml-Datei vorgenommen werden müssen Ein optionales, Aber bequem, Ansatz für Desktop-Anwendungen ist die Maven-Abhängigkeit Plugin konfigurieren (siehe Listing 6). Listing 6. Extrahieren aller Abhängigkeiten an einer Stelle zur weiteren Verpackung Nach der Deklaration des maven-dependency-plugins. Werden alle in der pom. xml-Datei deklarierten Abhängigkeiten zu einer einzigen JAR-Datei zusammengeführt und können zusammen mit der Anwendung übergeben werden. Das JDK-Tool javafxpackager erstellt die JAR-Programmdatei über die Befehlszeile über den Befehl java - jar hello-app. jar. Da javafxpackager kein Maven-Plugin ist, wird es in den Build mit dem exec-maven-plugin integriert. Wie in Listing 7 gezeigt: Listing 7. Integrieren von javafxpackager mit Maven Mit den beiden installierten Plugins und Tweaks für das Ressourcen-Management wird einfach eine ausführbare JAR-Datei im Zielordner erstellt. Ehrgeizigere Features Mehr anspruchsvolle Anwendungen können viele dynamisch geladene Ansichten enthalten. Laden von Ansichten für die gesamte Anwendung zur Initialisierung Zeit ist Verschwendung der Benutzer Zeit. Afterburner. fx kann einen eigenen Threadpool verwenden, um asynchron mit der FXMLView getViewAsync-Methode zu laden. Anstatt auf den Rückgabewert zu warten, kann der aufrufende Presenter einen Rückruf (Consumer) bereitstellen und mit der Initialisierung fortfahren, wie in Listing 8 gezeigt: Listing 8. Asynchrone View Instantiierung Services benötigen möglicherweise zusätzliche Informationen, die für die Verbindung zu einem externen Dienst benötigt werden . Afterburner. fx injiziert Eigenschaften aus einer gewöhnlichen Property-Datei in Moderatoren oder injizierten POJOs. Stellen Sie sich vor, dass die Grußnachricht in unserem HelloService konfigurierbar sein muss. Zu diesem Zweck müssen wir nur ein String-Feld mit der Inject-Annotation bezeichnen, wie in Listing 9 gezeigt: Listing 9. Anwendungskonfiguration mit String-Injektion Nach der bereits eingeführten Konvention wird automatisch eine configuration. properties-Datei geladen Das Ansichtspaket und der Inhalt für die Injektion unleserlich werden. Auch die Injektion ist konventionell der Name des Feldes muss mit einem Schlüssel in der Property-Datei übereinstimmen: Nach der Initialisierung von HelloService. Die Feldnachricht ist auf Property-Dateien gesetzt sind gut für statische Konfiguration geeignet. In dynamischeren Fällen kann eine beliebige Funktionsinstanz wie java. util. function. Function oder jede andere Methode, die einen Schlüssel in ein Objekt auflöst, leicht in eine solche Funktion umgewandelt werden, wie in Listing 10 gezeigt: Listing 10. Konvertieren von Map in eine Konfiguration Source Manchmal kann es notwendig sein, die Konfiguration am Anwendungsstart für Test - oder Diagnosezwecke zu überschreiben. Folglich hat eine Systemseigenschaft in afterburner. fx die höchstmögliche Priorität: Sie überschreibt jede programmgesteuert bereitgestellte Eigenschaft oder jede Eigenschaft, die in configuration. properties definiert ist. Siehe Listing 11. Listing 11. Systemeigenschaften haben die höchste Priorität Fazit afterburner. fx wurde als Proof-of-Concept und eine einzelne Klasse ohne externe Abhängigkeiten gestartet. Es war überraschend erfolgreich von Anfang an. Die meisten der Sie konnten leicht erstellen Sie Ihr eigenes Modell View Presenter (MVP) Framework für JavaFX in ein paar Stunden. Die Idee ist leistungsfähiger als das Tool Konvention über Konfiguration kombiniert mit Abhängigkeitsinjektion hilft Ihnen, JavaFX-Anwendungen schnell und ohne Code-Code zu erstellen. Inversion der Kontrolle innerhalb der WYSIWYG-Editor kommt mit zusätzlichen Kräften und Skalen gut von schnellen Prototypen, um Hunderte von Ansichten. Ihr Business-Code ist nicht abhängig von der generierten FXML-Datei, sondern umgekehrt. JavaFX kommt mit Java SE 8 aus der Box und ist Java. Es hat keine externen Abhängigkeiten, so dass Ihr Code bleibt nur abhängig von JDK 8 selbst. Die Verwendung der gleichen Sprache auf dem Client und Server macht Sie noch produktiver. Und Sie können die gleiche integrierte Entwicklungsumgebung (IDE), Debugging und Profiling-Tools für die Verwirklichung der Präsentation und der Geschäftslogik verwenden. Siehe auch Über den Autor Berater und Autor Adam Bien ist ein Expert Group-Mitglied für die Java EE 6, Java SE 7, EJB 3.X, JAX-RS und JPA 2.X JSRs. Er arbeitet seit JDK 1.0 und mit Servlets / EJB 1.0 mit Java-Technologie und ist nun Architekt und Entwickler für Java SE und Java EE Projekte. Er hat mehrere Bücher über JavaFX, J2EE und Java EE bearbeitet, und er ist Autor von Real World Java EE Patterns Rethinking Best Practices und Real World Java EE Night Hacks. Adam ist auch ein Java-Champion, Top Java Ambassador 2012 und ein JavaOne 2009, 2011, 2012 und 2013 Rock Star. Adam organisiert gelegentlich Java EE Workshops am Flughafen München. An der Konversation teilnehmen FX MANAGERS Wie lange haben Sie Devisenhandel gehandelt und was hat Sie zuerst zu dieser Branche gezogen? Erzählen Sie uns von Ihrer Karriereentwicklung Meine Karriere begann hier bei OppenheimerFunds im Jahr 2003, als ich als Internierter von der Graduiertenschule kam. Ich wurde in der Forschungsabteilung des Global Debt Teams eingestellt, um ein ökonometrisches Modell für die US-Zahlungsbilanz zu entwickeln. Ziel war es, ein solides Rahmenkonzept zu entwickeln, um die Entwicklung der US-Handels - und Kapitalströme infolge der makroökonomischen Entwicklung der heimischen und globalen Nachfrage, der Wechselkurse und der Zinssätze zu verstehen und zu prognostizieren. Der Schwerpunkt meiner akademischen Studien lag in der internationalen Ökonomie und Ökonometrie, so dass diese Gelegenheit perfekt zu meinen Interessen passt. Anfang 2004 wurde ich als Research Analyst für das Team eingestellt. Ich verbrachte die folgenden 3-4 Jahre mit qualitativer und quantitativer Forschung, um Investitionsentscheidungen in G10-Staatsanleihen und Währungen zu informieren. Im Laufe der nächsten 3 Jahre verlagerte sich mein Investitionsschwerpunkt mehr auf Währungen und konzentrierte meine Forschungsbemühungen darauf, die fundamentale makroökonomische Analyse zu einem systematischen Prozess zu machen, der auf die Schaffung von Währungsinvestitionsentscheidungen abzielte. Dieser Prozess wurde dann in unseren internationalen Rentenportfolios als ergänzende Währungsüberlagerungsstrategie eingesetzt. Schließlich habe ich in den letzten drei Jahren eine Doppelrolle des Portfoliomanagers für den Oppenheimer Currency Opportunities Fund und den Senior Currency Stratege für das Global Debt Team absolviert. Was gefällt Ihnen besonders an Ihrer Arbeit, mag ich die fortdauernde Exposition gegenüber globalen makroökonomischen Ereignissen, die die komplexe Dynamik und den Zusammenhang von wirtschaftlichen und sozialen Entwicklungen und deren Auswirkungen auf globaler Ebene verstehen. Jeden Tag bin ich einem sehr dynamischen Umfeld ausgesetzt, in dem intellektuelles Kapital eingesetzt wird, um komplexe Situationen zu verstehen, Lösungen zu finden und umsetzbare Entscheidungen zu treffen. Ich genieße es, mit sehr intelligenten, getriebenen und intellektuell neugierigen Individuen zusammenzuarbeiten. Lernen endet nie. Während dies manchmal überwältigend scheinen mag, ist dieser Wunsch, neue Dinge zu lernen und erfolgreich zu sein, die Haupttriebkraft in meinem täglichen Leben. Währungsmärkte sind sehr tief und flüssig, mit dem größten Tagesumsatz als jede andere Anlageklasse (ca. 4trl / Tag), und sie werden überwiegend über den Freiverkehr gehandelt (OTC ) Derivate wie Forwards und Optionen. Im Gegensatz zu anderen Asset-Klassen, handeln 24 Stunden rund um die Uhr, was einer der liquidesten Fahrzeuge, um globale Makro-Ansichten auszudrücken. Wann und wie wurde das Unternehmen geboren OppenheimerFunds, Inc. hat dazu beigetragen, Investoren erreichen ihre finanziellen Ziele seit 1960. Wir sind einer der Nation Co, Inc. ist aber jetzt mehrheitlich im Besitz von Massachusetts Mutual Life Insurance Company (MassMutual) und ist ein Mitglied der MassMutual Financial Group. Sehen Sie unsere Firmengeschichte bei oppenheimerfunds. Wie ist das Unternehmen heute in Personalabteilungen und Büros strukturiert Das Unternehmen wurde 1960 gegründet und hat seinen Sitz in New York City mit zusätzlichen Büros in Rochester, New York und Centennial, Colorado. Was betrachten Sie als Schlüsselpositionen in einem FX-Management-Unternehmen Es gibt vier wesentliche Investment-Funktionen, die alle unverwechselbar, hoch spezialisiert und ebenso wichtig sind. Dies sind: Portfolio Management, Research Analysten, Execution Trader und Risikomanager. Die Trennung dieser Funktionen ermöglicht es den Teammitgliedern, sich stärker auf ihre Kompetenzen einzustellen, ihre Kompetenzen zu vertiefen und das Beste zu werden, was sie tun. Gleichzeitig ermöglicht ein enges Arbeitsumfeld mit kontinuierlicher Zusammenarbeit und täglichen Gesprächen jedem Mitglied die Perspektive anderer Mitglieder zu verstehen. Minimale Überschneidungen und eine tiefe Zusammenarbeit ermöglichen es diesen Mitgliedern, überlegene Ergebnisse im Investitionsentscheidungsprozess zu erzielen. Insbesondere die Händler verstehen und lernen, über den Auftragsfluss und die allgemeine Impuls des Marktes folgen sie Nachrichten und intraday Dynamik, so dass sie die beste Ausführung als oberste Priorität zu halten, während die relevante Marktfarbe für Research-Analysten und Portfolio-Manager. Research-Analysten bilden das Fundament des Investmentprozesses mit Fokus auf globalen Makroentwicklungen, länderspezifischen Grundlagen und Zahlungsbilanzanalyse. Sie arbeiten umfangreich mit großen Datenbeständen und Informationen, führen qualitative und quantitative Analysen durch und interpretieren ökonomische Datenveröffentlichungen. Sie verwenden eine statistische und ökonometrische Analyse, um zu verstehen, wie sich makroökonomische Variablen auf einander und letztlich auf Devisenmärkte auswirken. Das wichtigste Forschungsziel ist zu verstehen und Veranstaltungen. Die Portfoliomanager analysieren die Informationen und Forschungsergebnisse von Händlern und Analysten, kombinieren sie mit ihrer eigenen Analyse und Interpretation von Phänomenen und konzentrieren sich vor allem auf die Strukturierung von Handelsideen und die Dimensionierung von Portfolio-Allokationen, um Ansichten und Anlagethemen in einem ausgewogenen Portfolio zu synthetisieren. Ähnlich wie Research Analysten konzentrieren sich Portfolio-Manager auf Investitionen Positionen. Schließlich überwachen die Risikomanager die gesamte Portfoliostruktur und arbeiten eng mit den Portfoliomanagern zusammen, um eingebettete Risikopositionen auf mehreren Ebenen zu verstehen: gehandeltes Instrument, Investmentidee, Gesamtportfolio etc. Ziel ist es, eine separate und unabhängige Analyse der Portfoliorisiken zu gewährleisten Sicher, dass diese innerhalb vorgegebener und strenger Grenzen bleiben. Welche Behörden regeln das Unternehmen, OppenheimerFunds, SEC, CFTC und FINRA Sie sind verantwortlich für das Währungsprogramm. Wie beschreiben Sie Ihre Anlagestrategie Die Strategie ist auf zwei Bausteine aufgebaut: 1) Bereitstellung von US-Retail-Anlegern mit Anlage in Fremdwährungen als Anlageklasse mit dem Potenzial, in Zeiten allgemeiner US-Dollar-Abschreibungen zu profitieren, Währungseinkommen mit begrenzter Laufzeit und Kreditrisiko. Die Assetklasse kann als potenzielle Absicherung gegen die inflationären Konsequenzen der US-Dollar-Abschreibung, insbesondere der Inflation, gesehen werden. 2) Aktives Währungsüberlagerungsprogramm: Die qualitative und quantitative Fundamentalmakroanalyse informiert das Währungsauswahlverfahren mit dem Ziel, diese Währungen mit dem höchsten Wertsteigerungspotential zu identifizieren und zu übertreffen, während sie die Exposition gegenüber den Währungen verringert, die erwartet werden, dass sie sich gegenüber den USA verzögern oder abwerten Dollar. Während kleine kurzfristige Währungspositionen regelmäßig umgesetzt werden, behält der Großteil der Strategie nach dem unter Ziffer 1 beschriebenen Ziel ein kurzes US-Dollar / lange Fremdwährung bei. Wie haben Sie Ihre aktuelle FX-Managementstrategie erstellt und entwickelt? Hat es im Laufe der Zeit verändert, und wenn ja, aus welchen Gründen haben Sie beschlossen, es zu ändern Es ist eine Forschung getriebenen Investitionsprozess. Die Forschung basiert auf fundamentaler Makroanalyse der Realwirtschaft sowie globaler Kapitalströme und Zahlungsbilanzen, wobei sowohl qualitative als auch quantitative Methoden angewendet werden. Ziel ist es, die Richtung von Konjunkturzyklen und Kapitalströmen zu identifizieren, die sich auf Wachstum, Inflation, Geld - und Fiskalpolitik konzentrieren. Darüber hinaus entwickeln und analysieren wir systematische Anlagestrategien und überwachen mehrere Anlagethemen, die möglicherweise Devisenmärkte beherrschen, wie Tragstrategien, Preismomentum, Makro-Impuls in Rohstoffpreisen, Zinssätzen, Aktienmärkten und Kreditmärkten. Für die Umsetzung von Handelsideen und die Portfolio-Strukturierung wird ein diskretionäres Verfahren eingesetzt. Diskretion wird verwendet, um sowohl qualitative als auch quantitative Analysen zu kombinieren, sowie Signale und Themen, die aus systematischen Strategien entstehen. Trades werden überwiegend über ausländische T-Bills, Devisentermingeschäfte und Optionen implementiert. Insbesondere werden große Anstrengungen unternommen, um Optionsstrukturen zu schaffen, um flexible, risiko - effiziente und kostengünstige Wege zur Umsetzung von Anlageideen zu finden. Ja, die Strategie hat sich im Laufe der Zeit entwickelt, die Anpassung an einen sich wandelnden Markt. Zunächst folgte die Umsetzung von Handelsideen einem systematischeren Ansatz im Einklang mit ex-ante-definierten Handels - und Portfoliozuteilungsregeln. Später, beispiellose politische Entwicklungen wie die europäische Schuldenkrise, s Makro-Bedingungen. Dies führte dazu, dass wir zu einem diskretionären Investitionsprozess übergehen, der sich darauf konzentriert, neue Währungsmarktrealitäten zusammen mit traditioneller quantitativer Analyse zusammenzuführen. Wie gehen Sie mit Risiken im Unternehmen um? Im Rahmen unserer FX-Strategie baut sich das gesamte Risikocontrolling auf mehreren Komponenten auf: Risikokontrolle einzelner Handelsideen, einzelner Wertpapiere und auf Portfolioebene. Über FX forwards implementierte Trade-Ideen beinhalten Stop-Losses und Trailing-Stops, während Optionsstrukturen ex an-ante mit erwünschten Risikoprofilen konzipiert werden. Delta-Hedging-Programme werden ebenfalls genutzt. Collateral-Anlagen in ausländischen kurzfristigen Fixed-Income-Instrumenten werden innerhalb von Staatsanleihenrenditen getätigt, und in der Regel ein begrenztes Durationsrisiko auf weniger als 1,5 Jahre beibehalten (wie im Prospekt des Fonds angegeben). Weiche und harte monatliche Stop-Verluste sind auch auf der gesamten aktiven Overlay enthalten, so dass wir Schritt zurück und Neubewertung des Marktes mit reduzierten Risiken. Auf Portfolioebene arbeitet das aktive Währungsprogramm mit einem vorgegebenen Tracking-Error-Limit. Könnten Sie uns ein Beispiel für einen Handel, die Sie in der Vergangenheit umgesetzt haben könnte, aber dass Sie nicht wiederholen heute Was ist die wichtigste Lehre, die Sie aus früheren Entscheidungen gelernt Wie deutlich veranschaulicht durch viele Benchmarks der Devisenmanager s Intervention Ankündigung. Im September 2011 verlor der Schweizer Franken 10 gegenüber dem US-Dollar nach der Ankündigung des EURCHF-Bodens um 1,20. Dies sind Beispiele für Währungspositionen, die wir in diesem Zeitraum gehalten haben. Plötzliche Marktneubewertungen aufgrund von unerwarteten Ankündigungen der Politik machten Stop-Losses unwirksam, da die meisten dieser Re-Pricing ohne tatsächlichen Fluss auftraten. Diese Risiken bestehen teilweise noch in vielen Währungen, und wir haben uns durch eine umfassendere Nutzung von Optionsstrategien, die darauf abzielen, das Abwärtsrisiko durch den Bau zu reduzieren, angepasst. Verwenden Sie eine Mischung aus Strategien oder nur eine Wir verwenden eine Mischung von Strategien, kombiniert in einem einzigen Portfolio. Strategien werden nicht isoliert betrachtet, sondern bieten vielmehr die Möglichkeit, mehrere Makro-Themen auszudrücken, von denen wir glauben, dass sie die Währungsmärkte beeinflussen könnten. Wir wählen Währungen, die zu einer Outperformance (Underperform) bereit sind, wenn wir erwarten, dass mehrere fundamentale Kräfte (d. H. Strategien) sie unterstützen (untergraben). Beispiele für grundlegende Kräfte sind die Richtung der Zinssätze, Rohstoffpreise, Aktienmarktmärkte politische Präferenzen für Währungsstärke oder Schwäche usw. Was sind die Marktbedingungen, die Sie für ideal halten und welche sind die größte Herausforderung für die Leistung Ihrer Strategie Entsprechend dem strukturellen Merkmal unseres Fonds (Long Foreign Currencies / Short US Dollars) bieten die verallgemeinerten US-Dollar-Baisse-Märkte ein ideales Umfeld für unsere Anlageklasse und Investitionsmöglichkeiten, um potenziell attraktive Renditen zu erzielen. Umgekehrt bietet ein anhaltender US-Dollar-Bullenmarkt eine weniger attraktive Chance für Deviseninvestitionen. Trotz niedriger Korrelationen tendieren in der Regel Fremdwährungen zu einer positiven (negativen) Tendenzperformance, wie sie durch US-Dollar-Bär (Stier) Zyklen diktiert wird. Entsprechend unserem aktiven Wäh - rungswählverfahren tendiert dies dazu, dass die Perioden, in denen die Volkswirtschaften weltweit divergierende Konjunkturzyklen in Verbindung mit einer divergierenden Geld - und Fiskalpolitik sehen, besser ausfallen. In diesem Umfeld findet die fundamentale Makroanalyse einen fruchtbaren Boden, wo die Währungstrends tendenziell auftauchen und anhalten und mehr Potenzial für gute risikoadjustierte Renditen bieten. Makro-Impuls-Strategien auch dazu neigen, gut in diesem Umfeld. Ebenso sind Strategien, die über die Freisetzung von Wirtschaftsdaten weltweit informiert sind, in diesem Umfeld gut durchzuführen. Wie gut dokumentiert, tragen Übertragungsstrategien tendenziell in niedrig volatilen Märkten besser, aber eine unverzichtbare Voraussetzung ist genug Streuung in der Höhe der Zinssätze auf der ganzen Welt. Niedrige und konvergente Zinssätze schädigen einkommensorientierte Strategien. Hochvolatilitätsmärkte sind nicht unbedingt ein schlechtes Ergebnis, solange volatile Währungsbewegungen auch ein gutes Maß an richtungsweiser Persistenz zeigen. Stattdessen ist das schwierigste Umfeld für Devisenmärkte ein negatives Ergebnis. Sowohl systematische Programme als auch diskretionäre Anlageentscheidungen leiden insbesondere, wenn die Volatilität durch exogene Schocks wie wiederkehrendes Schlagzeilenrisiko und Interventionen der Zentralbanken (aktuell oder mündlich) verursacht wird. Können Sie uns ein Beispiel für eine denkwürdige gewinnende handelnentscheidung geben Die denkwürdigste gewinnende Entscheidungsentscheidung geht zurück zu den letzten Monaten von 2008, vor der Geburt des alleinstehenden Währungsfonds, als wir unser systematisches WährungsÜberlagerungsprogramm in unserem internationalen fixed laufen ließen Einkommensfonds. Anfang September, mehrere Modelle blitzten Warnzeichen einer synchronisierten globalen wirtschaftlichen Abschwächung. Insbesondere der Rollover in wichtigen zyklischen Rohstoffmärkten wie Industriemetall und Energie wies auf einen bärigen Ausblick für Rohstoffwährungen wie den australischen und den kanadischen Dollar hin, während gleichzeitig die potenzielle Outperformance von t für zukünftige Ergebnisse sichtbar wurde. Verwenden Sie Emerging Markets-Währungen und denken Sie, dass einzelne Händler sollten sie verwenden, wenn sie don t haben, um so viel über Liquiditätsfragen Ja, wir sind aktiv in Schwellenländer-Währungen sowie einige kleine Grenzmärkte wie Serbien, Nigeria beteiligt , Uruguay usw. Flüssige Kern-Schwellenländer eignen sich sowohl für systematische als auch für diskretionäre Strategien. Nicht-Kern - und Grenzwährungen sind keine guten Kandidaten für systematische Strategien, sondern sie erfordern eine traditionelle Analyse der Grundlagen und der politischen Ökonomie. Diese Währungen sind in der Regel stark verwaltet und kontrolliert von ihren Zentralbanken, führende empirische Analyse zu falschen Schlussfolgerungen über Preisverhalten, Korrelationen und Sensitivitäten zu Makrovariablen. Unser Anlageuniversum umfasst mehr als 30 Währungen und erhöht unsere Fähigkeit, um diversifizierte Währungseinnahmen zu generieren. Wenn Sie eine Strategie entwickeln, geben Sie den Eingangssignalen, den Ausgangssignalen oder den Geldmanagementsystemen eine höhere Priorität ein. Alle drei erhalten gleiche Aufmerksamkeit, können aber je nach Art der Strategie in verschiedenen Formen entwickelt werden. Systematische Strategieentwürfe werden um ein Gleichgewicht von Ein - und Ausgangssignalen herum aufgebaut, die beide über denselben Satz von Variablen informiert sind, aber die Änderungsrichtung dieser Variablen erfassen. Wie pro diskretionäre Strategien und Handel Ideen, die, die daher mehr Denkprozess erhält. Stattdessen neigen Exit-Signale dazu, mit Stop-out - oder Take-Profit-Regeln übereinzustimmen, die ex-ante beschlossen wurden, und basieren auf Risikomanagement-Überlegungen.
No comments:
Post a Comment