diff --git a/.gitignore b/.gitignore index 7d2b6c4..416a263 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,7 @@ htmlcov/ .coverage .coverage.* .cache +.pytest_cache nosetests.xml coverage.xml *,cover @@ -77,4 +78,5 @@ config.json aiomql.json config/ test_data/ +test.json diff --git a/home.csv b/home.csv deleted file mode 100644 index e69de29..0000000 diff --git a/pop.csv b/pop.csv deleted file mode 100644 index e69de29..0000000 diff --git a/src/aiomql/contrib/backtester/check.py b/src/aiomql/contrib/backtester/check.py deleted file mode 100644 index b7ccc5b..0000000 --- a/src/aiomql/contrib/backtester/check.py +++ /dev/null @@ -1,95 +0,0 @@ -import signal -import asyncio -from asyncio import Condition, Task -import random - - -class EventManager: - - def __init__(self, num_tasks: int, lock = None): - self.event = Condition(lock=lock) - self.num_tasks = num_tasks - self.counter = 0 - self.state = 0 - self.tasks: list[Task] = [] - - async def sleep(self, secs): - while secs > self.state: - await self.wait() - - async def acquire(self): - await self.event.acquire() - - def notify_all(self): - self.event.notify_all() - - def sigint_handler(self, sig, frame): - for task in self.tasks: - print(task.get_name()) - task.cancel() if not task.done() else ... - - async def event_monitor(self): - while True: - async with self.event: - if self.counter == self.num_tasks: - self.counter = 0 - self.state += 1 - self.event.notify_all() - await asyncio.sleep(0) - - async def wait(self): - self.counter += 1 - await self.event.wait() - - def release(self): - self.event.release() - -async def long_task1(event: EventManager): - counter = 0 - while True: - await event.acquire() - try: - await event.wait() - sleep = random.randint(1, 2) - await asyncio.sleep(sleep) - counter += 1 - print(f'task 1: {event.state}-{counter}') - finally: - event.release() - -async def long_task2(event: EventManager): - counter = 0 - while True: - await event.acquire() - try: - await event.wait() - sleep = random.randint(1, 2) - await asyncio.sleep(sleep) - counter += 1 - print(f'task 2: {event.state}-{counter}') - finally: - event.release() - -async def long_task3(event: EventManager): - sleep = 10 - while True: - await event.acquire() - try: - await event.wait() - await event.sleep(sleep) - print(f'task 3: {event.state}-{sleep}') - sleep += 10 - finally: - event.release() - -async def main(): - manager = EventManager(num_tasks=3) - signal.signal(signal.SIGINT, manager.sigint_handler) - task1 = asyncio.create_task(long_task1(manager), name='task1') - task2 = asyncio.create_task(long_task2(manager), name='task2') - task3 = asyncio.create_task(long_task3(manager), name='task3') - control = asyncio.create_task(manager.event_monitor(), name='monitor') - manager.tasks.extend([task1, task2, task3, control]) - res = await asyncio.gather(task1, task2, task3, control) - -asyncio.run(main()) diff --git a/src/aiomql/contrib/backtester/check1.py b/src/aiomql/contrib/backtester/check1.py deleted file mode 100644 index 0fdd368..0000000 --- a/src/aiomql/contrib/backtester/check1.py +++ /dev/null @@ -1,5 +0,0 @@ - -class Check1: - f: str - t: str - v: float diff --git a/st_tester.py b/st_tester.py deleted file mode 100644 index d06fe9c..0000000 --- a/st_tester.py +++ /dev/null @@ -1,28 +0,0 @@ -import asyncio - -from aiomql import MetaTester, StrategyTester, FingerTrapTest, ForexSymbol, Account, TestData, GetData, Config, \ - TestStrategy, EventManager, FingerTrapSingleTest, SingleStrategyTester - - -async def test_mul(): - config = Config() - name = config.test_data_dir/"august_2024.pkl" - data = GetData.load_data(name=name) - td = TestData(data) - st1 = FingerTrapTest(symbol=ForexSymbol(name='Volatility 100 (1s) Index')) - st2 = FingerTrapTest(symbol=ForexSymbol(name='Volatility 25 Index')) - st = StrategyTester(strategies=[st1, st2]) - await st.run(td) - - -async def test_one(): - sym = ForexSymbol(name='Volatility 100 (1s) Index') - st1 = FingerTrapSingleTest(symbol=sym) - config = Config() - data = GetData.load_data(name=f"{config.test_data_dir}/august_24.pkl") - td = TestData(data) - st = SingleStrategyTester(strategy=st1) - await st.run(td) - - -asyncio.run(test_mul())