mirror of
https://github.com/Ichinga-Samuel/aiomql.git
synced 2026-08-24 09:18:07 +00:00
v4.0.5
This commit is contained in:
+12
-2
@@ -1,7 +1,8 @@
|
|||||||
import logging
|
import logging
|
||||||
|
import asyncio
|
||||||
|
|
||||||
from aiomql.lib.bot import Bot
|
from aiomql.lib.bot import Bot
|
||||||
from aiomql.contrib.strategies import FingerTrap
|
from aiomql.contrib.strategies import FingerTrap, Chaos
|
||||||
from aiomql.contrib.symbols import ForexSymbol
|
from aiomql.contrib.symbols import ForexSymbol
|
||||||
|
|
||||||
|
|
||||||
@@ -9,10 +10,19 @@ def sample_bot():
|
|||||||
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s")
|
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s")
|
||||||
syms = ["Volatility 75 Index", "Volatility 100 Index", "Volatility 50 Index"]
|
syms = ["Volatility 75 Index", "Volatility 100 Index", "Volatility 50 Index"]
|
||||||
symbols = [ForexSymbol(name=sym) for sym in syms]
|
symbols = [ForexSymbol(name=sym) for sym in syms]
|
||||||
strategies = [FingerTrap(symbol=symbol) for symbol in symbols]
|
strategies = [Chaos(symbol=symbol) for symbol in symbols]
|
||||||
bot = Bot()
|
bot = Bot()
|
||||||
|
bot.executor.timeout = 10
|
||||||
|
|
||||||
|
bot.add_coroutine(coroutine=sleep_run)
|
||||||
bot.add_strategies(strategies=strategies)
|
bot.add_strategies(strategies=strategies)
|
||||||
bot.execute()
|
bot.execute()
|
||||||
|
|
||||||
|
|
||||||
|
async def sleep_run():
|
||||||
|
while True:
|
||||||
|
print("Sleeping for 5 seconds")
|
||||||
|
await asyncio.sleep(5)
|
||||||
|
print("Hello World")
|
||||||
|
|
||||||
sample_bot()
|
sample_bot()
|
||||||
|
|||||||
@@ -78,9 +78,16 @@ class Executor:
|
|||||||
|
|
||||||
async def create_coroutines_task(self):
|
async def create_coroutines_task(self):
|
||||||
""""""
|
""""""
|
||||||
task = asyncio.create_task(asyncio.gather(*self.coroutines, return_exceptions=True))
|
coros = [asyncio.create_task(coroutine) for coroutine in self.coroutines]
|
||||||
|
# task = asyncio.create_task(asyncio.gather(*coros, return_exceptions=False))
|
||||||
|
self.tasks.extend(coros)
|
||||||
|
# loop = asyncio.get_running_loop()
|
||||||
|
# loop.run_in_executor()
|
||||||
|
task = asyncio.gather(*coros, return_exceptions=True)
|
||||||
self.tasks.append(task)
|
self.tasks.append(task)
|
||||||
await task
|
await task
|
||||||
|
# await task
|
||||||
|
# return task
|
||||||
|
|
||||||
def run_coroutine_tasks(self):
|
def run_coroutine_tasks(self):
|
||||||
"""Run all coroutines in the executor"""
|
"""Run all coroutines in the executor"""
|
||||||
@@ -109,12 +116,19 @@ class Executor:
|
|||||||
while self.config.shutdown is False and self.config.force_shutdown is False:
|
while self.config.shutdown is False and self.config.force_shutdown is False:
|
||||||
if self.timeout is not None and self.timeout < (asyncio.get_event_loop().time() - start):
|
if self.timeout is not None and self.timeout < (asyncio.get_event_loop().time() - start):
|
||||||
self.config.shutdown = True
|
self.config.shutdown = True
|
||||||
|
timeout = self.timeout or 120
|
||||||
|
await asyncio.sleep(timeout)
|
||||||
|
|
||||||
|
print("Shutting down executor")
|
||||||
for strategy in self.strategy_runners:
|
for strategy in self.strategy_runners:
|
||||||
strategy.running = False
|
strategy.running = False
|
||||||
|
self.executor.shutdown(wait=False, cancel_futures=True)
|
||||||
|
|
||||||
for task in self.tasks:
|
for task in self.tasks:
|
||||||
task.cancel()
|
task.cancel()
|
||||||
self.executor.shutdown(wait=False, cancel_futures=True)
|
|
||||||
|
|
||||||
|
# self.executor.shutdown(wait=False, cancel_futures=True)
|
||||||
if self.config.force_shutdown:
|
if self.config.force_shutdown:
|
||||||
os._exit(1)
|
os._exit(1)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
|
|||||||
Reference in New Issue
Block a user