Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wiseplat
GitHub Repository: wiseplat/python-code
Path: blob/master/ invest-robot-contest_tinkoff-invest-volume-analysis-robot-master/tests/test_orders.py
5927 views
1
import unittest
2
3
from tinkoff.invest import OrderDirection
4
5
from utils.order_util import prepare_orders
6
7
8
class TestOrders(unittest.TestCase):
9
def test_prepare_buy_two_orders(self):
10
actual_orders = prepare_orders(
11
instrument="SBER",
12
time="2022-05-20 15:13:15.830627+00:00",
13
direction=OrderDirection.ORDER_DIRECTION_BUY,
14
current_price=100,
15
stop_loss=80,
16
count_lots=10,
17
count_goals=2,
18
first_goal=3,
19
goal_step=0.5,
20
)
21
22
actual_first_order = actual_orders[0]
23
self.assertEqual(actual_first_order.instrument, "SBER")
24
self.assertEqual(actual_first_order.open, 100)
25
self.assertEqual(actual_first_order.close, None)
26
self.assertEqual(actual_first_order.stop, 80)
27
self.assertEqual(actual_first_order.take, 160)
28
self.assertEqual(actual_first_order.quantity, 5)
29
self.assertEqual(actual_first_order.direction, 1)
30
self.assertEqual(actual_first_order.time, "2022-05-20 15:13:15.830627+00:00")
31
self.assertEqual(actual_first_order.status, "active")
32
self.assertEqual(actual_first_order.result, None)
33
self.assertEqual(actual_first_order.is_win, None)
34
35
actual_second_order = actual_orders[1]
36
self.assertEqual(actual_second_order.instrument, "SBER")
37
self.assertEqual(actual_second_order.open, 100)
38
self.assertEqual(actual_second_order.close, None)
39
self.assertEqual(actual_second_order.stop, 80)
40
self.assertEqual(actual_second_order.take, 190)
41
self.assertEqual(actual_second_order.quantity, 5)
42
self.assertEqual(actual_second_order.direction, 1)
43
self.assertEqual(actual_second_order.time, "2022-05-20 15:13:15.830627+00:00")
44
self.assertEqual(actual_second_order.status, "active")
45
self.assertEqual(actual_second_order.result, None)
46
self.assertEqual(actual_second_order.is_win, None)
47
48
def test_prepare_sell_three_orders(self):
49
actual_orders = prepare_orders(
50
instrument="SBER",
51
time="2022-05-20 15:13:15.830627+00:00",
52
direction=OrderDirection.ORDER_DIRECTION_SELL,
53
current_price=100,
54
stop_loss=120,
55
count_lots=9,
56
count_goals=3,
57
first_goal=3,
58
goal_step=0.5,
59
)
60
61
actual_first_order = actual_orders[0]
62
self.assertEqual(actual_first_order.instrument, "SBER")
63
self.assertEqual(actual_first_order.open, 100)
64
self.assertEqual(actual_first_order.close, None)
65
self.assertEqual(actual_first_order.stop, 120)
66
self.assertEqual(actual_first_order.take, 40)
67
self.assertEqual(actual_first_order.quantity, 3)
68
self.assertEqual(actual_first_order.direction, 2)
69
self.assertEqual(actual_first_order.time, "2022-05-20 15:13:15.830627+00:00")
70
self.assertEqual(actual_first_order.status, "active")
71
self.assertEqual(actual_first_order.result, None)
72
self.assertEqual(actual_first_order.is_win, None)
73
74
actual_second_order = actual_orders[1]
75
self.assertEqual(actual_second_order.instrument, "SBER")
76
self.assertEqual(actual_second_order.open, 100)
77
self.assertEqual(actual_second_order.close, None)
78
self.assertEqual(actual_second_order.stop, 120)
79
self.assertEqual(actual_second_order.take, 10)
80
self.assertEqual(actual_second_order.quantity, 3)
81
self.assertEqual(actual_second_order.direction, 2)
82
self.assertEqual(actual_second_order.time, "2022-05-20 15:13:15.830627+00:00")
83
self.assertEqual(actual_second_order.status, "active")
84
self.assertEqual(actual_second_order.result, None)
85
self.assertEqual(actual_second_order.is_win, None)
86
87
actual_third_order = actual_orders[2]
88
self.assertEqual(actual_third_order.instrument, "SBER")
89
self.assertEqual(actual_third_order.open, 100)
90
self.assertEqual(actual_third_order.close, None)
91
self.assertEqual(actual_third_order.stop, 120)
92
self.assertEqual(actual_third_order.take, -20)
93
self.assertEqual(actual_third_order.quantity, 3)
94
self.assertEqual(actual_third_order.direction, 2)
95
self.assertEqual(actual_third_order.time, "2022-05-20 15:13:15.830627+00:00")
96
self.assertEqual(actual_third_order.status, "active")
97
self.assertEqual(actual_third_order.result, None)
98
self.assertEqual(actual_third_order.is_win, None)
99
100
101
if __name__ == "__main__":
102
unittest.main()
103
104