Fsharp Gleitender Durchschnitt
Dokumentation Schlüsselkonzepte Algorithmus Referenz Auswählen von Asset-Daten Algorithmen können Daten für bestimmte Vermögenswerte manuell abonnieren, die sie benötigen, oder verwenden Sie Universen, um Gruppen von Assets auszuwählen, die auf Filterkriterien basieren (z. B. alle Bestände mit Volumina größer als 10Mday). Sehen Sie mehr über Universes hier. Um ein bestimmtes Asset manuell abonnieren zu können, kannst du die AddEquity () aufrufen. AddForex (). AddCfd () und AddOption () Methoden in Ihrer Initialize () Methode. Sie können 500 Minuten Auflösung Datafeeds, 100 Sekunden Auflösungen Feeds und 10 Tick Auflösung Datafeeds abonnieren. QuantConnect unterstützt den internationalen Handel über mehrere Zeitzonen und Märkte hinweg. Märkte werden verwendet, um zwischen denselben Tickern an verschiedenen Börsen zu unterscheiden (z. B. FXCM und Oanda beide bieten EURUSD, haben aber unterschiedliche Tarife). QuantConnect bietet 40TB US-Aktien, US-Optionen, FXCM FX und Oanda FX Daten. Weitere Informationen zu unseren Daten finden Sie in unserer Datenbibliothek. Wir liefern Daten in Tick, Second, Minute, Stunde oder tägliche Auflösungen. Diese werden durch die Auflösung definiert. Wenn es eine Lücke in den Daten gibt (z. B. weil es keine Trades gibt), werden die Daten in jedem Fall immer noch in Ihre Strategie gepumpt. Dieses Verhalten heißt fillForward und standardmäßig auf true. Sie können dies deaktivieren, indem Sie fillForward auf false setzen. Standardmäßig sind die Daten in QuantConnect Split und Dividend rückwärts rechtzeitig angepasst, um reibungslose, kontinuierliche Preise zu erzielen. Dies ermöglicht eine einfache Verwendung für Indikatoren. Einige Algorithmen benötigen rohe oder teilweise angepaßte Preisdaten. Sie können dies mit der Methode SetDataNormalizationMode () steuern. Der DataNormalizationMode enum hat die Werte Adjusted (default), Raw, SplitAdjusted und TotalReturn. Wenn Sie Ihre eigenen benutzerdefinierten Daten youd gerne Backtest gegen, schauen Sie sich die benutzerdefinierten Daten Abschnitt. Einstellen der Aufwärmperiode Oftmals benötigen Algorithmen einige historische Daten, um technische Indikatoren zu generieren oder historische Datenarrays zu bevölkern. Mit den SetWarmUp (TimeSpan Perioden) oder SetWarmUp (int barCount) Methoden können Sie eine Aufwärmphase für Ihren Algorithmus angeben, der Daten vor dem Startdatum pumpt. Während der Aufwärmphase kannst du keinen Handel platzieren. Algorithmen können die bool IsWarmingUp-Eigenschaft verwenden, um festzustellen, ob die Aufwärmphase abgeschlossen ist. Weitere Informationen zur Verwendung von historischen Daten finden Sie im Abschnitt Geschichte. Cash - und Brokerage-Modelle US Equity Brokerage-Konten sind entweder Cash - oder Margin-basierte Konten. Cash-Konten nicht zulassen, Hebel-Handel, während Margin-Konten unterstützen 2-4x Hebel auf Ihren Account-Wert. Sie können Ihren Brokerage-Kontotyp in Ihrer Initialisierung mit SetBrokerageModel (BrokerageName Broker, AccountType-Konto) festlegen. Der BrokerageName enum unterstützt Werte von Default, TradierBrokerage, InteractiveBrokersBrokerage, FxcmBrokerage und OandaBrokerage. Bei der Einstellung des Brokerage-Namens legen wir auch die Handelsgebühren für diese Brokerage fest. Der AccountType enum unterstützt die Werte von Cash und Margin. Bei der Verwendung von Cash Leverage ist standardmäßig deaktiviert und der Barausgleichszeitraum auf 3 Tage festgelegt. Margin-Konten werden sofort abgerechnet und haben eine Hebelwirkung von 2. Margin-Konten mit mehr als 25.000 im Eigenkapital sind für Muster Tage Handel Margin Grenzen geeignet. Dies erhöht die verfügbare Hebelwirkung auf 4x, während der Markt offen ist und 2x über Nacht. Um dieses Verhalten in deinem Algorithmus zu modellieren, musst du deine Sicherheit MarginModel eine PatternDayTradingMarginModel Klasse setzen. Weitere Informationen zu Brokerage-Modellen finden Sie im Bereich Reality Modeling. Umgang mit Daten Die angeforderten Daten werden in Event-Handler übergeben, damit Sie Handelsentscheidungen treffen können. Der primäre Event-Handler, Slice, gruppiert alle Datentypen zu einem einzigen Zeitpunkt in der OnData (Slice Data) Handler zusammen. Slice ist kurz für Zeitscheibe - was ein Stück Zeit und Werte der Daten zu diesem Zeitpunkt darstellt. C und F können Sie auch Daten mit dedizierten Event-Handlern für jeden Datentyp, z. B. OnData (TradeBars-Daten), empfangen. Python unterstützt nur die Slice-Event-Handler. Alle Daten verwenden DataDictionary-Objekte, um Daten nach Symbol zu gruppieren und einen einfachen Zugriff auf Informationen zu ermöglichen. Der Plural des Typs bezeichnet die Sammlung von Objekten, z. B. Das TradeBars DataDictionary besteht aus TradeBar-Objekten. Sie können über den String - oder Symbolwörterbuch-Index auf einzelne Datenpunkte im Wörterbuch zugreifen. Zum Beispiel var ibmTradeBar tradebarsIBM. Time Slices Der Slice Event Handler kombiniert alle Daten zu einer einzigen Methode zusammen. Sie stellt die Daten zu einem Zeitpunkt dar. Das Slice-Objekt enthält viele Helfer für den Zugriff auf Ihre Daten. Die Slice-Objekte gelangen zum OnData (Slice Data) Event-Handler. Das Slice-Objekt ermöglicht den direkten Zugriff über stark typisierte Eigenschaften, einen dynamischen Stringsymbol-Indexer und die stark typisierte DataDictionaryltTgt GetltTgt-Methode. Stark eingegebener Zugriff gibt Ihnen Kompilierzeit Sicherheit, aber dynamische Typen können manchmal die Codierung vereinfachen. Python ist dynamisch typisiert also nicht die Get-Methode. Der primäre Slice-Datenzugriff erfolgt über den Stringsymbol-Indexer. Slice ist die empfohlene Methode für den Datenzugriff in Ihrem Algorithmus. LEAN unterstützt das Backtesting fast jede externe benutzerdefinierte Datenquelle. Um diese Funktion nutzen zu können, müssen Sie die Daten bei der Initialisierung mit AddDataltTgt () hinzufügen und Ihren Algorithmus anweisen, wie Sie Ihre Daten lesen können. Wir bieten Helfer für beliebte Datenquellen wie Quandl, aber wenn Sie Ihren eigenen Format-Server verwenden, müssen Sie einen benutzerdefinierten Typ erstellen. Initialisieren von benutzerdefinierten Daten Bei der Initialisierung muss Ihr Algorithmus AddDataltTgt (String Ticker, Auflösung Auflösung Auflösung.) Verwenden. Dies gibt LEAN die T-Fabrik, um die Objekte zu erstellen, den Namen der Daten und die Auflösung, um die Daten abzufragen, um nach Updates zu suchen. Das Framework prüft auf neue Daten, je nachdem, wie es von der Auflösungsperiode angewiesen wird, d. h. Auflösung. Tick Umfragen ständig, Auflösung. Sekunde Umfragen jede Sekunde und Auflösung. Minute jede Minute. Stündliche und tägliche Auflösungen werden alle 30 Minuten abgefragt, um zu verhindern, dass ein Tag übersprungen wird, wenn die Daten spät ausgegeben wurden. Erstellen und Lesen von benutzerdefinierten Daten Sie müssen einen benutzerdefinierten Typ erstellen, um LEAN anzuweisen, wo Sie Ihre Daten erhalten und wie Sie es lesen können. Wir unterstützen viele verschiedene Datentypen und Formate. Sie können sogar Quellstandorte für Backtesting und Live-Modi ändern. Alle Daten müssen sich von BaseData erstrecken und die Reader - und GetSource-Methoden überschreiben. GetSource weist LEAN an, wo man deine Daten findet. Es muss ein SubscriptionDataSource-Objekt mit der Zeichenfolge Url zurückgeben, um Ihre Daten zu finden, und das Format der Daten (SubscriptionTransportMedium RemoteFile oder Rest). Wenn die Quelle die URL zurückgibt, werden die Daten erneut heruntergeladen. Damit kann LEAN große Dateien zwischenspeichern und bei Bedarf nur neue Daten herunterladen. Dies ermöglicht es Ihnen auch, große Intraday-Daten in kleinere tägliche Dateien zu brechen und den Backtest zu beschleunigen. Bei der Verwendung von SubscriptionTransportMedium. Rest wird die angegebene URL bei jedem Auflösungszeitschritt abgefragt und wird für 1-Datenpunkt als ausreichend angenommen. Dies ist in der Regel für Live-Datenquellen gedacht. Reader nimmt eine Zeile von Daten, die von der Quelle bereitgestellt werden, und analysiert sie in einem Ihrer benutzerdefinierten Objekte (z. B. Yahoo im Code-Snippet). Zusätzlich zur Einstellung Ihrer benutzerdefinierten Eigenschaften sollten Sie auch darauf achten, dass drei erforderliche Eigenschaften gesetzt werden: Symbol - Sollte immer auf config gesetzt werden. Symbol Zeit - Erforderliche Synchronisation von benutzerdefinierten Daten Wert - Erforderlich für Einkauf und Portfolioberechnungen Wenn es nicht nutzbar ist Daten in einer Zeile, Ihre Art sollte null zurückgeben. Securities und Portfolio Algorithmen haben eine Securities-Eigenschaft, die ein Security-Objekt für jedes Asset in Ihrem Algorithmus speichert. Sicherheitsobjekte halten die Modelle (Backtesting-Verhalten) und Eigenschaften eines Assets. Jede Sicherheit kann ganz angepasst werden, um sich so zu verhalten wie du. Securities ist ein DictionaryltSymbol, Securitygt, so dass Sie auf Ihre Security-Objekte mit ihrem Ticker SecuritiesIBM. Price zugreifen können. Sicherheitsobjekte tragen auch alle Modelle für die Erstellung realistischer Backtests. Diese Modelle werden über die öffentlichen Sicherheitseigenschaften eingestellt und dann in LEAN verwendet, um Ihren Backtest-Realismus zu verbessern. Die Portfolio-Eigenschaft ist eine Sammlung von SecurityHolding-Objekten, die einen einfachen Zugriff auf die Holding-Eigenschaften bieten. Die Portfolio-Klasse ist ein DictionaryltSymbol, SecurityHoldinggt, so kann man über den Ticker-Index abrufen: PortfolioIBM. IsLong Detaillierte Informationen zu diesen Klassen finden Sie in der LEAN-Dokumentation. Überprüfen Sie die Sicherheitsklasse (Securities objects) und SecurityHolding (Portfolio Objekte) Klassen. Trading und Orders Key Concepts Algorithmen können eine Bestellung durch Aufruf der entsprechenden Methode in der API. Es wird lange mit einer ordentlichen positiven Zahl bezeichnet und kurz eine negative. LEAN unterstützt keine Absicherung (lang und kurz zur gleichen Zeit). Wenn Sie einen Auftrag erteilen, wird ein OrderTicket generiert, mit dem Sie den Status Ihrer Bestellung aktualisieren, abbrechen oder überprüfen können. Um eine Bestellung zu aktualisieren, kann die Update-Methode im OrderTicket aufgerufen werden. Die Update-Methode enthält ein UpdateOrderFields-Objekt, das festlegt, welche Eigenschaften der Reihenfolge aktualisiert werden sollen. In gleicher Weise können Sie Ihre Bestellung mit der OrderTicket Cancel Methode abbrechen. Die OrderTicket Status-Eigenschaft kann verwendet werden, um festzustellen, ob die Bestellung gefüllt ist. Der OrderStatus enum hat die Werte Eingeschrieben, teilweise filliert, gefüllt, abgebrochen oder ungültig. Set Holdings Helper Häufig können Portfolio-basierte Algorithmen das Portfolio auf Basis der prozentualen Gewichtung festlegen. Wir bieten eine Helfer-Methode, um diese Gewichtung für Sie namens SetHoldings durchzuführen. Bei der Veräußerung bestehender Bestände werden die bestehenden Bestände zuerst verkauft. Dies kann nützlich sein, wenn youre rebalancing zu einem neuen Satz von Aktien. Die Liquidate-Methode kann den gleichen Einfluss erzielen. Liquidate verkauft alle Bestände in Ihrem Portfolio oder nur das Tickersymbol, wenn der Parameter angegeben ist. SetHoldings setzt einen Bruchteil des unvergleichlichen Eigenkapitals. z. B. Wenn Sie 2x verfügbare Hebelwirkung und SetHoldings auf 1.0 haben, verwendet der Algorithmus 1.0 Ihrer verfügbaren Kaufkraft. Um die Kaufkraft in diesem Fall zu maximieren, würden Sie die SetHoldings-Fraktionen insgesamt 2.0 machen. Oft können Sie die Wertpapiere in Ihrem Algorithmus auf der Grundlage von Filterkriterien drehen. Sie können nur Aktien über ihre 200 Tage EMA, oder nur folgen Bestände auf Ihre benutzerdefinierte Liste von Symbolen. Dies ist möglich mit unserer Universumsauswahl-API. Universen sind, wie LEAN Sammlungen von Datenabonnements unter der Motorhaube organisiert. Jede Sicherheit und ihre Daten wird von einem Universum kontrolliert. Wenn keine Universen nach Daten fragen, wird das Asset aus deinem Algorithmus entfernt. Wenn Ihr Algorithmus offene Aufträge oder Bestände in einer Sicherheit hat, werden wir sie nicht aus Ihren Abonnements entfernen. Jeder Algorithmus hat ein verstecktes benutzerdefiniertes Universum. Die Assets in diesem Universum werden durch die AddEquity AddForex Methoden festgelegt. Diese Assets sind fest und werden nie aus deinem Algorithmus entfernt. Universen werden jeden Tag standardmäßig erfrischt, können aber so oft wie nötig aktualisiert werden. Dies wird in der algorithm. UniverseSettings Variable gesteuert, die im Folgenden näher beschrieben wird. Basic Universe API Hinzufügen von Universen Universes werden mit der AddUniverse () - Methode API hinzugefügt. Sie sind eine Art von Datenabonnement, die steuern, welche Abonnements angefordert werden und als solche können Sie benutzerdefinierte Universaldatentypen erstellen. Je nachdem, welche Art von Universum Sie hinzufügen, gibt es viele Helfer-Methoden, um es einfacher zu machen. AddUniverse () - Methoden nehmen Funktionsfilter als Parameter, diese Filter müssen eine Aufzählung von Symbolobjekten zurückgeben. Universe-Einstellungen Wenn Sie kein volles Universum-Objekt übergeben, wird die Eigenschaft UniverseSettings verwendet, um die Leerzeichen auszufüllen. Das Ändern der UniverseSettings-Algorithmus-Eigenschaft kann hilfreich sein, um das Hinzufügen von Universen zu vereinfachen. Universen haben 4 Schlüsseleigenschaften: Einmal wurden Universen im IDictionaryltstring, Universegt UniverseManager gespeichert. Universe-Ereignisse Wenn Universumsinhalte geändert werden (Wertpapiere werden aus dem Algorithmus hinzugefügt oder entfernt) generieren wir ein OnSecuritiesChanged-Ereignis. Dies ermöglicht es Ihrem Algorithmus, die Veränderungen im Universum zu kennen. Das Ereignis vergeht im SecurityChanges-Objekt mit Verweisen auf die hinzugefügten und entfernten Wertpapiere. Coarse Universe Selection Coarse Universe Auswahl ist die eingebaute Universum Daten von QuantConnect zur Verfügung gestellt. Mit Hilfe von Finanzdaten generieren wir für jedes Symbol ein paar Schlüsseleigenschaften und erlauben es Ihnen, das Universum von 16.400 Symbolen zu filtern, um die Symbole zu erhalten, die Ihren Filterkriterien entsprechen. Es verwendet den Typ CoarseFundamental. Grobe Grundlagen haben die folgenden Eigenschaften, die Sie verwenden können, um grobe Filterung durchzuführen. Grobe Filterung erlaubt Ihnen, ein unbegrenztes Universum von Symbolen zu analysieren. Sie sind nur durch praktisches Gedächtnis und Geschwindigkeitsbegrenzungen begrenzt und können schnell aus dem Gedächtnis herauskommen, wenn Sie zu viele Symbole parallel versetzen. Diese Grenzwerte können mit einem Abonnement erhöht werden. Benutzerdefinierte Universumsauswahl Benutzerdefinierte Universen erlauben die Verwendung einer externen Datenquelle als Sicherheitsfilterquelle. Wie normale benutzerdefinierte Datenquellen werden benutzerdefinierte Universen durch die Erweiterung von BaseData bereitgestellt. Mit diesem System können Sie Datenformate definieren, um die Daten zu filtern und auszuwählen. Jede BaseData des benutzerdefinierten Universums ist 1 Zeile der Quelldatei. Die Reader-Methode wird wiederholt aufgerufen, bis die Datenzeit fortschreitet oder das Ende der Datei erreicht ist. Auf diese Weise können Sie den Motor die Universumsdaten zusammen gruppieren und als einzelne Sammlung in die Filterfunktion übergeben. Modelle können verwendet werden, um die Genauigkeit Ihrer Backtesting zu verbessern. Wir stellen grundlegende Standardmodelle zur Verfügung, die davon ausgehen, dass Sie auf hochliquiden Vermögenswerten handeln, aber wenn Sie hohe Mengen oder auf niedrige Volumenvermögen handeln, sollten Sie diese Modelle umso realistischer aktualisieren. Alle Modelle werden auf einer Sicherheitsbasis eingestellt. Um ein Modell zu setzen, holen Sie zuerst das Sicherheitsobjekt und wenden Ihr Modell an. Alle Modelle sollten in Ihrer Initialize () - Methode eingerichtet werden. Brokerage-Modelle Wir bieten eine Verknüpfung, um gemeinsame Modelle und Eigenschaften in Bezug auf jede der Broker, die wir unterstützen. Diese Brokerage-Modelle setzen Gebühren, füllen Modelle, Schlupf-Modelle und Handelsmärkte für eine Vermittlung. Darüber hinaus bestätigen sie, dass es möglich ist, Trades an die Brokerage einzureichen (z. B. die Einreichung von Equity Trades zu einem Forex nur Brokerage). Transaktionsgebührenmodelle Unterstützte Märkte Schlupfmodell Bestätigen Sie Aufträge und Aktualisierungen, bevor sie übergeben werden Standardkontotyp (Margin oder Cash Account) Unterstützung für erweiterte Marktstunden Wie Splits und Dividenden auf offene Orderkarten angewendet werden Default Leverage für Assets Default Settlement Models Das gibt Ihnen enorme Kontrolle über Ihr Algorithmus Verhalten und ermöglichen es Ihnen, praktisch jede Brokerage in der Welt zu modellieren. Brokerage Modelle überschreiben alle anderen Modelle, die Sie für eine Sicherheit setzen können. Transaktionsgebührenmodelle Transaktionsgebührenmodelle legen die Gebühren für jede Bestellung fest. Wir stellen maßgeschneiderte Transaktionsmodelle für alle Makler, aber Sie können auch Ihre eigenen. Wie alle Modelle müssen sie auf Sicherheitssicherheit gesetzt werden. Transaktionsmodelle implementieren die ISecurityTransactionModel-Schnittstelle. Wenn Sie Ihr eigenes Transaktionsmodell implementieren möchten, können Sie mit dem SecurityTransactionModel beginnen und Methoden ändern, die Sie ändern möchten. Schlupfmodelle Schlupf ist der Unterschied im Preis zwischen Ihrem letzten gemeldeten Zitat und dem realen Preis der Handel gefüllt an. Dieser Unterschied und positiv oder negativ, wie manchmal der Preis zu Ihren Gunsten rutschen kann. In volatilen Märkten erleben Sie wahrscheinlich mehr Schlupf. Schlupfmodelle implementieren die ISlippageModel-Schnittstelle. Wir bieten das SpreadSlippageModel für Forex-basierte Wertpapiere und das ConstantSlippageModel für Aktien an. Fortgeschrittene Benutzer mögen ihre eigene volatilitätsbasierte Schlupfmodell umsetzen - die Genauigkeit Ihrer Backtests in volatilen Märkten erhöhen. Füllen Sie Modelle Füllen Modelle geben Ihnen die Kontrolle über Auftrag füllt. Jeder unterstützte Auftragstyp wird über eine dedizierte Methode übergeben und gibt ein OrderEvent-Objekt zurück. OrderEvents werden verwendet, um Informationen über die Bestellung von Teilfüllungen oder Fehlern zu tragen. Die Fill-Modelle implementieren die IFillModel-Schnittstelle. Sie haben folgende Schlüsselmethoden: Wir stellen das ImmediateFillModel zur Verfügung, das Aufträge annimmt und sofort und vollständig ausgefüllt ist. Margin Models Margin Modelle steuern, wie viel Kaufkraft Ihr Algorithmus hat, um Trades zu machen. Margin-Berechnungen können sehr komplex sein und hängt von vielen Faktoren ab, einschließlich der Vermittlung oder sogar Tageszeit. Margin-Modell implementiert die ISecurityMarginModel-Schnittstelle und standardmäßig auf die SecurityMarginModel-Klasse. Wir bieten auch die PatternDayTradingMarginModel zu modellieren Intraday Muster Tag Handel für US-Aktien. Abrechnungsmodelle Nach dem Handel werden Makler in Höhe des Geldes je nach Markt und Kontotyp abgewickelt. Dies wird von unseren Abrechnungsmodellen verwaltet. Der häufigste Abwicklungstyp ist sofort - wo die Gelder sofort zum Handel zur Verfügung stehen. Dies wird durch das ImmediateSettlementModel behandelt. US-Aktienhandel mit Cash-Konten ist in der Regel 3 Tage nach der Transaktion aufgetreten. Dies wird vom DelayedSettlementModel verwaltet. Abrechnungsmodelle implementieren die ISettlementModel-Schnittstelle. Sie können Ihr eigenes Abrechnungsmodell erstellen, indem Sie diese Methode implementieren. Die meisten Benutzer müssen kein eigenes Abrechnungsmodell erstellen und können eine der oben genannten verwenden. Portfolio-Modelle Portfolio-Modelle steuern, wie die Auftragsabwicklung auf Ihr Portfolio angewendet wird. Sie nehmen ein OrderEvent. Security and SecurityPortfolioManager-Objekt und aktualisieren die Bestände, um die neue Endposition wiederzugeben. Sie müssen Ihr Portfolio-Modell nur aktualisieren, wenn Sie einen neuen Asset-Typ erstellen. Portfolio-Modelle implementieren die ISecurityPortfolioModel-Schnittstelle. Volatilitätsmodell Das Volatilitätsmodell ist Eigentum eines Wertpapiers. Genau wie die Volatilität berechnet wird, variiert viel zwischen den Strategien, so dass wir hier einen Override-Punkt gegeben haben. Volatilitätsmodelle werden jedes Mal mit den Daten aktualisiert und werden voraussichtlich sofort aktualisiert. Dies ist in erster Linie für Optionen Backtesting erforderlich. Volatilitätsmodelle implementieren die Schnittstelle IVolatilityModel. Wir setzen auf das NullVolatilityModel, das jederzeit 0 Volatilität zurückgibt. Als Helfer stellen wir auch die RelativeStandardDeviationVolatilityModel zur Verfügung, die die Volatilität anhand der Standardabweichung berechnet. Wir bieten eine leistungsfähige Charting-API, die viele Diagrammtypen erstellen können. Am einfachsten kann es mit einer einzigen Codezeile verwendet werden: Mit diesem Code wird ein Line-Graphen unterhalb deines Strategy Equity Charts hinzugefügt und deine angeforderten Werte werden im Laufe der Zeit angezeigt. Um ein neues Diagramm zu erstellen (neue Registerkarte), solltest du auch den Diagrammnamen in deiner Anforderung angeben: Hinter den Szenen erstellen diese Methoden ein neues Diagrammobjekt und fügen es zu deinem Algorithmus hinzu und füge dann ein neues Serienobjekt zu diesem Diagramm hinzu. Ein Diagramm wird aus vielen Serien gemacht. Sie können auch Ihre Diagramme manuell initialisieren, um mehr Kontrolle über ihr Aussehen und Gefühl zu bekommen. Manuelles Erstellen von Diagrammen In Ihrer Initialisierungsmethode können Sie die AddChart (Chart obj) Methode verwenden, um ein neues Diagramm einzufügen. Jedes Diagrammobjekt hat eine interne Sammlung von Serienobjekten. Bei der Erstellung von Serienobjekten müssen Sie den Namen der Serie, den SeriesType und den Index angeben, auf dem die Serie arbeitet. Der Serienindex bezieht sich auf seine Position im Diagramm - zum Beispiel, wenn alle Serien Index 0 sind, werden sie aufeinander liegen. Wenn jede Serie einen eigenen Index hat, wird es mehrere Mini-Charts nebeneinander haben. Das folgende Bild zeigt ein EMA-Kreuzdiagramm, bei dem beide EMA-Serien auf denselben Index gesetzt sind: Unter Verwendung verschiedener Indizes sieht das Diagramm wie folgt aus: Algorithmen können detailliertere Messaging speichern, um Dateien für die spätere Analyse mit Log (String-Meldung) zu protokollieren. Am Ende des Backtests wird ein Link präsentiert, um deine Ergebnisse zu sehen. Im Live-Handel können Sie mit einem Log-Viewer Protokollergebnisse anzeigen, während der Algorithmus läuft. Wegen der Beschränkungen der Datenverkäufer können Preisinformationen nicht in Protokollen aufgezeichnet werden. Wegen der Beschränkungen des Herstellers sind freie Benutzer auf 10kb Logs pro Backtest, mit einem Maximum von 3Mb pro Tag begrenzt. Benutzer mit einem Abonnement können bis zu 100kb Protokolle pro Backtest generieren. Live Trading Unterstützte Brokerage Unterstützte Brokerage Algorithmen, die in QuantConnect entworfen wurden, können nahtlos live auf Ihren Brokerage-Konten gehandelt werden. Wir senden die Algorithmus-Signale zu Ihrem Brokerage und verfolgen den Algorithmus-Zustand. Algorithmen können sofort zu jeder Tages - und Nachtzeit eingesetzt werden. Ein Abonnement ist für Live-Trading erforderlich, aber viele Brokerage sponsern Live-Trading für ihre Kunden. FXCM ist ein direkter Marktzugang (DMA) Broker mit niedrigen Spreads und Brokerage Gebühren so niedrig wie 0,04 pro Seite für beliebte Währungen. FXCM-Handel ist für Benutzer weltweit verfügbar und Konten können mit 50 USD geöffnet werden. Live-Trading ist für FXCM-Clients kostenlos. Interactive Brokers (IB) ist ein kostengünstiger Anbieter von Handels - und Clearing-Dienstleistungen für Einzelpersonen, Berater, Prop-Handelsgruppen, Broker und Hedgefonds. IBs premier Technologie bietet direkten Zugriff auf Aktien, Optionen, Futures, Forex, Anleihen und Fonds auf über 100 Märkten weltweit von einem einzigen IB Universal Account. Mitglied NYSE, FINRA, SIPC. Abonnement für Live-Handel erforderlich. Durch unsere Integration mit Oanda Brokerage können wir den Nutzern weltweit einen FOREX - oder CFD-Handel anbieten. Konten können mit so wenig wie 1 USD geöffnet werden. Abonnement für Live-Handel erforderlich. Paper Trading US Equity, Forex Sehen Sie, wie Ihr Algorithmus mit unserem Papierhandel Feature durchgeführt hätte. Wir verwenden echte Live-Daten-Feeds, aber eine virtuelle Brokerage, um Ihre Trades auszuführen. Jedes Projekt wird 100.000 virtuelle Währung zugewiesen, um zu verfolgen, wie Sie durchgeführt haben. Wir unterstützen C mit Dokumentation und Tutorials. Wir bieten auch Beta-Unterstützung für Python, F, Visual Basic und Java. Welche Vermittler unterstützen Sie. Wir unterstützen den Live-Handel durch vier Brokerage. Interaktive Broker. Tradier FXCM und Oanda. Wir unterstützen auch den Papierhandel (Vorwärts testen Sie Ihren Algorithmus auf virtuelle Währung. Welche Bibliotheken sind weiß aufgeführt für die Verwendung auf QuantConnect Die folgenden Bibliotheken sind in C verfügbar. Wenn Sie eine Bibliothek haben, die Sie hinzufügen möchten, lassen Sie es uns bitte wissen (supportquantconnect) Accord - Machine Deutsch - Übersetzung - Linguee als Übersetzung von "mathematik" vorschlagen Linguee - Wörterbuch Deutsch - Englisch Andere Leute übersetzten 'Mathematik' so ins Englische: MOV - Numerik - Statistik und Lineare Algebra - NewSo - JSON Serializer RestSharp - REST Wrapper Welche Datenbestände haben Sie haben Wir haben alle US-Aktien tick Daten seit 1998, einschließlich Dividenden und Aktiensplits in den Preis Factored. Diese Daten werden von QuantQuote zur Verfügung gestellt. Wir haben auch 13 wichtigsten Währungen von FXCM zur Verfügung gestellt. Weitere Informationen in den Daten Bibliothek Ich habe einen visuellen Editor, um Algorithmen zu entwerfen Wir haben keine Pläne, einen visuellen Algorithmus-Designer zu bauen. Wir glauben, dass die einzige Möglichkeit, Geld in den Märkten zu machen, mit den leistungsstärksten, flexiblen Tools zur Verfügung steht. Sein dieser Glaube, der viele der Entwurfsentscheidungen hinter QuantConnect angetrieben hat. Wir waren algorithmische Händler selbst seit mehreren Jahren und bauten Hunderte von Algorithmen. Sie reichten von der einfachen, zu unglaublich komplexen. Das gemeinsame Thema unter ihnen war die Notwendigkeit von Flexibilität, die nur durch Rohcode erreicht werden kann. Wie fange ich an, algorithmischen Handel oder Quant Finanzen zu lernen Lernen quantitativen Handel ist besonders schwierig, da es so wenig öffentliche Informationen zur Verfügung steht. Wir haben versucht, dies durch den Aufbau der QuantConnect University (QCU) anzusprechen. Die Universität ist eine Video-Serie, die Sie durch, wie man einen neuen Algorithmus jede Woche Code. Sie können auf die QuantConnect University im Algorithm Terminal zugreifen, indem Sie auf das Schild-Symbol auf der linken Seite klicken. Beispiel AlgorithmenF - Kurzanleitung F - Übersicht F ist eine funktionale Programmiersprache. Um F-Konstrukte zu verstehen, musst du ein paar Zeilen über das Programmierparadigma mit dem Namen Functional Programming lesen. Funktionelle Programmierung behandelt Computerprogramme als mathematische Funktionen. Bei der funktionalen Programmierung liegt der Fokus auf Konstanten und Funktionen anstelle von Variablen und Zuständen. Denn Funktionen und Konstanten sind Dinge, die sich nicht ändern. In der funktionalen Programmierung werden Sie modulare Programme schreiben, d. h. die Programme würden aus Funktionen bestehen, die andere Funktionen als Eingabe nehmen werden. Programme, die in der funktionalen Programmiersprache geschrieben werden, sind in der Regel prägnant. Im Folgenden finden Sie die grundlegenden Informationen über F minus Es wurde 2005 bei Microsoft Research entwickelt. Es ist ein Teil der Microsofts Familie der Sprache. Es ist eine funktionale Programmiersprache. Es basiert auf der funktionalen Programmiersprache OCaml. Features von F Es ist die Umsetzung von OCaml. Es kompiliert CLI (Common Language Interface) Byte Code oder MSIL (Microsoft Intermediate Language), die auf CLR läuft (Common Language Runtime). Es gibt Typ-Inferenz. Es liefert reiche Muster Matching-Konstrukte. Es verfügt über interaktive Scripting - und Debugging-Funktionen. Es erlaubt das Schreiben höherer Ordnung. Es bietet ein gut entwickeltes Objektmodell. F wird normalerweise in den folgenden Bereichen verwendet Minus Making Science Modell Mathematische Problemlösung Künstliche Intelligenz Forschung Arbeit Finanzielle Modellierung Grafik-Design CPU-Design Compiler-Programmierung Telekommunikation Es wird auch in CRUD-Anwendungen, Webseiten, GUI-Spiele und andere Allzweck-Programme verwendet. F - Umgebungseinstellung Die für die F-Programmierung erforderlichen Werkzeuge werden in diesem Kapitel behandelt. Integrierte Entwicklungsumgebung (IDE) für F Microsoft bietet Visual Studio 2013 für F Programmierung. Die kostenlose Visual Studio 2013 Community Edition ist auf der offiziellen Website von Microsofts erhältlich. Visual Studio 2013 Community und oben kommt mit dem Visual F Tools. Die Visual F Tools beinhalten den Kommandozeilen-Compiler (fsc. exe) und F Interactive (fsi. exe). Mit diesen Tools können Sie alle Arten von F-Programmen von einfachen Befehlszeilenanwendungen bis hin zu komplexeren Anwendungen schreiben. Sie können auch F-Quellcode-Dateien mit einem grundlegenden Texteditor wie Notepad schreiben und den Code in Assemblies mit dem Befehlszeilen-Compiler kompilieren. Sie können es von Microsoft Visual Studio herunterladen. Es wird automatisch in Ihrem Gerät installiert. Schreiben von F-Programmen auf Links Bitte besuchen Sie die offizielle Website von Fly, um die Werkzeuge als Debian-Paket zu erhalten oder sie direkt aus der Quelle zu erstellen. Minus fsharp. orguselinux. Versuchen Sie es Option Online Wir haben die F Programmierumgebung online eingerichtet. Sie können ganz einfach kompilieren und ausführen alle verfügbaren Beispiele online zusammen mit tun Ihre Theorie Arbeit. Es gibt Ihnen Vertrauen in das, was Sie lesen und das Ergebnis mit verschiedenen Optionen zu überprüfen. Fühlen Sie sich frei, jedes Beispiel zu modifizieren und es online auszuführen. Versuchen Sie das folgende Beispiel mit der Option Try it auszuprobieren oder verwenden Sie die url minus wwwpileonline. Für die meisten der Beispiele in diesem Tutorial gegeben, finden Sie eine Try it Option in unserem Website Code Abschnitte an der oberen rechten Ecke, die Sie zum Online-Compiler nehmen wird. Also nimm einfach davon und genieße dein Lernen. F - Programmstruktur F ist eine funktionale Programmiersprache. In F funktionieren Funktionen wie Datentypen. Sie können eine Funktion in gleicher Weise wie jede andere Variable deklarieren und verwenden. Im Allgemeinen hat eine F-Anwendung keinen bestimmten Einstiegspunkt. Der Compiler führt alle Top-Level-Anweisungen in der Datei von oben nach unten aus. Um jedoch dem prozeduralen Programmierstil zu folgen, behalten viele Anwendungen eine einzige Top-Level-Anweisung, die die Hauptschleife aufruft. Der folgende Code zeigt ein einfaches F-Programm ab. Wenn du das Programm kompilierst und ausfühst, gibt es die folgende Ausgabe minus Bitte beachten Sie, dass Minus Eine F-Code-Datei mit einer Anzahl von offenen Anweisungen beginnen kann, die zum Importieren von Namespaces verwendet wird. Der Inhalt der Dateien enthält weitere Funktionen, die die Geschäftslogik der Anwendung implementieren. Die Hauptschleife enthält die obersten ausführbaren Anweisungen. F - Grundsyntax Sie haben die Grundstruktur eines F-Programms gesehen, so dass es leicht ist, andere Grundbausteine der F-Programmiersprache zu verstehen. Token in F Ein F Programm besteht aus verschiedenen Token. Ein Token könnte ein Schlüsselwort, eine Kennung, eine Konstante, ein String-Literal oder ein Symbol sein. Wir können F-Token in zwei Typen abgeben. Minus F-Schlüssel Die folgende Tabelle zeigt die Schlüsselwörter und kurze Beschreibungen der Schlüsselwörter. Wir werden die Verwendung dieser Schlüsselwörter in den nachfolgenden Kapiteln besprechen. Kommentare in F F gibt zwei Arten von Kommentaren ab minus Einzeilen-Kommentar beginnt mit Symbol. Mehrzeiliger Kommentar beginnt mit (und endet mit). Ein Grundprogramm und Anwendungseintragspunkt in F Im Allgemeinen haben Sie keinen expliziten Einstiegspunkt für F-Programme. Wenn Sie eine F-Anwendung kompilieren, wird die letzte Datei, die dem Compiler zur Verfügung gestellt wird, zum Einstiegspunkt, und alle Top-Level-Anweisungen in dieser Datei werden von oben nach unten ausgeführt. Ein gut geschriebenes Programm sollte eine einzige Top-Level-Anweisung haben, die die Hauptschleife des Programms aufrufen würde. Ein sehr minimalistisches F-Programm, das Hello World auf dem Bildschirm anzeigen würde. Minus Wenn Sie das Programm kompilieren und ausführen, ergibt sich folgende Ausgabe minus F - Datentypen Die Datentypen in F können wie folgt klassifiziert werden. Integrierte Typen Gleitkommertypen Textarten Andere Typen Integraler Datentyp Die folgende Tabelle enthält die integrierten Datentypen von F. Dies sind grundsätzlich ganzzahlige Datentypen. Wenn Sie das Programm kompilieren und ausführen, ergibt sich die folgende Ausgabe minus F - Variablen Eine Variable ist ein Name, der einem Speicherbereich gegeben wird, den unsere Programme manipulieren können. Jede Variable hat einen bestimmten Typ, der die Größe und das Layout der Variablen speichert, den Bereich der Werte, die in diesem Speicher gespeichert werden können, und die Menge der Operationen, die auf die Variable angewendet werden können. Variable Deklaration in F Das Stichwort wird für Variablendeklaration verwendet Minus Es deklariert eine Variable x und weist den Wert 10 zu. Sie können auch einen Ausdruck einer Variablen minus zuordnen. Das folgende Beispiel veranschaulicht das Konzept minus Wenn Sie das Programm kompilieren und ausführen, ergibt sich die folgende Ausgabe minus Variablen in F sind unveränderlich, dh wenn eine Variable an einen Wert gebunden ist, kann sie nicht verändert sein. Sie sind eigentlich als statische Nur-Lese-Eigenschaften kompiliert. Das folgende Beispiel zeigt dies. Wenn Sie das Programm kompilieren und ausführen, wird folgende Fehlermeldung angezeigt: Minus Variable Definition mit Typdeklaration Eine Variablendefinition teilt dem Compiler mit, wo und wie viel Speicher für die Variable erstellt werden soll. Eine Variablendefinition kann einen Datentyp angeben und enthält eine Liste von einer oder mehreren Variablen dieses Typs, wie im folgenden Beispiel gezeigt. Wenn Sie das Programm kompilieren und ausführen, zeigt es folgende Fehlermeldung ab: Mutable Variablen Zu Zeiten müssen Sie die in einer Variablen gespeicherten Werte ändern. Um festzulegen, dass es eine Änderung des Wertes einer deklarierten und zugeordneten Variablen geben könnte, gibt es im späteren Teil eines Programms F das veränderliche Schlüsselwort. Sie können mit diesem Schlüsselwort veränderliche Variablen deklarieren und zuweisen, deren Werte Sie ändern werden. Mit dem veränderlichen Keyword können Sie Werte in einer veränderlichen Variablen deklarieren und zuweisen. Sie können einen Anfangswert zu einer veränderlichen Variablen mit dem let-Schlüsselwort zuweisen. However, to assign new subsequent value to it, you need to use the larr operator. The following example will clear the concept minus When you compile and execute the program, it yields the following output minus F - Operators An operator is a symbol that tells the compiler to perform specific mathematical or logical manipulations. F is rich in built-in operators and provides the following types of operators minus Arithmetic Operators Comparison Operators Boolean Operators Bitwise Operators Arithmetic Operators The following table shows all the arithmetic operators supported by F language. Assume variable A holds 10 and variable B holds 20 then minus When you compile and execute the program, it yields the following output minus F - Decision Making Decision making structures require that the programmer specify one or more conditions to be evaluated or tested by the program. It should be along with a statement or statements to be executed if the condition is determined to be true, and optionally, other statements to be executed if the condition is determined to be false. Following is the general form of a typical decision making structure found in most of the programming languages minus F programming language provides the following types of decision making statements. if then statement An ifthen statement consists of a Boolean expression followed by one or more statements. ifthen else statement An ifthen statement can be followed by an optional else statement, which executes when the Boolean expression is false. An ifthenelifelse statement allows you to have multiple else branches. nested if statements You can use one if or else if statement inside another if or else if statement(s). F-ifthen Statement An ifthen statement consists of a Boolean expression followed by one or more statements. The ifthen construct in F has the following syntax minus Flow diagram When you compile and execute the program, it yields the following output minus F-ifthenelse Statement An ifthen statement can be followed by an optional else statement, which executes when the Boolean expression is false. The syntax of an ifthenelse statement in F programming language is minus Flow Diagram When you compile and execute the program, it yields the following output minus F-ifthenelifelse Statement An ifthenelifelse construct has multiple else branches. The syntax of an ifthenelifelse statement in F programming language is minus When you compile and execute the program, it yields the following output minus F-Nested if Statements It is always legal in F programming to nest ifthen or ifthenelse statements, which means you can use one if or else if statement inside another if or else if statement(s). When you compile and execute the program, it yields the following output minus F - Loops Programming languages provide various control structures that allow for more complicated execution paths. A loop statement allows us to execute a statement or group of statements multiple times and following is the general form of a loop statement in most of the programming languages minus F provides the following types of loops to handle the looping requirements. for to and for downto expressions The for. to expression is used to iterate in a loop over a range of values of a loop variable. The for downto expression reduces the value of loop variable. for in expression This form of for loop is used to iterate over collections of items i. e. loops over collections and sequences Repeats a statement or group of statements while a given condition is true. It tests the condition before executing the loop body. You can use one or more loop inside any other for or while loop. F-for. to and for. downto Expressions A for loop is a repetition control structure that allows you to efficiently write a loop that needs to execute a specific number of times. The syntax of a forto loop in F programming language is minus The syntax of a fordownto loop in F programming language is minus The following program prints out the numbers 1 - 20 minus When you compile and execute the program, it yields the following output minus The following program counts in reverse and prints out the numbers 20 - 1 minus When you compile and execute the program, it yields the following output minus F-for. in Expressions This looping construct is used to iterate over the matches of a pattern in an enumerable collection such as a range expression, sequence, list, array, or other construct that supports enumeration. The following program illustrates the concept minus When you compile and execute the program, it yields the following output minus F-Whiledo Expressions The while. do expression is used to perform iterative execution while a specified test condition is true. The test-expression is evaluated first if it is true, the body-expression is executed and the test expression is evaluated again. The body-expression must have type unit, i. e. it should not return any value. If the test expression is false, the iteration ends. When you compile and execute the program, it yields the following output minus F-Nested Loops F programming language allows to use one loop inside another loop. The syntax for a nested for loop statement could be as follows minus The syntax for a nested while loop statement could be as follows minus When you compile and execute the program, it yields the following output minus F - Functions In F, functions work like data types. You can declare and use a function in the same way like any other variable. Since functions can be used like any other variables, you can minus Create a function, with a name and associate that name with a type. Assign it a value. Perform some calculation on that value. Pass it as a parameter to another function or sub-routine. Return a function as the result of another function. Defining a Function Functions are defined by using the let keyword. A function definition has the following syntax minus function-name is an identifier that represents the function. parameter-list gives the list of parameters separated by spaces. You can also specify an explicit type for each parameter and if not specified compiler tends to deduce it from the function body (like variables). function-body consists of an expression, or a compound expression consisting of a number of expressions. The final expression in the function body is the return value. return-type is a colon followed by a type and is optional. If the return type is not specified, then the compiler determines it from the final expression in the function body. Parameters of a Function You list the names of parameters right after the function name. You can specify the type of a parameter. The type of the parameter should follow the name of the parameter separated by a colon. If no parameter type is specified, it is inferred by the compiler. For example minus Calling a Function A function is called by specifying the function name followed by a space and then any arguments separated by spaces. For example minus The following programs illustrate the concepts. The following program calculates the volume of a cylinder when the radius and length are given as parameters. When you compile and execute the program, it yields the following output minus The following program returns the larger value of two given parameters minus When you compile and execute the program, it yields the following output minus When you compile and execute the program, it yields the following output minus Recursive Functions Recursive functions are functions that call themselves. You define a recursive using the let rec keyword combination. Syntax for defining a recursive function is minus For example minus The following program returns Fibonacci 1 to 10 minus When you compile and execute the program, it yields the following output minus The following program returns factorial 8 minus When you compile and execute the program, it yields the following output minus Arrow Notations in F F reports about data type in functions and values, using a chained arrow notation. Let us take an example of a function that takes one int input, and returns a string. In arrow notation, it is written as minus Data types are read from left to right. Let us take another hypothetical function that takes two int data inputs and returns a string. F reports the data type using chained arrow notation as minus The return type is represented by the rightmost data type in chained arrow notation. Some more examples minus float rarr float rarr float The function takes two float inputs, returns another float . int rarr string rarr float The function takes an int and a string input, returns a float . Lambda Expressions A lambda expression is an unnamed function. Let us take an example of two functions minus When you compile and execute the program, it yields the following output minus Now in the above example, if instead of defining the function mul, we could have used lambda expressions as minus When you compile and execute the program, it yields the following output minus Function Composition and Pipelining In F, one function can be composed from other functions. The following example shows the composition of a function named f, from two functions function1 and function2 minus When you compile and execute the program, it yields the following output minus F also provides a feature called pipelining of functions. Pipelining allows function calls to be chained together as successive operations. The following example shows that minus When you compile and execute the program, it yields the following output minus F - Strings In F, the string type represents immutable text as a sequence of Unicode characters. String Literals String literals are delimited by the quotation mark () character. Some special characters are there for special uses like newline, tab, etc. They are encoded using backslash () character. The backslash character and the related character make the escape sequence. The following table shows the escape sequence supported by F. Ways of lgnoring the Escape Sequence The following two ways makes the compiler ignore the escape sequence minus Using the symbol. Enclosing the string in triple quotes. When a string literal is preceded by the symbol, it is called a verbatim string. In that way, all escape sequences in the string are ignored, except that two quotation mark characters are interpreted as one quotation mark character. When a string is enclosed by triple quotes, then also all escape sequences are ignored, including double quotation mark characters. The following example demonstrates this technique showing how to work with XML or other structures that include embedded quotation marks minus When you compile and execute the program, it yields the following output minus Basic Operators on Strings The following table shows the basic operations on strings minus collect. (char rarr string) rarr string rarr string Creates a new string whose characters are the results of applying a specified function to each of the characters of the input string and concatenating the resulting strings. concat. string rarr seqltstringgt rarr string Returns a new string made by concatenating the given strings with a separator. exists. (char rarr bool) rarr string rarr bool Tests if any character of the string satisfies the given predicate. forall. (char rarr bool) rarr string rarr bool Tests if all characters in the string satisfy the given predicate. init. int rarr (int rarr string) rarr string Creates a new string whose characters are the results of applying a specified function to each index and concatenating the resulting strings. iter. (char rarr unit) rarr string rarr unit Applies a specified function to each character in the string. iteri. (int rarr char rarr unit) rarr string rarr unit Applies a specified function to the index of each character in the string and the character itself. length. string rarr int Returns the length of the string. map. (char rarr char) rarr string rarr string Creates a new string whose characters are the results of applying a specified function to each of the characters of the input string. mapi. (int rarr char rarr char) rarr string rarr string Creates a new string whose characters are the results of applying a specified function to each character and index of the input string. replicate. int rarr string rarr string Returns a string by concatenating a specified number of instances of a string. The following examples demonstrate the uses of some of the above functionalities minus The String. collect function builds a new string whose characters are the results of applying a specified function to each of the characters of the input string and concatenating the resulting strings. When you compile and execute the program, it yields the following output minus The String. concat function concatenates a given sequence of strings with a separator and returns a new string. When you compile and execute the program, it yields the following output minus The String. replicate method returns a string by concatenating a specified number of instances of a string. When you compile and execute the program, it yields the following output minus F - Options The option type in F is used in calculations when there may or may not exist a value for a variable or function. Option types are used for representing optional values in calculations. They can have two possible values minus Some(x) or None . For example, a function performing a division will return a value in normal situation, but will throw exceptions in case of a zero denominator. Using options here will help to indicate whether the function has succeeded or failed. An option has an underlying type and can hold a value of that type, or it might not have a value. Using Options Let us take the example of division function. The following program explains this minus Let us write a function div, and send two arguments to it 20 and 5 minus When you compile and execute the program, it yields the following output minus If the second argument is zero, then the program throws an exception minus When you compile and execute the program, it yields the following output minus In such cases, we can use option types to return Some (value) when the operation is successful or None if the operation fails. The following example demonstrates the use of options minus When you compile and execute the program, it yields the following output minus Option Properties and Methods The option type supports the following properties and methods minus F - Tuples F - Records F - Lists F - Sequences F - Discriminated Unions F - Mutable Data F - Arrays F - Mutable Lists F - Mutable Dictionary Initializes a new instance of the Dictionary(TKey, TValue) class that is empty, has the default initial capacity, and uses the default equality comparer for the key type. Dictionary(TKey, TValue)(IDictionary(TKey, TValue)) Initializes a new instance of the Dictionary(TKey, TValue) class that contains elements copied from the specified IDictionary(TKey, TValue) and uses the default equality comparer for the key type. Initializes a new instance of the Dictionary(TKey, TValue) class that is empty, has the default initial capacity, and uses the specified IEqualityComparer(T). Initializes a new instance of the Dictionary(TKey, TValue) class that is empty, has the specified initial capacity, and uses the default equality comparer for the key type. Dictionary(TKey, TValue)(IDictionary(TKey, TValue), IEqualityComparer(TKey)) Initializes a new instance of the Dictionary(TKey, TValue) class that contains elements copied from the specified IDictionary(TKey, TValue) and uses the specified IEqualityComparer(T). Dictionary(TKey, TValue)(Int32, IEqualityComparer(TKey)) Initializes a new instance of the Dictionary(TKey, TValue) class that is empty, has the specified initial capacity, and uses the specified IEqualityComparer(T). Dictionary(TKey, TValue)(SerializationInfo, StreamingContext) Initializes a new instance of the ictionary(TKey, TValue) class with serialized data. F - Basic IO F - Generics F - Delegates F - Enumerations F - Pattern Matching F - Exception Handling F - Classes F - Structures F - Operator Overloading F - Inheritance F - Interfaces F - Events F - Modules F - Namespaces
Comments
Post a Comment