mirror of
https://github.com/Ichinga-Samuel/aiomql.git
synced 2026-08-18 22:38:06 +00:00
Update tests and docs across core, lib, and contrib modules
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
from logging import getLogger
|
||||
from datetime import datetime
|
||||
from aiomql import Trader, OrderType, OpenPosition, Positions, PositionTracker, Store
|
||||
from aiomql import Trader, OrderType, OpenPosition, Positions, PositionTracker, Store, exit_at_profit, round_off
|
||||
|
||||
from ..trackers import close_after
|
||||
from ..trackers import close_after, track_hedges, hedge_position
|
||||
|
||||
logger = getLogger(__name__)
|
||||
|
||||
@@ -25,7 +25,7 @@ class TestTrader(Trader):
|
||||
"""
|
||||
try:
|
||||
self.parameters |= parameters or {}
|
||||
volume = volume or self.symbol.volume_min
|
||||
volume = volume or self.symbol.volume_min * 20
|
||||
await self.create_order_no_stops(order_type=order_type, volume=volume)
|
||||
if not await self.check_order():
|
||||
return
|
||||
@@ -33,10 +33,28 @@ class TestTrader(Trader):
|
||||
res = await self.send_order()
|
||||
if res is not None and res.retcode == 10009:
|
||||
position = await self.positions.get_position_by_ticket(ticket=res.order)
|
||||
open_position = OpenPosition(ticket=res.order, symbol=self.symbol, position=position)
|
||||
kwargs = {"duration": 40, "start": datetime.now().timestamp()}
|
||||
ca = PositionTracker(close_after, **kwargs)
|
||||
open_position.add_tracker(tracker=ca)
|
||||
open_position = OpenPosition(ticket=res.order, symbol=self.symbol, position=position,
|
||||
close_hedges_on_close=True, close_stacks_on_close=True)
|
||||
kwargs = {"duration": 3600, "start": datetime.now().timestamp()}
|
||||
PositionTracker(open_position, hedge_position)
|
||||
PositionTracker(open_position, track_hedges)
|
||||
PositionTracker(open_position, close_after, function_params=kwargs)
|
||||
PositionTracker(open_position, exit_at_profit, function_params={"tp": 10, "sl": -12})
|
||||
price_to_hedge = await open_position.profit_to_price(profit=-10)
|
||||
price_to_stack = await open_position.profit_to_price(profit=5)
|
||||
price_to_stack = round_off(price_to_stack, self.symbol.digits)
|
||||
price_to_hedge = round_off(price_to_hedge, self.symbol.digits)
|
||||
# await open_position.stack_order(price=price_to_stack, open_pos_params={"close_stacks_on_close": True})
|
||||
# await open_position.hedge_order(price=price_to_hedge,
|
||||
# open_pos_params={"close_hedges_on_close": True})
|
||||
price_to_hedge2 = await open_position.profit_to_price(profit=-8)
|
||||
price_to_hedge2 = round_off(price_to_hedge2, self.symbol.digits)
|
||||
price_to_stack2 = await open_position.profit_to_price(profit=7)
|
||||
price_to_stack2 = round_off(price_to_stack2, self.symbol.digits)
|
||||
await open_position.hedge_order(price=price_to_hedge2,
|
||||
open_pos_params={"close_hedges_on_close": True})
|
||||
await open_position.stack_order(price=price_to_stack2,
|
||||
open_pos_params={"close_stacks_on_close": True})
|
||||
await self.record_trade(result=res, parameters=self.parameters)
|
||||
except Exception as err:
|
||||
logger.error(f"{err} in {self.__class__.__name__}.place_trade for {self.symbol.name}")
|
||||
|
||||
Reference in New Issue
Block a user