Files
aiomql/tests/conftest.py
T

63 lines
1.7 KiB
Python
Raw Normal View History

2024-10-28 06:36:10 +01:00
from aiomql.lib.symbol import Symbol
import pytest
2024-11-04 00:32:51 +01:00
@pytest.fixture(scope="function")
2024-10-28 06:36:10 +01:00
def btc_usd():
2024-11-04 00:32:51 +01:00
return Symbol(name="BTCUSD")
2024-11-04 00:32:51 +01:00
@pytest.fixture(scope="function")
2024-10-28 06:36:10 +01:00
async def buy_order(btc_usd):
sym = btc_usd
sym_info = await sym.mt5.symbol_info(sym.name)
dsl = (sym_info.trade_stops_level + sym_info.spread) * 2 * sym_info.point
sl = sym_info.ask - dsl
tp = sym_info.ask + dsl
2024-11-04 00:32:51 +01:00
return {
"action": sym.mt5.TRADE_ACTION_DEAL,
"symbol": sym.name,
"volume": sym_info.volume_min,
"type": sym.mt5.ORDER_TYPE_BUY,
"price": sym_info.ask,
"sl": sl,
"tp": tp,
}
@pytest.fixture(scope="function")
2024-10-28 06:36:10 +01:00
async def sell_order(btc_usd):
sym = btc_usd
sym_info = await sym.mt5.symbol_info(sym.name)
2024-11-04 00:32:51 +01:00
return {
"action": sym.mt5.TRADE_ACTION_DEAL,
"symbol": sym.name,
"volume": sym_info.volume_min,
"type": sym.mt5.ORDER_TYPE_SELL,
"price": sym_info.bid,
}
2024-10-28 06:36:10 +01:00
2024-11-04 00:32:51 +01:00
@pytest.fixture(scope="class")
2024-10-28 06:36:10 +01:00
async def make_buy_sell_orders():
2024-11-04 00:32:51 +01:00
sym = Symbol(name="BTCUSD")
2024-10-28 06:36:10 +01:00
sym_info = await sym.mt5.symbol_info(sym.name)
dsl = (sym_info.trade_stops_level + sym_info.spread) * 2 * sym_info.point
sl = sym_info.ask - dsl
tp = sym_info.ask + dsl
2024-11-04 00:32:51 +01:00
req = {
"action": sym.mt5.TRADE_ACTION_DEAL,
"symbol": sym.name,
"volume": sym_info.volume_min,
"type": sym.mt5.ORDER_TYPE_BUY,
"price": sym_info.ask,
"sl": sl,
"tp": tp,
}
2024-10-28 06:36:10 +01:00
await sym.mt5.order_send(req)
2024-11-04 00:32:51 +01:00
req["type"] = sym.mt5.ORDER_TYPE_SELL
req["price"] = sym_info.bid
req["sl"] = sym_info.bid + dsl
req["tp"] = sym_info.bid - dsl
2024-10-28 06:36:10 +01:00
await sym.mt5.order_send(req)