Thursday 16 November 2017

Python Forex Bibliothek


Python Algorithmic Trading-Bibliothek PyAlgoTrade ist eine Python-Algorithmic Trading-Bibliothek mit Schwerpunkt auf Backtesting und Unterstützung für Papier-Trading und Live-Trading. Lets sagen, Sie haben eine Idee für eine Handelsstrategie und youd wie es mit historischen Daten zu bewerten und sehen, wie es sich verhält. PyAlgoTrade ermöglicht es Ihnen, dies mit minimalem Aufwand zu tun. Hauptmerkmale Vollständig dokumentiert. Ereignisgesteuert . Unterstützt Markt-, Limit-, Stop - und StopLimit-Aufträge. Unterstützt Yahoo Finanzen, Google Finanzen und NinjaTrader CSV-Dateien. Unterstützt alle Arten von Zeitreihen-Daten im CSV-Format, zB Quandl. Bitcoin-Trading-Unterstützung durch Bitstamp. Technische Indikatoren und Filter wie SMA, WMA, EMA, RSI, Bollinger Bands, Hurst Exponent und andere. Leistungsmesswerte wie Sharpe-Ratio und Drawdown-Analyse. Handling Twitter-Ereignisse in Echtzeit. Ereigniserfassung. TA-Lib-Integration. Sehr einfach skalierbar horizontal, das heißt, mit einem oder mehreren Computern zu Backtest einer Strategie. PyAlgoTrade ist kostenlos, Open Source, und es ist unter der Apache Lizenz lizenziert, Version 2.0.Current Version: 0.18 (17Aug2016) Neue Funktionen Returns Analyzer speichert jetzt zusammen mit jedem Sample. Danke MatthiasKauer für die Umsetzung. Quandl-Tool zum Erstellen von Feed unterstützt die Zuordnung von Spaltennamen. Bar-Feeds unterstützen jetzt auch zusätzliche Spalten außer OHLC-Werten. Dem Plotter wurden BuildFigureAndSubplots hinzugefügt, um die Subplots zusammen mit der Figur zurückzugeben. Danke Carlos Tse für die Umsetzung dieses. Rückgabewerte Strategieanalysator unterstützt jetzt das Übergeben des maxLen für die dataseries. Danke physicsd00d für die Umsetzung dieses. Fester Nullteilungsfehler im StochasticOscillator. Vielen Dank Blake Jennings für die Meldung dieses. Bei der Berechnung der Lautstärke für ein gegebenes Instrument wurde ein Rundungsfehler in der Standard-Füllstrategie behoben. Danke Markus Trenkwalder für die Meldung. War nicht ordnungsgemäß in Backtesting-Broker, wenn Aktien nicht Ganzzahlen sind. Zusätzliche Ausnahmebehandlung für das Optimierungsmodul. Vielen Dank Sergey Cheparev für die Meldung dieses. Bei der Verwendung von angepassten Werten wurde ein Fehler in der VWAP-Berechnung behoben. Eine Möglichkeit hinzugefügt, den dataseries. DEFAULTMAXLEN-Wert zu ändern. Fehlende Rückgabe in plotter. Series. getValues ​​hinzugefügt. Danke physicsd00d für diese Meldung. Optimizer. local wurde manchmal blockiert und wartete, bis die untergeordneten Prozesse abgeschlossen wurden. Brechende Änderungen Entfernt Xignite Unterstützung (xignite). Entfernter Code, der Warnungen in früheren Versionen ausgab. Version 0.17 (10May2015) Neue Features Hurst Exponent technische Indikator (pyalgotrade. technical. hurst. HurstExponent). Zusätzliche Unterstützung für Slippage-Modelle (pyalgotrade. broker. slippage) einschließlich eines VolumeShareSlippage-Modells wie das in Zipline (githubquantopianzipline). BitStamp-Feed automatisch wiederherstellen, wenn die Verbindung geschlossen wird. Schließen Sie die Verbindungen ASAP, um das Auslaufen von Dateideskriptoren zu vermeiden, wenn GC verzögert wird. Danke Tibor Kiss für die Meldung und Festsetzung dieses. Fehler beim Platzieren von Market-On-Close-Aufträgen beim Backtesting mit Intraday-Daten. Im Moment wird dies nicht unterstützt. Bitstamp Backtesting Broker ermöglicht Trades unter 5. Aktualisierte Standard-Bitstamp-Gebühr auf 0,25. Ein Fehler wurde behoben, wenn lokalisierte Intraday-Datagramme wiederholt werden. Brechen von Änderungen Backtesting Broker Füllstrategien in pyalgotrade. broker. fillstrategy Modul verschoben. Version 0.16 (31Aug2014) Neue Funktionen Zusätzliche Unterstützung für Live-Handel Bitcoin-Strategien durch Bitstamp. Beispiel hier. Unterstützung für das Laden Bitcoin Charts historische Trades CSV-Dateien. Unterstützung für das Herunterladen und Laden von Bars von Quandl. Unterstützung für Google Finance CSV-Dateien. Vielen Dank Maciej ok für die Umsetzung dieses. Es wurde ein Fehler in pyalgotrade. tools. resample und pyalgotrade. dataseries. resampled. ResampledBarDataSeries behoben, wenn Gruppierungsfrequenzen größer als 1 Tag verwendet wurden. Bitstamp BacktestingBroker und PaperTradingBroker werden nun keine Bestellungen ohne genügend Bargeld oder BTC erteilen. In pyalgotrade. bitstamp. broker. PaperTradingBroker wurde ein Rundungsfehler behoben. Ein Fehler in BarFeed. getCurrentDateTime wurde behoben. Fixed ein Fehler in pyalgotrade. technical. cross. crossabove und pyalgotrade. technical. cross. crossbelow. Brechen von Änderungen Die Google App Engine-Unterstützung wurde entfernt. Pyalgotrade. bitstamp. client. Client wurde entfernt und die Funktionalität ist jetzt in pyalgotrade. bitstamp. barfeed. LiveTradeFeed enthalten. Strategy. onOrderUpdated ruft nun alle Auftragsereignisse auf, einschließlich der mit der Positionsschnittstelle generierten. Version 0.15 (30Mar2014) Neue Funktionen Xignite Unterstützung für Echtzeit-Balken. Beispiel hier. Unterstützung für papertrading Bitcoin Strategien durch Bitstamp. Beispiel hier. Teilbefüllung für Aufträge. MACD technische Indikator (pyalgotrade. technical. macd. MACD). Durchschnittliche True Range (ATR) technische Indikator (pyalgotrade. technical. atr. ATR). LeastSquaresRegression-Filter (pyalgotrade. technical. linreg. LeastSquaresRegression). Abhängig von SciPy. Die MarketOrder-Methode wurde der Strategieklasse hinzugefügt, um Marktaufträge zu platzieren. Zusätzliche limitOrder-Methode für die Strategieklasse, um Limitorder zu platzieren. Die Methode stopOrder wurde hinzugefügt, um Stop-Befehle zu platzieren. Die Methode stopLimitOrder wurde hinzugefügt, um Stop-Limit-Aufträge zu platzieren. Logging-Methoden der Strategieklasse hinzugefügt. Pyalgotrade. barfeed. yahoofeed. Feed unterstützt jetzt wöchentliche Bars. Pyalgotrade. tools. resample und pyalgotrade. dataseries. resampled. ResampledBarDataSeries unterstützen nun jede Gruppierungsfrequenz. Ein Fehler in pyalgotrade. technical. roc. RateOfChange wurde behoben, wenn es keine Änderung gab und der aktuelle Wert 0 war. Pyalgotrade. tools. resample und pyalgotrade. dataseries. resampled. ResampledBarDataSeries setzen nun die datetime auf die des Beginns der Leiste. Brechen von Änderungen MtGox-Unterstützung wurde entfernt. Die Reihenfolge der Parameter stopPrice und limitsPrice wurde in Strategy. enterLongStopLimit, Strategy. enterShortStopLimit und Position. exit geändert. Unterstützung für Auto-Exit auf Sitzung zu schließen wurde entfernt. Pyalgotrade. technical. trend. Slope wurde in die pyalgotrade. technical. linreg Paket verschoben. Einige abgelehnte Methoden aus DataSeries wurden entfernt (appendValue, appendValueWithDatetime, getValue, getValues, getValuesAbsolute, getFirstValidPos und getLength). Fehler beim Wiederholen von Aufträgen. Fehler beim Ändern von Reihenfolgeigenschaften, die während der Initialisierung festgelegt werden. Der letzte Parameter zu broker. backtesting. FillStrategy. fillStopLimitOrder wurde entfernt. FillStrategy wird nun alle Details für die Auftragsbefüllung behandeln, um eine bessere Anpassung zu ermöglichen. Andere Änderungen setUseAdjustedValues ​​sollten jetzt statt der Broker auf die Strategie aufgerufen werden. Position. getUnrealizedNetProfit und Position. getUnrealizedReturn wird automatisch den letzten verfügbaren Preis verwenden, wenn None angegeben ist. Daily Bars von Yahoo und NinjaTrader CSV-Feeds werden mit der Zeit auf 00:00:00 gesetzt geladen. Alle Klassen erben nun das Objekt. Der Backtesting-Broker ignoriert volumeLimit bei der Verwendung von Handelsbars. Der Backtesting Broker gibt nun das Stornierungsereignis ab, wenn eine Stornierung beantragt wird, nicht in der nächsten Bar. Version 0.14 (12Oct2013) Laden Sie hier herunter: PyAlgoTrade-0.14.tar. gz Event-Profiler inspiriert in QSTK (pyalgotrade. eventprofiler). Beispiel hier. Kumulierte Rückkehrfilter (pyalgotrade. technical. cumret. CumulativeReturn). Z-Score Filter (pyalgotrade. technical. stats. ZScore). Zusätzliche Unterstützung für andere Arten von Zeitreihen-Daten im CSV-Format (pyalgotrade. feed. csvfeed. Feed). Beispiel hier. Bei der Verwendung des Optimierungsprogramms wurde ein Fehler mit Loggern behoben: githubgbecedpyalgotradeissues10. Ein Fehler im Trades Analyzer wurde behoben. Proportionale Provisionen beim Umschalten von lang nach kurz oder umgekehrt wurden nicht richtig berechnet. Danke Sam Jackson für die Meldung dieses und die Bereitstellung eines Patches. Ein Fehler wurde behoben, wenn Sie das Optimierungsprogramm und einen Broker mit angepassten Werten verwenden. Verringerte Auftragskörnigkeit in Google App Engine, um die Leistung zu verbessern. Broker. backtesting. FillStrategy wurde geändert, um eine broker. backtesting. FillInfo-Instanz zurückzugeben. Broker. backtesting. DefaultStrategy nimmt jetzt das Leistenvolumen in Betracht, um einen Auftrag zu füllen. Pyalgotrade. barfeed. BarFeed wurde umbenannt in pyalgotrade. barfeed. BaseBarFeed und pyalgotrade. barfeed. BasicBarFeed wurde entfernt. Event-Handler für pyalgotrade. barfeed. BaseBarFeed. getNewBarsEvent sollte zwei Parameter erwarten: datetime und bars. Diese Änderung kann bestehende Strategien brechen, die manuell über BarFeed-Ereignisse abonniert wurden. Version 0.13 (26Aug2013) Laden Sie hier herunter: PyAlgoTrade-0.13.tar. gz Unterstützung für die Verarbeitung von Echtzeit-Twitter-Events (pyalgotrade. twitter. feed) hinzugefügt. Beispiel hier. Zusätzliche Unterstützung für Backtesting und papertrading Bitcoin Strategien durch MtGox. Danke Jeremi Joslin für die Hilfe bei der Prüfung. Beispiel hier. Bar-Feeds unterstützen jetzt die Einstellung der maximalen Anzahl von Werten für die BarDataSeries zu halten, falls Sie nicht möchten, dass sie zu viel wachsen. Pyalgotrade. dataseries. SequenceDataSeries und DataSeries Filter (alles im pyalgotrade. technical Paket) jetzt unterstützen Einstellung der maximalen Anzahl von Werten zu halten, falls Sie nicht wollen, dass sie zu viel wachsen. StrategyPlotter ruft nun autofmtxdate auf die Figur auf, bevor er sie plottet. Danke Thomas Jung für den Vorschlag. StrategyPlotter unterstützt jetzt nur den Aufbau der Figur, so dass Sie sie anpassen können (StrategyPlotter. buildFigure). Bar. Bar wurde optimiert, um weniger Speicher zu verwenden. Danke Tibor Kiss für den Vorschlag. Werkzeuge hinzugefügt, um BarFeeds auf verschiedene Frequenzen zurückzuspielen und zu verwenden (pyalgotrade. tools. resample und pyalgotrade. barfeed. csvfeed. GenericBarFeed). Hinzugefügt ein BarDataSeries, die eine andere BarDataSeries auf eine höhere Frequenz (pyalgotrade. dataseries. resampled. ResampledBarDataSeries) erneut ausführen können. Hohe und niedrige technische Indikatoren (pyalgotrade. technical. highlow. Hoch und pyalgotrade. technical. highlow. Low). Pyalgotrade. technical. roc. RateOfChange Indikator wurde geändert und jetzt multipliziert es nicht mit 100 die Ergebnisse. Das Paket pyalgotrade. technical. trend hängt nicht mehr von SciPy ab. Die Strategieklasse wurde in BacktestingStrategy umbenannt (der alte Name wird in dieser Version noch unterstützt). Max. Die Drawdown-Dauer wird nun als datetime. timedelta-Objekt zurückgegeben. Sharpe Ratio Analysator wurde modifiziert, um den Intraday-Handel besser zu unterstützen. Der Parameter tradingPeriods wird nicht mehr unterstützt. Um die Exit-Order für eine Position erneut zu übermitteln, muss die orignal exit-Order zunächst mit cancelExit abgebrochen werden. DataSeries - und DataSeries-Filter (alles im pyalgotrade. technical-Paket) wurden auf ein ereignisbasiertes Modell umgestellt. BarValueDataSeries und BarDataSeries wurden von pyalgotrade. dataseries in pyalgotrade. bards. dataseries verschoben. Pyalgotrade. technical. cross. CrossAbove und pyalgotrade. technical. cross. CrossBelow wurden als Funktionen umgestaltet (pyalgotrade. technical. cross. crossabove und pyalgotrade. technical. cross. crossbelow). Sie sind keine DataSeries mehr. Pyalgotrade. technical. DataSeriesFilter wurde entfernt. DataSeries-Filter müssen nun mit den Methoden pyalgotrade. technical. EventWindow und pyalgotrade. technical. EventBasedFilter modelliert werden. Pyalgotrade. dataseries. SequenceDataSeries-Konstruktor akzeptiert Werte und Datumsangaben nicht mehr. Pyalgotrade. dataseries. datetimealigned wurde auf pyalgotrade. dataseries. aligned. datetimequared verschoben. Version 0.12 (20Apr2013) Downloaden Sie hier: PyAlgoTrade-0.12.tar. gz pyalgotrade. optimizer hat jetzt Arbeiternamen, die jedem Arbeitnehmer zugeordnet sind. Danke Matthieu Locas für die Umsetzung dieses. Mit StrategyPlotter können nun benutzerdefinierte Funktionen erstellt werden. Optimierungen in verschiedenen Bereichen. Standardabweichung Technische Indikator (pyalgotrade. technical. stats. StdDev). Bollinger Bands technische Indikator (pyalgotrade. technical. bollinger. BollingerBands). Beispiel hier. Ein Fehler in EMA-Technik wurde behoben, der zu max. Rekursionsgrenzfehler. Ein Fehler in der Strategieklasse wurde behoben, der einen großen Einfluss auf die Ausführungszeit hatte. Buchhaltung für aktive Positionen und Aufträge wurde nicht ordnungsgemäß behandelt. Version 0.11 (17Mar2013) Hier downloaden: PyAlgoTrade-0.11.tar. gz DataSeries stellen nun die jedem Wert (getDateTimes) zugeordnete Datetime zur Verfügung, so dass es einfacher ist, mit matplotlib zu zeichnen. Funktion zum Ausrichten von zwei DataSeries in Bezug auf die Zeit (pyalgotrade. dataseries. datetimealigned). VWAP technische Indikator (pyalgotrade. technical. vwap. VWAP). Line Break Technische Indikator (pyalgotrade. technical. linebreak. LineBreak). Methoden zur Berechnung nicht realisierter Renditen und PnL in Positionen (getUnrealizedReturn und getUnrealizedNetProfit). Bugfix: Eine IndexError-Exception wurde in plotter. py beim Plotten vieler Dataseries im selben Subplot erzeugt. Version 0.10 (11Jan2013) Laden Sie hier herunter: PyAlgoTrade-0.10.tar. gz Sharpe Ratio Analyse (pyalgotrade. stratanalyzer. sharpe. SharpeRatio). Max. Drawdown und max. Auswertung (pyalgotrade. stratanalyzer. drawdown. DrawDown). Dank Sedov Anton für die Meldung eines Bugs in der frühen Implementierung. Rückkehr Analyse (pyalgotrade. stratanalyzer. returns. Returns). Trades-Analyse (pyalgotrade. stratanalyzer. trades. Trades). Unterstützung für Bar Zeitzonen (pyalgotrade. marketsession). Unterstützung für Sequenz wie Operationen in dataseries (getitem und len. GetValue und getValueAbsolute wird bald veraltet). Unterstützung für Mapping wie Operationen in bar feeds (getitem und enthält). Unterstützung für Mapping wie Operationen in bar. Bars (getitem und enthält). Google App Engine: Unterstützung für Wiederholungsstrategien hinzugefügt. Broker. backtesting. Broker. getValue benötigt die Balken nicht mehr als Parameter. Es wird die aus dem Futter zu nehmen. Fehlerbehebung: broker. backtesting. getActiveOrders hat nicht alle Aufträge während der Ereignisabwicklung zurückgegeben. Bug fix: Fixed gibt Berechnungen für Short-Positionen zurück. Dank John Fawcett für die Erklärung. Fehlerkorrektur: Ein Fehler in der Strategieklasse und der Backtesting-Broker wurde behoben, wenn mehrere Instrumente behandelt wurden. War das Fehlen von Stäben nicht angemessen. Danke Fabian Braennstroem für die Meldung. Bug fix: Zusätzliche Dataseries, die dem Portfolio-Subplot hinzugefügt wurden, wurden nicht angezeigt. Dank Sedov Anton für die Meldung dieses. Bug fix: Zusätzliche Subplots (die mit getOrCreateSubplot erstellt wurden) werden nun als erstellt angelegt. Vielen Dank Sedov Anton für die Meldung dieses und schlägt die Korrektur. Version 0.9 (1Sep2012) Hier downloaden: PyAlgoTrade-0.9.tar. gz Eine Methode zur Strategieklasse hinzugefügt, um benachrichtigt zu werden, wenn ein Auftrag aktualisiert wird (onOrderUpdated). Diese wird nur aufgerufen, wenn die Order direkt über die Broker-Schnittstelle platziert wurde. Bugfix: Eine KeyError-Ausnahme wurde in der Strategieklasse angelegt, wenn Aufträge direkt über die Broker-Schnittstelle vergeben werden. Vielen Dank Femto Trader für die Meldung dieses. Version 0.8 (28Aug2012) Hier downloaden: PyAlgoTrade-0.8.tar. gz StrategyPlotter stellt nun jedes Instrument in einem separaten Subplot dar. GetMainSubplot wurde durch getIntrumentSubplot ersetzt. Strategy. exitPosition ermöglicht das Setzen der Exit-Order als GTC oder nicht oder die Übereinstimmung der Eintragsreihenfolge (Default). Bug fix: War ein AssertionError in der Strategie-Klasse, wenn Overwritting Ausfahrt Aufträge mit neuen schlagen. Bug fix: Set-on-Session-schließen Bestellungen als AGB. Version 0.7 (22Aug2012) Laden Sie hier herunter: PyAlgoTrade-0.7.tar. gz Backtesting-Broker ermöglicht jetzt die Anpassung von Abrechnungsstrategien. Unterstützung hinzugefügt Stop-Aufträge. Danke Tibor Kiss für das Hinzufügen. Unterstützung für StopLimit-Aufträge hinzugefügt. Danke Tibor Kiss für das Hinzufügen. TA-Lib-Integration (pyalgotrade. talibext. indicator). Offizielle Unterstützung für NinjaTrader generierte CSV-Dateien (pyalgotrade. barfeed. ninjatraderfeed. Feed). Csvfeed. NinjaTraderRowParser wurde entfernt. Pyalgotrade. barfeed. csvfeed. YahooFeed wurde auf pyalgotrade. barfeed. yahoofeed. Feed verschoben. Pyalgotrade. barfeed. csvfeed. YahooFeed funktioniert noch, aber es wird bald entfernt werden. Große Änderungen an der Broker-Schnittstelle, um andere Broker-Typen zu unterstützen. Diese Änderungen sind nicht rückwärtskompatibel. Danke Tibor Kiss für das Hinzufügen. Bugfix: War nicht Ehrung der guten bis storniert Attribut bei der Einreichung von Ausstiegsaufträgen aus dem Inneren der Position Klassen. Bug fix: War nicht immer bessere Preise (wenn verfügbar) für Limit-Aufträge. Danke Tibor Kiss für die Meldung. Version 0.6 (26Jun2012) Hier downloaden: PyAlgoTrade-0.6.tar. gz Erste Unterstützung für das NinjaTrader-Exportformat (csvfeed. NinjaTraderRowParser). Pyalgotrade. optimizer. server. serve gibt nun die besten gefundenen Ergebnisse zurück. Behebt das Modul "optimizer. local", wenn es unter Windows ausgeführt wird. Behebt das Modul optimizer. local. Die Steckdose, die verwendet wurde, um einen zufälligen Port zu finden, wurde nicht geschlossen. Danke Tibor Kiss für die Festsetzung dieses. Behebt Plotter. py. Der verwendete Marker-Typ wurde in einigen matplotlib-Versionen nicht unterstützt. Danke Tibor Kiss für die Festsetzung dieses. Version 0.5 (21Jun2012) Hier downloaden: PyAlgoTrade-0.5.tar. gz Unterstützung für Optimierungsstrategien in Google App Engine hinzugefügt. StrategyPlotter unterstützt das Plotten einer Reihe. Stochastischer Oszillator unterstützt die eingestellten Werte. Verbessertes Optimierungsmodul zur Verteilung von Strategieausführungen in Chunks. Version 0.4 (8May2012) Downloaden Sie hier: PyAlgoTrade-0.4.tar. gz Addierte Rate der Änderung technischen Indikator. Added stochastischen Oszillator technische Indikator. Fehlerprüfung zu yahoofinance. getdailycsv hinzugefügt. Normalisiert einige Methodennamen in StrategyPlotter. Version 0.3 (22Apr2012) Hier downloaden: PyAlgoTrade-0.3.tar. gz Unterstützung von Plotterstrategien (StrategyPlotter). Version 0.2 (14Apr2012) Hier downloaden: PyAlgoTrade-0.2.tar. gz Zusätzliche CrossAbove und CrossBelow technische Indikatoren. Unterstützung für Limit-Aufträge wurde hinzugefügt. Ein Fehler wurde behoben, wenn eine Position festgelegt wurde, um den Sitzungsabschluss zu beenden, aber der Eingabeauftrag wurde nicht ausgefüllt. Version 0.1 (27Mar2012) OANDA API Trading Utilities in Python Beispielprogramme, die mit dem OANDA API durch Python2.7 handeln Dieses Repo enthält ein Handelsprogramm, das Trades ausführt, wenn WMA und SMA kreuzen. Es gibt auch eine Akte, die einige extrem einfache Funktionen enthält, die einen Handel oder einen Auftrag öffnen. Klonen Sie dieses Repo an den Speicherort Ihrer Wahl Ändern Sie api - ror. py, um das zu tun, was Sie wollen, oder führen Sie einfach api-trade-averages. py mit Python2.7 aus. Um das Skript auszuführen, geben Sie bitte die Anzahl der Kerzen an, WMA und SMA, die Kerzengranularität, das Instrument und Ihre Rechnung. Dieses Skript verwendet die Sandbox-Umgebung, also benutzen Sie bitte Sandbox accountId. Python api-trade-averages. py 10 S5 EURUSD Dieses Programm soll OANDA API Funktionalität demonstrieren und ist nicht als Anlageberatung oder als Lösung zum Kauf oder Verkauf von Anlageprodukten gedacht.

No comments:

Post a Comment