Find Jobs
Hire Freelancers

(Only german) Erklären/Finden von bester Lösung für thread/async Problem.

€50-100 EUR

Ditutup
Disiarkan lebih dari 3 tahun yang lalu

€50-100 EUR

Dibayar semasa penghantaran
Es geht um ein Tradingbot-system, welches ich selber in Python 3.8 schreibe. Es soll in erster Linie auf Debian 10 laufen, aber auch windows würde ich es zu testzwecken und gerne lauffähig haben. Hier brauche ich professionelle Ratschläge mit welchen Mitteln das folgende am besten umzusetzen wäre (threads/async/was anderes?). Ich möchte unterschiedliche Tradingstrategien entwickeln und gleichzeitg laufen lassen. Der aktuelle Aufbau sieht vor, ein eigenes Skript und Klasse je Strategie (Bot) zu verwenden und auch einen eigenen Prozess/Thread, damit sie gleichzeitig laufen können. Der Aufbau ist so gewählt, weil es von der Struktur so am einfachsten und übersichtlichsten ist, also jede Strategie bekommt eine eigene Klasse und läuft für sich. Dennoch sollen die Bots grob wissen, was der andere gemacht hat und sie sollen auch dieselbe API Verbindung zu den websiten nutzen. Daher habe ich eine sogenannte BotManager (BotMan) Klasse eingeführt. Diese wird zu Beginn des Systems aufgerufen und startet die ganzen Strategieskripte (Bots) und übergibt sich selbst. Die Bots können dann jegliche API Anfragen die sie haben an den BotMan übergeben, dieser wandelt die Anfragen vorher noch in das richtige Format um und leitet sie dann an die websiten weiter und speichert gegebenenfalls auch einige Infos selbst ab, auf die dann andere Bots Zugriff haben (zb eine Art cache um denselben Call nicht mehrfach in kurzer Zeit machen zu müssen) Auf diese Weise können die Bots alle in einem einheitlichen Format arbeiten und brauchen sich um nicht viel weiter kümmern, da der BotMan alles (zb auch Fehlerhandling) übernimmt. Auch lassen sich problemlos neue Strategien entwickeln/testen, ohne dass man irgendwo etwas "zwischenschieben oder integrieren" muss, einfach ein neues skript und Klasse und sogut wie fertig. Ich hoffe das war einigermaßen verständlich, was das Ziel ist. Aktuell starte ich zu Beginn für jeden Bot (=Strategie) also einen eigenen Prozess/Thread (die problematik von Prozessen lassen wir erstmal außen vor). Dabei ist es mir erstmal nicht direkt wichtig, ob diese Bots nun wirklich gleichzeitig laufen, oder ob es durch das threading-hin-und-herspringen nur den Anschein von Gleichzeitigkeit hat. Wichtig ist, dass es mit threading besser ist, als es sequentiell auszuführen (auch wenn die gesamt durchlaufzeit bei reinem code natürlich dieselbe bliebe). Die Bots sollen wie gesagt beliebige Strategien fahren können, vom high-frequency-trading bis hin zu "einmal am Tag den Kurs checken", soll dem Strategieskript überlassen sein. Die API Calls, welche nun also jederzeit von jedem dieser Bots zu jedem Zeitpunkt und jeder Anzahl beim BotMan angefragt werden können, mache ich zurzeit ebenfalls noch in threads. Pro API call wird nun also ein weiterer Thread geöffnet. Nun soll das ganze aber stark skalieren, mit sehr vielen untersch. websiten und sehr vielen untersch. calls und strategien (die limits der websiten habe ich dabei natürlich im Blick), weshalb ich in meinen Tests auf das Maximallimit an threads gestoßen bin. Daher habe ich nun async stattdessen probiert, aber dies auf meinen bisherigen code anzuwenden ist sehr schwierig. Es gibt die Möglichkeit von run_coroutine_threadsafe in einem zweiten thread aufzururfen, um nur die api calls im event loop zu machen. Und es gibt die Möglichkeit alles im event_loop zu machen, aber cpu intensiven code mit run_in _executor auszulagern. Aber beide Ansätze haben ihre eigenen Probleme, weshalb ich nicht wirklich weiter weiß. Daher brauche ich nun jemanden, der mir sagen kann, wie das Projekt am effizientesten aussehen würde, bzw. falls es schon eine der obigen Varianten ist, wie ich den code dennoch übersichtlich behalte. Dazu wäre es sicherlich sinnvoll, wenn wir auch einen Voicechat machen würden. Falls du mich mit Wissen überzeugen kannst und wir länger brauchen, kann das Budget auch noch erhöht werden. MfG
ID Projek: 27068851

Tentang projek

1 cadangan
Projek jarak jauh
Aktif 4 tahun yang lalu

Ingin menjana wang?

Faedah membida di Freelancer

Tetapkan bajet dan garis masa anda
Dapatkan bayaran untuk kerja anda
Tuliskan cadangan anda
Ianya percuma untuk mendaftar dan membida pekerjaan
1 pekerja bebas membida secara purata €75 EUR untuk pekerjaan ini
Avatar Pengguna
Hi Sir, I have reviewed your requirements carefully and I can definitely start immediately. But I have couple of questions on requirements, please ping me on chat to discuss more on that. I am expert in EXCEL/ACCESS/Google Sheet/Google AppScript/PYTHON/VBA/VB/.NET/SOAP/REST/API, SQL, MS Office, Database, complex Formulae, Statistical analysis, Macros (VBA), pivot, Charts/graphs, formatting, templates, dashboard, etc. Around 16 years of experience in software development / architecture and worked on several complex enterprise level projects, Webscrapping (Facebook/ LinkedIn / Amazon / Aliexpress / eBay), Complex VBA projects, viz converting Raw data to structured report, sales dashboard, PO tracking, Invoice Automation, budgeting, profitability, estimation, time management dashboards, etc. Also I am a quick learner and complete tasks very quickly using keyboard shortcuts and multitasking skills. And I have been consistently rated as excellent by all the employers. Looking forward to work with you.. Have a nice day Thank you
€75 EUR dalam 1 hari
5.0 (2 ulasan)
2.4
2.4

Tentang klien

Bendera GERMANY
Hannover, Germany
5.0
2
Kaedah pembayaran disahkan
Ahli sejak Ogo 30, 2017

Pengesahan Klien

Terima kasih! Kami telah menghantar pautan melalui e-mel kepada anda untuk menuntut kredit percuma anda.
Sesuatu telah berlaku semasa menghantar e-mel anda. Sila cuba lagi.
Pengguna Berdaftar Jumlah Pekerjaan Disiarkan
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Memuatkan pratonton
Kebenaran diberikan untuk Geolocation.
Sesi log masuk anda telah luput dan telah dilog keluar. Sila log masuk sekali lagi.