Path: blob/master/ invest-robot-contest_tinkoff-invest-volume-analysis-robot-master/tests/test_orders.py
5927 views
import unittest12from tinkoff.invest import OrderDirection34from utils.order_util import prepare_orders567class TestOrders(unittest.TestCase):8def test_prepare_buy_two_orders(self):9actual_orders = prepare_orders(10instrument="SBER",11time="2022-05-20 15:13:15.830627+00:00",12direction=OrderDirection.ORDER_DIRECTION_BUY,13current_price=100,14stop_loss=80,15count_lots=10,16count_goals=2,17first_goal=3,18goal_step=0.5,19)2021actual_first_order = actual_orders[0]22self.assertEqual(actual_first_order.instrument, "SBER")23self.assertEqual(actual_first_order.open, 100)24self.assertEqual(actual_first_order.close, None)25self.assertEqual(actual_first_order.stop, 80)26self.assertEqual(actual_first_order.take, 160)27self.assertEqual(actual_first_order.quantity, 5)28self.assertEqual(actual_first_order.direction, 1)29self.assertEqual(actual_first_order.time, "2022-05-20 15:13:15.830627+00:00")30self.assertEqual(actual_first_order.status, "active")31self.assertEqual(actual_first_order.result, None)32self.assertEqual(actual_first_order.is_win, None)3334actual_second_order = actual_orders[1]35self.assertEqual(actual_second_order.instrument, "SBER")36self.assertEqual(actual_second_order.open, 100)37self.assertEqual(actual_second_order.close, None)38self.assertEqual(actual_second_order.stop, 80)39self.assertEqual(actual_second_order.take, 190)40self.assertEqual(actual_second_order.quantity, 5)41self.assertEqual(actual_second_order.direction, 1)42self.assertEqual(actual_second_order.time, "2022-05-20 15:13:15.830627+00:00")43self.assertEqual(actual_second_order.status, "active")44self.assertEqual(actual_second_order.result, None)45self.assertEqual(actual_second_order.is_win, None)4647def test_prepare_sell_three_orders(self):48actual_orders = prepare_orders(49instrument="SBER",50time="2022-05-20 15:13:15.830627+00:00",51direction=OrderDirection.ORDER_DIRECTION_SELL,52current_price=100,53stop_loss=120,54count_lots=9,55count_goals=3,56first_goal=3,57goal_step=0.5,58)5960actual_first_order = actual_orders[0]61self.assertEqual(actual_first_order.instrument, "SBER")62self.assertEqual(actual_first_order.open, 100)63self.assertEqual(actual_first_order.close, None)64self.assertEqual(actual_first_order.stop, 120)65self.assertEqual(actual_first_order.take, 40)66self.assertEqual(actual_first_order.quantity, 3)67self.assertEqual(actual_first_order.direction, 2)68self.assertEqual(actual_first_order.time, "2022-05-20 15:13:15.830627+00:00")69self.assertEqual(actual_first_order.status, "active")70self.assertEqual(actual_first_order.result, None)71self.assertEqual(actual_first_order.is_win, None)7273actual_second_order = actual_orders[1]74self.assertEqual(actual_second_order.instrument, "SBER")75self.assertEqual(actual_second_order.open, 100)76self.assertEqual(actual_second_order.close, None)77self.assertEqual(actual_second_order.stop, 120)78self.assertEqual(actual_second_order.take, 10)79self.assertEqual(actual_second_order.quantity, 3)80self.assertEqual(actual_second_order.direction, 2)81self.assertEqual(actual_second_order.time, "2022-05-20 15:13:15.830627+00:00")82self.assertEqual(actual_second_order.status, "active")83self.assertEqual(actual_second_order.result, None)84self.assertEqual(actual_second_order.is_win, None)8586actual_third_order = actual_orders[2]87self.assertEqual(actual_third_order.instrument, "SBER")88self.assertEqual(actual_third_order.open, 100)89self.assertEqual(actual_third_order.close, None)90self.assertEqual(actual_third_order.stop, 120)91self.assertEqual(actual_third_order.take, -20)92self.assertEqual(actual_third_order.quantity, 3)93self.assertEqual(actual_third_order.direction, 2)94self.assertEqual(actual_third_order.time, "2022-05-20 15:13:15.830627+00:00")95self.assertEqual(actual_third_order.status, "active")96self.assertEqual(actual_third_order.result, None)97self.assertEqual(actual_third_order.is_win, None)9899100if __name__ == "__main__":101unittest.main()102103104