schwab_rb 0.3.6 → 0.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rspec_status +223 -213
- data/lib/schwab_rb/data_objects/order_leg.rb +8 -0
- data/lib/schwab_rb/data_objects/transaction.rb +10 -2
- data/lib/schwab_rb/orders/iron_condor_order.rb +103 -0
- data/lib/schwab_rb/orders/order_factory.rb +51 -0
- data/lib/schwab_rb/orders/single_order.rb +54 -0
- data/lib/schwab_rb/orders/vertical_order.rb +77 -0
- data/lib/schwab_rb/version.rb +1 -1
- data/lib/schwab_rb.rb +4 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7718328e0fafbe916b524fafa8e0f76464552d53d98105d2ff04b2fbbfd19c34
|
4
|
+
data.tar.gz: 35bc21f9a93997836938b668b47497f7bb3f101c0dcb8470fd97f743ff279425
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfcdcfcf8f31570b50104e351766159cfb8d6012cb63b14812e7b755aa0ce7f4999db45f599eaffdd3916bbb7622c5be2f1b1e22c35b3a8d5b00ee17c61bff92
|
7
|
+
data.tar.gz: 2337abe4d0ea4bd716fbad756e1433517d940b47ba3428e13f50b123e3beffe66d70455595f271bb67317449b416e6420d04066e1c2ed2e171c024e60e59c0da
|
data/.rspec_status
CHANGED
@@ -1,319 +1,329 @@
|
|
1
1
|
example_id | status | run_time |
|
2
2
|
------------------------------------------------------------- | ------- | --------------- |
|
3
|
-
./spec/account_spec.rb[1:1] | passed | 0.
|
4
|
-
./spec/account_spec.rb[1:2] | passed | 0.
|
5
|
-
./spec/auth/init_client_login_spec.rb[1:1:1] | passed | 0.
|
3
|
+
./spec/account_spec.rb[1:1] | passed | 0.00067 seconds |
|
4
|
+
./spec/account_spec.rb[1:2] | passed | 0.0004 seconds |
|
5
|
+
./spec/auth/init_client_login_spec.rb[1:1:1] | passed | 0.00026 seconds |
|
6
6
|
./spec/auth/init_client_login_spec.rb[1:2:1] | pending | 0 seconds |
|
7
|
-
./spec/auth/init_client_token_file_spec.rb[1:1:1] | passed | 0.
|
7
|
+
./spec/auth/init_client_token_file_spec.rb[1:1:1] | passed | 0.00022 seconds |
|
8
8
|
./spec/auth/login_flow_server_spec.rb[1:1] | pending | 0 seconds |
|
9
9
|
./spec/auth/token_manager_spec.rb[1:1] | passed | 0.00003 seconds |
|
10
|
-
./spec/clients/async_client_spec.rb[1:1:1] | passed | 0.
|
11
|
-
./spec/clients/async_client_spec.rb[1:2:1] | passed | 0.
|
12
|
-
./spec/clients/async_client_spec.rb[1:3:1] | passed | 0.
|
13
|
-
./spec/clients/async_client_spec.rb[1:4:1] | passed | 0.
|
14
|
-
./spec/clients/async_client_spec.rb[1:5:1] | passed | 0.
|
15
|
-
./spec/clients/async_client_spec.rb[1:6:1] | passed | 0.
|
16
|
-
./spec/clients/async_client_spec.rb[1:7:1] | passed | 0.
|
10
|
+
./spec/clients/async_client_spec.rb[1:1:1] | passed | 0.00155 seconds |
|
11
|
+
./spec/clients/async_client_spec.rb[1:2:1] | passed | 0.0034 seconds |
|
12
|
+
./spec/clients/async_client_spec.rb[1:3:1] | passed | 0.00028 seconds |
|
13
|
+
./spec/clients/async_client_spec.rb[1:4:1] | passed | 0.00026 seconds |
|
14
|
+
./spec/clients/async_client_spec.rb[1:5:1] | passed | 0.00026 seconds |
|
15
|
+
./spec/clients/async_client_spec.rb[1:6:1] | passed | 0.00009 seconds |
|
16
|
+
./spec/clients/async_client_spec.rb[1:7:1] | passed | 0.00012 seconds |
|
17
17
|
./spec/clients/client_spec.rb[1:1] | passed | 0.00003 seconds |
|
18
|
-
./spec/clients/client_spec.rb[1:2:1] | passed | 0.
|
19
|
-
./spec/clients/client_spec.rb[1:3:1] | passed | 0.
|
20
|
-
./spec/clients/client_spec.rb[1:4:1] | passed | 0.
|
21
|
-
./spec/clients/client_spec.rb[1:5:1] | passed | 0.
|
22
|
-
./spec/clients/client_spec.rb[1:6:1] | passed | 0.
|
23
|
-
./spec/clients/client_spec.rb[1:7:1] | passed | 0.
|
24
|
-
./spec/clients/client_spec.rb[1:8:1] | passed | 0.
|
18
|
+
./spec/clients/client_spec.rb[1:2:1] | passed | 0.00031 seconds |
|
19
|
+
./spec/clients/client_spec.rb[1:3:1] | passed | 0.0002 seconds |
|
20
|
+
./spec/clients/client_spec.rb[1:4:1] | passed | 0.00126 seconds |
|
21
|
+
./spec/clients/client_spec.rb[1:5:1] | passed | 0.00015 seconds |
|
22
|
+
./spec/clients/client_spec.rb[1:6:1] | passed | 0.00014 seconds |
|
23
|
+
./spec/clients/client_spec.rb[1:7:1] | passed | 0.00036 seconds |
|
24
|
+
./spec/clients/client_spec.rb[1:8:1] | passed | 0.00016 seconds |
|
25
25
|
./spec/clients/client_spec.rb[1:9:1] | passed | 0.00016 seconds |
|
26
|
-
./spec/clients/client_spec.rb[1:10:1] | passed | 0.
|
27
|
-
./spec/clients/client_spec.rb[1:11:1] | passed | 0.
|
28
|
-
./spec/clients/client_spec.rb[1:12:1] | passed | 0.
|
29
|
-
./spec/clients/client_spec.rb[1:13:1] | passed | 0.
|
30
|
-
./spec/clients/client_spec.rb[1:14:1] | passed | 0.
|
31
|
-
./spec/clients/client_spec.rb[1:14:2] | passed | 0.
|
32
|
-
./spec/clients/client_spec.rb[1:14:3] | passed | 0.
|
26
|
+
./spec/clients/client_spec.rb[1:10:1] | passed | 0.00022 seconds |
|
27
|
+
./spec/clients/client_spec.rb[1:11:1] | passed | 0.00015 seconds |
|
28
|
+
./spec/clients/client_spec.rb[1:12:1] | passed | 0.00096 seconds |
|
29
|
+
./spec/clients/client_spec.rb[1:13:1] | passed | 0.00021 seconds |
|
30
|
+
./spec/clients/client_spec.rb[1:14:1] | passed | 0.00034 seconds |
|
31
|
+
./spec/clients/client_spec.rb[1:14:2] | passed | 0.00015 seconds |
|
32
|
+
./spec/clients/client_spec.rb[1:14:3] | passed | 0.00017 seconds |
|
33
33
|
./spec/clients/client_spec.rb[1:17:1] | pending | 0 seconds |
|
34
|
-
./spec/clients/client_spec.rb[1:22:1] | passed | 0.
|
35
|
-
./spec/clients/client_spec.rb[1:23:1] | passed | 0.
|
36
|
-
./spec/clients/client_spec.rb[1:24:1] | passed | 0.
|
37
|
-
./spec/data_objects/account_numbers_spec.rb[1:1:1] | passed | 0.
|
38
|
-
./spec/data_objects/account_numbers_spec.rb[1:2:1] | passed | 0.
|
39
|
-
./spec/data_objects/account_numbers_spec.rb[1:2:2] | passed | 0.
|
34
|
+
./spec/clients/client_spec.rb[1:22:1] | passed | 0.00018 seconds |
|
35
|
+
./spec/clients/client_spec.rb[1:23:1] | passed | 0.00005 seconds |
|
36
|
+
./spec/clients/client_spec.rb[1:24:1] | passed | 0.00004 seconds |
|
37
|
+
./spec/data_objects/account_numbers_spec.rb[1:1:1] | passed | 0.00021 seconds |
|
38
|
+
./spec/data_objects/account_numbers_spec.rb[1:2:1] | passed | 0.00005 seconds |
|
39
|
+
./spec/data_objects/account_numbers_spec.rb[1:2:2] | passed | 0.00005 seconds |
|
40
40
|
./spec/data_objects/account_numbers_spec.rb[1:3:1] | passed | 0.00004 seconds |
|
41
|
-
./spec/data_objects/account_numbers_spec.rb[1:3:2] | passed | 0.
|
41
|
+
./spec/data_objects/account_numbers_spec.rb[1:3:2] | passed | 0.00041 seconds |
|
42
42
|
./spec/data_objects/account_numbers_spec.rb[1:4:1] | passed | 0.00004 seconds |
|
43
43
|
./spec/data_objects/account_numbers_spec.rb[1:4:2] | passed | 0.00004 seconds |
|
44
|
-
./spec/data_objects/account_numbers_spec.rb[1:5:1] | passed | 0.
|
45
|
-
./spec/data_objects/account_numbers_spec.rb[1:6:1] | passed | 0.
|
46
|
-
./spec/data_objects/account_numbers_spec.rb[1:7:1] | passed | 0.
|
47
|
-
./spec/data_objects/account_numbers_spec.rb[1:8:1] | passed | 0.
|
44
|
+
./spec/data_objects/account_numbers_spec.rb[1:5:1] | passed | 0.00072 seconds |
|
45
|
+
./spec/data_objects/account_numbers_spec.rb[1:6:1] | passed | 0.00005 seconds |
|
46
|
+
./spec/data_objects/account_numbers_spec.rb[1:7:1] | passed | 0.00004 seconds |
|
47
|
+
./spec/data_objects/account_numbers_spec.rb[1:8:1] | passed | 0.00031 seconds |
|
48
48
|
./spec/data_objects/account_numbers_spec.rb[1:8:2] | passed | 0.00002 seconds |
|
49
|
-
./spec/data_objects/account_numbers_spec.rb[1:9:1] | passed | 0.
|
50
|
-
./spec/data_objects/account_numbers_spec.rb[1:10:1] | passed | 0.
|
51
|
-
./spec/data_objects/account_numbers_spec.rb[1:11:1:1] | passed | 0.
|
52
|
-
./spec/data_objects/account_numbers_spec.rb[1:11:2:1] | passed | 0.
|
53
|
-
./spec/data_objects/account_spec.rb[1:1:1] | passed | 0.
|
54
|
-
./spec/data_objects/instrument_spec.rb[1:1:1] | passed | 0.
|
55
|
-
./spec/data_objects/instrument_spec.rb[1:1:2] | passed | 0.
|
56
|
-
./spec/data_objects/instrument_spec.rb[1:2:1] | passed | 0.
|
49
|
+
./spec/data_objects/account_numbers_spec.rb[1:9:1] | passed | 0.00045 seconds |
|
50
|
+
./spec/data_objects/account_numbers_spec.rb[1:10:1] | passed | 0.00004 seconds |
|
51
|
+
./spec/data_objects/account_numbers_spec.rb[1:11:1:1] | passed | 0.00008 seconds |
|
52
|
+
./spec/data_objects/account_numbers_spec.rb[1:11:2:1] | passed | 0.00003 seconds |
|
53
|
+
./spec/data_objects/account_spec.rb[1:1:1] | passed | 0.00054 seconds |
|
54
|
+
./spec/data_objects/instrument_spec.rb[1:1:1] | passed | 0.00019 seconds |
|
55
|
+
./spec/data_objects/instrument_spec.rb[1:1:2] | passed | 0.00024 seconds |
|
56
|
+
./spec/data_objects/instrument_spec.rb[1:2:1] | passed | 0.00006 seconds |
|
57
57
|
./spec/data_objects/instrument_spec.rb[1:2:2] | passed | 0.00004 seconds |
|
58
58
|
./spec/data_objects/instrument_spec.rb[2:1:1] | passed | 0.00003 seconds |
|
59
|
-
./spec/data_objects/instrument_spec.rb[2:2:1] | passed | 0.
|
59
|
+
./spec/data_objects/instrument_spec.rb[2:2:1] | passed | 0.00004 seconds |
|
60
60
|
./spec/data_objects/instrument_spec.rb[3:1:1] | passed | 0.00004 seconds |
|
61
|
-
./spec/data_objects/instrument_spec.rb[3:2:1] | passed | 0.
|
62
|
-
./spec/data_objects/market_hours_spec.rb[1:1:1] | passed | 0.
|
63
|
-
./spec/data_objects/market_hours_spec.rb[1:2:1] | passed | 0.
|
64
|
-
./spec/data_objects/market_hours_spec.rb[1:3:1] | passed | 0.
|
61
|
+
./spec/data_objects/instrument_spec.rb[3:2:1] | passed | 0.00004 seconds |
|
62
|
+
./spec/data_objects/market_hours_spec.rb[1:1:1] | passed | 0.00017 seconds |
|
63
|
+
./spec/data_objects/market_hours_spec.rb[1:2:1] | passed | 0.00005 seconds |
|
64
|
+
./spec/data_objects/market_hours_spec.rb[1:3:1] | passed | 0.00005 seconds |
|
65
65
|
./spec/data_objects/market_hours_spec.rb[1:4:1] | passed | 0.00005 seconds |
|
66
|
-
./spec/data_objects/market_hours_spec.rb[1:5:1] | passed | 0.
|
66
|
+
./spec/data_objects/market_hours_spec.rb[1:5:1] | passed | 0.00008 seconds |
|
67
67
|
./spec/data_objects/market_hours_spec.rb[1:6:1:1] | passed | 0.00004 seconds |
|
68
68
|
./spec/data_objects/market_hours_spec.rb[1:6:2:1] | passed | 0.00004 seconds |
|
69
69
|
./spec/data_objects/market_hours_spec.rb[1:6:3:1] | passed | 0.00004 seconds |
|
70
|
-
./spec/data_objects/market_movers_spec.rb[1:1:1] | passed | 0.
|
70
|
+
./spec/data_objects/market_movers_spec.rb[1:1:1] | passed | 0.00006 seconds |
|
71
71
|
./spec/data_objects/market_movers_spec.rb[1:1:2] | passed | 0.00003 seconds |
|
72
72
|
./spec/data_objects/market_movers_spec.rb[1:1:3] | passed | 0.00003 seconds |
|
73
73
|
./spec/data_objects/market_movers_spec.rb[2:1:1] | passed | 0.00006 seconds |
|
74
|
-
./spec/data_objects/market_movers_spec.rb[2:2:1] | passed | 0.
|
75
|
-
./spec/data_objects/market_movers_spec.rb[2:3:1] | passed | 0.
|
76
|
-
./spec/data_objects/market_movers_spec.rb[2:3:2] | passed | 0.
|
77
|
-
./spec/data_objects/market_movers_spec.rb[2:4:1] | passed | 0.
|
78
|
-
./spec/data_objects/market_movers_spec.rb[2:4:2] | passed | 0.
|
79
|
-
./spec/data_objects/market_movers_spec.rb[2:5:1] | passed | 0.
|
80
|
-
./spec/data_objects/market_movers_spec.rb[2:6:1] | passed | 0.
|
81
|
-
./spec/data_objects/market_movers_spec.rb[3:1:1] | passed | 0.
|
82
|
-
./spec/data_objects/market_movers_spec.rb[3:2:1] | passed | 0.
|
83
|
-
./spec/data_objects/market_movers_spec.rb[3:2:2] | passed | 0.
|
84
|
-
./spec/data_objects/market_movers_spec.rb[3:2:3] | passed | 0.
|
85
|
-
./spec/data_objects/market_movers_spec.rb[3:3:1] | passed | 0.
|
74
|
+
./spec/data_objects/market_movers_spec.rb[2:2:1] | passed | 0.00006 seconds |
|
75
|
+
./spec/data_objects/market_movers_spec.rb[2:3:1] | passed | 0.0005 seconds |
|
76
|
+
./spec/data_objects/market_movers_spec.rb[2:3:2] | passed | 0.00006 seconds |
|
77
|
+
./spec/data_objects/market_movers_spec.rb[2:4:1] | passed | 0.00055 seconds |
|
78
|
+
./spec/data_objects/market_movers_spec.rb[2:4:2] | passed | 0.00006 seconds |
|
79
|
+
./spec/data_objects/market_movers_spec.rb[2:5:1] | passed | 0.00047 seconds |
|
80
|
+
./spec/data_objects/market_movers_spec.rb[2:6:1] | passed | 0.00058 seconds |
|
81
|
+
./spec/data_objects/market_movers_spec.rb[3:1:1] | passed | 0.00004 seconds |
|
82
|
+
./spec/data_objects/market_movers_spec.rb[3:2:1] | passed | 0.00034 seconds |
|
83
|
+
./spec/data_objects/market_movers_spec.rb[3:2:2] | passed | 0.00003 seconds |
|
84
|
+
./spec/data_objects/market_movers_spec.rb[3:2:3] | passed | 0.00057 seconds |
|
85
|
+
./spec/data_objects/market_movers_spec.rb[3:3:1] | passed | 0.00003 seconds |
|
86
86
|
./spec/data_objects/market_movers_spec.rb[3:3:2] | passed | 0.00003 seconds |
|
87
87
|
./spec/data_objects/market_movers_spec.rb[3:3:3] | passed | 0.00002 seconds |
|
88
|
-
./spec/data_objects/market_movers_spec.rb[3:4:1] | passed | 0.
|
89
|
-
./spec/data_objects/market_movers_spec.rb[3:4:2] | passed | 0.
|
88
|
+
./spec/data_objects/market_movers_spec.rb[3:4:1] | passed | 0.00003 seconds |
|
89
|
+
./spec/data_objects/market_movers_spec.rb[3:4:2] | passed | 0.00003 seconds |
|
90
90
|
./spec/data_objects/market_movers_spec.rb[3:4:3] | passed | 0.00002 seconds |
|
91
|
-
./spec/data_objects/market_movers_spec.rb[3:5:1] | passed | 0.
|
92
|
-
./spec/data_objects/market_movers_spec.rb[3:5:2] | passed | 0.
|
93
|
-
./spec/data_objects/market_movers_spec.rb[3:5:3] | passed | 0.
|
94
|
-
./spec/data_objects/market_movers_spec.rb[3:6:1] | passed | 0.
|
91
|
+
./spec/data_objects/market_movers_spec.rb[3:5:1] | passed | 0.00003 seconds |
|
92
|
+
./spec/data_objects/market_movers_spec.rb[3:5:2] | passed | 0.00002 seconds |
|
93
|
+
./spec/data_objects/market_movers_spec.rb[3:5:3] | passed | 0.00042 seconds |
|
94
|
+
./spec/data_objects/market_movers_spec.rb[3:6:1] | passed | 0.00004 seconds |
|
95
95
|
./spec/data_objects/market_movers_spec.rb[3:7:1] | passed | 0.00004 seconds |
|
96
|
-
./spec/data_objects/option_chain_spec.rb[1:1:1] | passed | 0.
|
97
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:1:1] | passed | 0.
|
98
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:2:1] | passed | 0.
|
96
|
+
./spec/data_objects/option_chain_spec.rb[1:1:1] | passed | 0.00942 seconds |
|
97
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:1:1] | passed | 0.00032 seconds |
|
98
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:2:1] | passed | 0.00011 seconds |
|
99
99
|
./spec/data_objects/option_expiration_chain_spec.rb[1:2:2] | passed | 0.00003 seconds |
|
100
100
|
./spec/data_objects/option_expiration_chain_spec.rb[1:3:1] | passed | 0.0001 seconds |
|
101
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:3:2] | passed | 0.
|
101
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:3:2] | passed | 0.00008 seconds |
|
102
102
|
./spec/data_objects/option_expiration_chain_spec.rb[1:4:1] | passed | 0.00007 seconds |
|
103
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:4:2] | passed | 0.
|
104
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:4:3] | passed | 0.
|
103
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:4:2] | passed | 0.00007 seconds |
|
104
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:4:3] | passed | 0.00006 seconds |
|
105
105
|
./spec/data_objects/option_expiration_chain_spec.rb[1:5:1] | passed | 0.00007 seconds |
|
106
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:5:2] | passed | 0.
|
107
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:6:1] | passed | 0.
|
108
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:7:1] | passed | 0.
|
106
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:5:2] | passed | 0.00006 seconds |
|
107
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:6:1] | passed | 0.0008 seconds |
|
108
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:7:1] | passed | 0.00007 seconds |
|
109
109
|
./spec/data_objects/option_expiration_chain_spec.rb[1:8:1] | passed | 0.00007 seconds |
|
110
110
|
./spec/data_objects/option_expiration_chain_spec.rb[1:9:1] | passed | 0.00009 seconds |
|
111
111
|
./spec/data_objects/option_expiration_chain_spec.rb[1:10:1] | passed | 0.00008 seconds |
|
112
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:11:1] | passed | 0.
|
112
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:11:1] | passed | 0.00006 seconds |
|
113
113
|
./spec/data_objects/option_expiration_chain_spec.rb[1:12:1] | passed | 0.00007 seconds |
|
114
114
|
./spec/data_objects/option_expiration_chain_spec.rb[1:12:2] | passed | 0.00003 seconds |
|
115
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:13:1] | passed | 0.
|
116
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:13:2] | passed | 0.
|
115
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:13:1] | passed | 0.0001 seconds |
|
116
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:13:2] | passed | 0.00006 seconds |
|
117
117
|
./spec/data_objects/option_expiration_chain_spec.rb[1:14:1] | passed | 0.00007 seconds |
|
118
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:14:2] | passed | 0.
|
118
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:14:2] | passed | 0.00006 seconds |
|
119
119
|
./spec/data_objects/option_expiration_chain_spec.rb[1:15:1:1] | passed | 0.00004 seconds |
|
120
120
|
./spec/data_objects/option_expiration_chain_spec.rb[1:15:2:1] | passed | 0.00003 seconds |
|
121
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:15:3:1] | passed | 0.
|
121
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:15:3:1] | passed | 0.00004 seconds |
|
122
122
|
./spec/data_objects/option_expiration_chain_spec.rb[1:15:3:2] | passed | 0.00003 seconds |
|
123
123
|
./spec/data_objects/option_expiration_chain_spec.rb[1:15:4:1] | passed | 0.00003 seconds |
|
124
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:15:4:2] | passed | 0.
|
125
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:15:4:3] | passed | 0.
|
126
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:15:4:4] | passed | 0.
|
127
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:15:5:1] | passed | 0.
|
124
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:15:4:2] | passed | 0.00002 seconds |
|
125
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:15:4:3] | passed | 0.00002 seconds |
|
126
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:15:4:4] | passed | 0.00002 seconds |
|
127
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:15:5:1] | passed | 0.00006 seconds |
|
128
128
|
./spec/data_objects/option_expiration_chain_spec.rb[1:15:5:2] | passed | 0.00003 seconds |
|
129
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:15:6:1] | passed | 0.
|
130
|
-
./spec/data_objects/option_expiration_chain_spec.rb[1:15:7:1] | passed | 0.
|
129
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:15:6:1] | passed | 0.00003 seconds |
|
130
|
+
./spec/data_objects/option_expiration_chain_spec.rb[1:15:7:1] | passed | 0.00003 seconds |
|
131
131
|
./spec/data_objects/option_expiration_chain_spec.rb[1:15:8:1] | passed | 0.00004 seconds |
|
132
|
-
./spec/data_objects/order_leg_spec.rb[1:1:1] | passed | 0.
|
133
|
-
./spec/data_objects/order_leg_spec.rb[1:2:1] | passed | 0.
|
134
|
-
./spec/data_objects/order_preview_spec.rb[1:1:1] | passed | 0.
|
132
|
+
./spec/data_objects/order_leg_spec.rb[1:1:1] | passed | 0.00037 seconds |
|
133
|
+
./spec/data_objects/order_leg_spec.rb[1:2:1] | passed | 0.00012 seconds |
|
134
|
+
./spec/data_objects/order_preview_spec.rb[1:1:1] | passed | 0.00006 seconds |
|
135
135
|
./spec/data_objects/order_preview_spec.rb[1:2:1] | passed | 0.00003 seconds |
|
136
|
-
./spec/data_objects/order_preview_spec.rb[1:2:2] | passed | 0.
|
137
|
-
./spec/data_objects/order_preview_spec.rb[1:2:3] | passed | 0.
|
136
|
+
./spec/data_objects/order_preview_spec.rb[1:2:2] | passed | 0.00005 seconds |
|
137
|
+
./spec/data_objects/order_preview_spec.rb[1:2:3] | passed | 0.00003 seconds |
|
138
138
|
./spec/data_objects/order_preview_spec.rb[1:2:4] | passed | 0.00003 seconds |
|
139
139
|
./spec/data_objects/order_preview_spec.rb[1:2:5] | passed | 0.00003 seconds |
|
140
|
-
./spec/data_objects/order_preview_spec.rb[1:2:6] | passed | 0.
|
141
|
-
./spec/data_objects/order_preview_spec.rb[1:3:1] | passed | 0.
|
142
|
-
./spec/data_objects/order_preview_spec.rb[1:4:1] | passed | 0.
|
140
|
+
./spec/data_objects/order_preview_spec.rb[1:2:6] | passed | 0.00003 seconds |
|
141
|
+
./spec/data_objects/order_preview_spec.rb[1:3:1] | passed | 0.00004 seconds |
|
142
|
+
./spec/data_objects/order_preview_spec.rb[1:4:1] | passed | 0.00005 seconds |
|
143
143
|
./spec/data_objects/order_preview_spec.rb[1:4:2] | passed | 0.00005 seconds |
|
144
|
-
./spec/data_objects/order_preview_spec.rb[1:5:1:1] | passed | 0.
|
144
|
+
./spec/data_objects/order_preview_spec.rb[1:5:1:1] | passed | 0.00006 seconds |
|
145
145
|
./spec/data_objects/order_preview_spec.rb[1:5:1:2] | passed | 0.00004 seconds |
|
146
|
-
./spec/data_objects/order_preview_spec.rb[1:5:2:1] | passed | 0.
|
146
|
+
./spec/data_objects/order_preview_spec.rb[1:5:2:1] | passed | 0.00004 seconds |
|
147
147
|
./spec/data_objects/order_preview_spec.rb[1:5:2:2] | passed | 0.00003 seconds |
|
148
|
-
./spec/data_objects/order_preview_spec.rb[1:5:3:1] | passed | 0.
|
149
|
-
./spec/data_objects/order_preview_spec.rb[1:5:3:2] | passed | 0.
|
150
|
-
./spec/data_objects/order_preview_spec.rb[1:5:4:1] | passed | 0.
|
148
|
+
./spec/data_objects/order_preview_spec.rb[1:5:3:1] | passed | 0.00005 seconds |
|
149
|
+
./spec/data_objects/order_preview_spec.rb[1:5:3:2] | passed | 0.00004 seconds |
|
150
|
+
./spec/data_objects/order_preview_spec.rb[1:5:4:1] | passed | 0.00004 seconds |
|
151
151
|
./spec/data_objects/order_preview_spec.rb[1:5:4:2] | passed | 0.00003 seconds |
|
152
152
|
./spec/data_objects/order_preview_spec.rb[1:6:1:1] | passed | 0.00004 seconds |
|
153
153
|
./spec/data_objects/order_preview_spec.rb[1:6:1:2] | passed | 0.00003 seconds |
|
154
154
|
./spec/data_objects/order_preview_spec.rb[1:6:2:1] | passed | 0.00002 seconds |
|
155
|
-
./spec/data_objects/order_preview_spec.rb[1:6:2:2] | passed | 0.
|
156
|
-
./spec/data_objects/order_preview_spec.rb[1:7:1:1] | passed | 0.
|
157
|
-
./spec/data_objects/order_preview_spec.rb[1:7:1:2] | passed | 0.
|
158
|
-
./spec/data_objects/order_preview_spec.rb[1:7:1:3] | passed | 0.
|
159
|
-
./spec/data_objects/order_preview_spec.rb[1:7:1:4] | passed | 0.
|
160
|
-
./spec/data_objects/order_preview_spec.rb[1:7:2:1] | passed | 0.
|
161
|
-
./spec/data_objects/order_preview_spec.rb[1:7:2:2] | passed | 0.
|
162
|
-
./spec/data_objects/order_preview_spec.rb[1:7:2:3] | passed | 0.
|
163
|
-
./spec/data_objects/order_preview_spec.rb[1:7:3:1] | passed | 0.
|
164
|
-
./spec/data_objects/order_preview_spec.rb[1:7:3:2] | passed | 0.
|
165
|
-
./spec/data_objects/order_spec.rb[1:1:1] | passed | 0.
|
166
|
-
./spec/data_objects/order_spec.rb[1:2:1] | passed | 0.
|
155
|
+
./spec/data_objects/order_preview_spec.rb[1:6:2:2] | passed | 0.00003 seconds |
|
156
|
+
./spec/data_objects/order_preview_spec.rb[1:7:1:1] | passed | 0.00027 seconds |
|
157
|
+
./spec/data_objects/order_preview_spec.rb[1:7:1:2] | passed | 0.00008 seconds |
|
158
|
+
./spec/data_objects/order_preview_spec.rb[1:7:1:3] | passed | 0.00007 seconds |
|
159
|
+
./spec/data_objects/order_preview_spec.rb[1:7:1:4] | passed | 0.00009 seconds |
|
160
|
+
./spec/data_objects/order_preview_spec.rb[1:7:2:1] | passed | 0.00025 seconds |
|
161
|
+
./spec/data_objects/order_preview_spec.rb[1:7:2:2] | passed | 0.00007 seconds |
|
162
|
+
./spec/data_objects/order_preview_spec.rb[1:7:2:3] | passed | 0.00007 seconds |
|
163
|
+
./spec/data_objects/order_preview_spec.rb[1:7:3:1] | passed | 0.00007 seconds |
|
164
|
+
./spec/data_objects/order_preview_spec.rb[1:7:3:2] | passed | 0.00007 seconds |
|
165
|
+
./spec/data_objects/order_spec.rb[1:1:1] | passed | 0.00025 seconds |
|
166
|
+
./spec/data_objects/order_spec.rb[1:2:1] | passed | 0.00035 seconds |
|
167
167
|
./spec/data_objects/order_spec.rb[1:3:1] | passed | 0.00006 seconds |
|
168
|
-
./spec/data_objects/order_spec.rb[1:3:2] | passed | 0.
|
169
|
-
./spec/data_objects/order_spec.rb[2:1:1] | passed | 0.
|
170
|
-
./spec/data_objects/order_spec.rb[3:1:1] | passed | 0.
|
171
|
-
./spec/data_objects/price_history_spec.rb[1:1:1] | passed | 0.
|
168
|
+
./spec/data_objects/order_spec.rb[1:3:2] | passed | 0.00003 seconds |
|
169
|
+
./spec/data_objects/order_spec.rb[2:1:1] | passed | 0.00013 seconds |
|
170
|
+
./spec/data_objects/order_spec.rb[3:1:1] | passed | 0.00016 seconds |
|
171
|
+
./spec/data_objects/price_history_spec.rb[1:1:1] | passed | 0.00035 seconds |
|
172
172
|
./spec/data_objects/price_history_spec.rb[1:2:1] | passed | 0.00006 seconds |
|
173
173
|
./spec/data_objects/price_history_spec.rb[1:2:2] | passed | 0.00003 seconds |
|
174
|
-
./spec/data_objects/price_history_spec.rb[1:3:1] | passed | 0.
|
175
|
-
./spec/data_objects/price_history_spec.rb[1:3:2] | passed | 0.
|
176
|
-
./spec/data_objects/price_history_spec.rb[1:4:1] | passed | 0.
|
177
|
-
./spec/data_objects/price_history_spec.rb[1:4:2] | passed | 0.
|
174
|
+
./spec/data_objects/price_history_spec.rb[1:3:1] | passed | 0.00008 seconds |
|
175
|
+
./spec/data_objects/price_history_spec.rb[1:3:2] | passed | 0.00007 seconds |
|
176
|
+
./spec/data_objects/price_history_spec.rb[1:4:1] | passed | 0.00007 seconds |
|
177
|
+
./spec/data_objects/price_history_spec.rb[1:4:2] | passed | 0.00004 seconds |
|
178
178
|
./spec/data_objects/price_history_spec.rb[1:4:3] | passed | 0.00002 seconds |
|
179
|
-
./spec/data_objects/price_history_spec.rb[1:5:1] | passed | 0.
|
180
|
-
./spec/data_objects/price_history_spec.rb[1:6:1] | passed | 0.
|
181
|
-
./spec/data_objects/price_history_spec.rb[1:6:2] | passed | 0.
|
179
|
+
./spec/data_objects/price_history_spec.rb[1:5:1] | passed | 0.00006 seconds |
|
180
|
+
./spec/data_objects/price_history_spec.rb[1:6:1] | passed | 0.00006 seconds |
|
181
|
+
./spec/data_objects/price_history_spec.rb[1:6:2] | passed | 0.00003 seconds |
|
182
182
|
./spec/data_objects/price_history_spec.rb[1:7:1] | passed | 0.00005 seconds |
|
183
183
|
./spec/data_objects/price_history_spec.rb[1:7:2] | passed | 0.00002 seconds |
|
184
|
-
./spec/data_objects/price_history_spec.rb[1:8:1] | passed | 0.
|
185
|
-
./spec/data_objects/price_history_spec.rb[1:9:1] | passed | 0.
|
186
|
-
./spec/data_objects/price_history_spec.rb[1:9:2] | passed | 0.
|
187
|
-
./spec/data_objects/price_history_spec.rb[1:10:1] | passed | 0.
|
184
|
+
./spec/data_objects/price_history_spec.rb[1:8:1] | passed | 0.00008 seconds |
|
185
|
+
./spec/data_objects/price_history_spec.rb[1:9:1] | passed | 0.00006 seconds |
|
186
|
+
./spec/data_objects/price_history_spec.rb[1:9:2] | passed | 0.00002 seconds |
|
187
|
+
./spec/data_objects/price_history_spec.rb[1:10:1] | passed | 0.00007 seconds |
|
188
188
|
./spec/data_objects/price_history_spec.rb[1:10:2] | passed | 0.00002 seconds |
|
189
189
|
./spec/data_objects/price_history_spec.rb[1:11:1] | passed | 0.00005 seconds |
|
190
190
|
./spec/data_objects/price_history_spec.rb[1:11:2] | passed | 0.00002 seconds |
|
191
|
-
./spec/data_objects/price_history_spec.rb[1:12:1] | passed | 0.
|
191
|
+
./spec/data_objects/price_history_spec.rb[1:12:1] | passed | 0.00006 seconds |
|
192
192
|
./spec/data_objects/price_history_spec.rb[1:12:2] | passed | 0.00002 seconds |
|
193
|
-
./spec/data_objects/price_history_spec.rb[1:13:1] | passed | 0.
|
194
|
-
./spec/data_objects/price_history_spec.rb[1:13:2] | passed | 0.
|
195
|
-
./spec/data_objects/price_history_spec.rb[1:14:1] | passed | 0.
|
196
|
-
./spec/data_objects/price_history_spec.rb[1:14:2] | passed | 0.
|
197
|
-
./spec/data_objects/price_history_spec.rb[1:15:1] | passed | 0.
|
198
|
-
./spec/data_objects/price_history_spec.rb[1:15:2] | passed | 0.
|
199
|
-
./spec/data_objects/price_history_spec.rb[1:16:1] | passed | 0.
|
200
|
-
./spec/data_objects/price_history_spec.rb[1:16:2] | passed | 0.
|
201
|
-
./spec/data_objects/price_history_spec.rb[1:17:1:1] | passed | 0.
|
202
|
-
./spec/data_objects/price_history_spec.rb[1:17:2:1] | passed | 0.
|
193
|
+
./spec/data_objects/price_history_spec.rb[1:13:1] | passed | 0.00006 seconds |
|
194
|
+
./spec/data_objects/price_history_spec.rb[1:13:2] | passed | 0.00003 seconds |
|
195
|
+
./spec/data_objects/price_history_spec.rb[1:14:1] | passed | 0.00008 seconds |
|
196
|
+
./spec/data_objects/price_history_spec.rb[1:14:2] | passed | 0.00003 seconds |
|
197
|
+
./spec/data_objects/price_history_spec.rb[1:15:1] | passed | 0.00008 seconds |
|
198
|
+
./spec/data_objects/price_history_spec.rb[1:15:2] | passed | 0.00005 seconds |
|
199
|
+
./spec/data_objects/price_history_spec.rb[1:16:1] | passed | 0.00005 seconds |
|
200
|
+
./spec/data_objects/price_history_spec.rb[1:16:2] | passed | 0.00006 seconds |
|
201
|
+
./spec/data_objects/price_history_spec.rb[1:17:1:1] | passed | 0.00004 seconds |
|
202
|
+
./spec/data_objects/price_history_spec.rb[1:17:2:1] | passed | 0.00003 seconds |
|
203
203
|
./spec/data_objects/price_history_spec.rb[1:17:3:1] | passed | 0.00003 seconds |
|
204
204
|
./spec/data_objects/price_history_spec.rb[1:17:3:2] | passed | 0.00002 seconds |
|
205
205
|
./spec/data_objects/price_history_spec.rb[1:17:4:1] | passed | 0.00003 seconds |
|
206
|
-
./spec/data_objects/price_history_spec.rb[1:17:5:1] | passed | 0.
|
207
|
-
./spec/data_objects/price_history_spec.rb[1:17:6:1] | passed | 0.
|
206
|
+
./spec/data_objects/price_history_spec.rb[1:17:5:1] | passed | 0.00003 seconds |
|
207
|
+
./spec/data_objects/price_history_spec.rb[1:17:6:1] | passed | 0.00003 seconds |
|
208
208
|
./spec/data_objects/price_history_spec.rb[1:17:6:2] | passed | 0.00002 seconds |
|
209
|
-
./spec/data_objects/price_history_spec.rb[1:17:7:1] | passed | 0.
|
210
|
-
./spec/data_objects/price_history_spec.rb[1:17:7:2] | passed | 0.
|
211
|
-
./spec/data_objects/price_history_spec.rb[1:17:7:3] | passed | 0.
|
212
|
-
./spec/data_objects/price_history_spec.rb[1:17:8:1:1] | passed | 0.
|
209
|
+
./spec/data_objects/price_history_spec.rb[1:17:7:1] | passed | 0.00003 seconds |
|
210
|
+
./spec/data_objects/price_history_spec.rb[1:17:7:2] | passed | 0.00003 seconds |
|
211
|
+
./spec/data_objects/price_history_spec.rb[1:17:7:3] | passed | 0.00003 seconds |
|
212
|
+
./spec/data_objects/price_history_spec.rb[1:17:8:1:1] | passed | 0.00004 seconds |
|
213
213
|
./spec/data_objects/price_history_spec.rb[1:17:8:2:1] | passed | 0.00003 seconds |
|
214
|
-
./spec/data_objects/price_history_spec.rb[1:17:8:3:1] | passed | 0.
|
215
|
-
./spec/data_objects/price_history_spec.rb[1:17:8:4:1] | passed | 0.
|
214
|
+
./spec/data_objects/price_history_spec.rb[1:17:8:3:1] | passed | 0.00004 seconds |
|
215
|
+
./spec/data_objects/price_history_spec.rb[1:17:8:4:1] | passed | 0.00003 seconds |
|
216
216
|
./spec/data_objects/price_history_spec.rb[1:17:9:1:1] | passed | 0.00002 seconds |
|
217
217
|
./spec/data_objects/price_history_spec.rb[1:17:9:2:1] | passed | 0.00002 seconds |
|
218
|
-
./spec/data_objects/price_history_spec.rb[1:17:9:3:1] | passed | 0.
|
218
|
+
./spec/data_objects/price_history_spec.rb[1:17:9:3:1] | passed | 0.00003 seconds |
|
219
219
|
./spec/data_objects/price_history_spec.rb[1:17:9:4:1] | passed | 0.00002 seconds |
|
220
|
-
./spec/data_objects/quote_spec.rb[1:1:1] | passed | 0.
|
221
|
-
./spec/data_objects/quote_spec.rb[1:1:2] | passed | 0.
|
222
|
-
./spec/data_objects/quote_spec.rb[1:1:3] | passed | 0.
|
223
|
-
./spec/data_objects/quote_spec.rb[2:1:1] | passed | 0.
|
224
|
-
./spec/data_objects/quote_spec.rb[3:1:1] | passed | 0.
|
220
|
+
./spec/data_objects/quote_spec.rb[1:1:1] | passed | 0.00013 seconds |
|
221
|
+
./spec/data_objects/quote_spec.rb[1:1:2] | passed | 0.00012 seconds |
|
222
|
+
./spec/data_objects/quote_spec.rb[1:1:3] | passed | 0.00008 seconds |
|
223
|
+
./spec/data_objects/quote_spec.rb[2:1:1] | passed | 0.00007 seconds |
|
224
|
+
./spec/data_objects/quote_spec.rb[3:1:1] | passed | 0.00007 seconds |
|
225
225
|
./spec/data_objects/quote_spec.rb[4:1:1] | passed | 0.00005 seconds |
|
226
|
-
./spec/data_objects/transaction_spec.rb[1:1:1] | passed | 0.
|
227
|
-
./spec/data_objects/transaction_spec.rb[1:2:1] | passed | 0.
|
228
|
-
./spec/data_objects/transaction_spec.rb[1:3:1] | passed | 0.
|
229
|
-
./spec/data_objects/transaction_spec.rb[1:4:1] | passed | 0.
|
230
|
-
./spec/data_objects/transaction_spec.rb[2:1:1] | passed | 0.
|
231
|
-
./spec/data_objects/transaction_spec.rb[2:2:1] | passed | 0.
|
232
|
-
./spec/data_objects/transaction_spec.rb[2:3:1] | passed | 0.
|
233
|
-
./spec/data_objects/transaction_spec.rb[2:4:1] | passed | 0.
|
226
|
+
./spec/data_objects/transaction_spec.rb[1:1:1] | passed | 0.00012 seconds |
|
227
|
+
./spec/data_objects/transaction_spec.rb[1:2:1] | passed | 0.00006 seconds |
|
228
|
+
./spec/data_objects/transaction_spec.rb[1:3:1] | passed | 0.00006 seconds |
|
229
|
+
./spec/data_objects/transaction_spec.rb[1:4:1] | passed | 0.00005 seconds |
|
230
|
+
./spec/data_objects/transaction_spec.rb[2:1:1] | passed | 0.00005 seconds |
|
231
|
+
./spec/data_objects/transaction_spec.rb[2:2:1] | passed | 0.00003 seconds |
|
232
|
+
./spec/data_objects/transaction_spec.rb[2:3:1] | passed | 0.00003 seconds |
|
233
|
+
./spec/data_objects/transaction_spec.rb[2:4:1] | passed | 0.00003 seconds |
|
234
234
|
./spec/data_objects/transaction_spec.rb[2:5:1] | passed | 0.00003 seconds |
|
235
|
-
./spec/data_objects/transaction_spec.rb[2:6:1] | passed | 0.
|
236
|
-
./spec/data_objects/transaction_spec.rb[2:6:2] | passed | 0.
|
235
|
+
./spec/data_objects/transaction_spec.rb[2:6:1] | passed | 0.00003 seconds |
|
236
|
+
./spec/data_objects/transaction_spec.rb[2:6:2] | passed | 0.00003 seconds |
|
237
237
|
./spec/data_objects/transaction_spec.rb[2:7:1] | passed | 0.00002 seconds |
|
238
238
|
./spec/data_objects/transaction_spec.rb[2:7:2] | passed | 0.00002 seconds |
|
239
|
-
./spec/data_objects/user_preferences_spec.rb[1:1:1] | passed | 0.
|
239
|
+
./spec/data_objects/user_preferences_spec.rb[1:1:1] | passed | 0.00022 seconds |
|
240
240
|
./spec/data_objects/user_preferences_spec.rb[1:2:1] | passed | 0.00004 seconds |
|
241
|
-
./spec/data_objects/user_preferences_spec.rb[1:2:2] | passed | 0.
|
241
|
+
./spec/data_objects/user_preferences_spec.rb[1:2:2] | passed | 0.00005 seconds |
|
242
242
|
./spec/data_objects/user_preferences_spec.rb[1:2:3] | passed | 0.00004 seconds |
|
243
243
|
./spec/data_objects/user_preferences_spec.rb[1:3:1] | passed | 0.00004 seconds |
|
244
|
-
./spec/data_objects/user_preferences_spec.rb[1:3:2:1] | passed | 0.
|
245
|
-
./spec/data_objects/user_preferences_spec.rb[1:4:1] | passed | 0.
|
244
|
+
./spec/data_objects/user_preferences_spec.rb[1:3:2:1] | passed | 0.00005 seconds |
|
245
|
+
./spec/data_objects/user_preferences_spec.rb[1:4:1] | passed | 0.00005 seconds |
|
246
246
|
./spec/data_objects/user_preferences_spec.rb[1:4:2] | passed | 0.00004 seconds |
|
247
|
-
./spec/data_objects/user_preferences_spec.rb[1:5:1] | passed | 0.
|
248
|
-
./spec/data_objects/user_preferences_spec.rb[1:6:1] | passed | 0.
|
249
|
-
./spec/data_objects/user_preferences_spec.rb[1:7:1] | passed | 0.
|
247
|
+
./spec/data_objects/user_preferences_spec.rb[1:5:1] | passed | 0.00007 seconds |
|
248
|
+
./spec/data_objects/user_preferences_spec.rb[1:6:1] | passed | 0.00005 seconds |
|
249
|
+
./spec/data_objects/user_preferences_spec.rb[1:7:1] | passed | 0.00005 seconds |
|
250
250
|
./spec/data_objects/user_preferences_spec.rb[1:7:2:1] | passed | 0.00005 seconds |
|
251
|
-
./spec/data_objects/user_preferences_spec.rb[1:8:1] | passed | 0.
|
252
|
-
./spec/data_objects/user_preferences_spec.rb[1:9:1:1] | passed | 0.
|
251
|
+
./spec/data_objects/user_preferences_spec.rb[1:8:1] | passed | 0.00007 seconds |
|
252
|
+
./spec/data_objects/user_preferences_spec.rb[1:9:1:1] | passed | 0.00007 seconds |
|
253
253
|
./spec/data_objects/user_preferences_spec.rb[1:9:2:1] | passed | 0.00004 seconds |
|
254
|
-
./spec/data_objects/user_preferences_spec.rb[1:9:3:1] | passed | 0.
|
254
|
+
./spec/data_objects/user_preferences_spec.rb[1:9:3:1] | passed | 0.00005 seconds |
|
255
255
|
./spec/data_objects/user_preferences_spec.rb[1:9:4:1] | passed | 0.00004 seconds |
|
256
|
-
./spec/data_objects/user_preferences_spec.rb[1:10:1:1] | passed | 0.
|
257
|
-
./spec/data_objects/user_preferences_spec.rb[1:10:2:1] | passed | 0.
|
258
|
-
./spec/data_objects/user_preferences_spec.rb[1:11:1:1] | passed | 0.
|
259
|
-
./spec/data_objects/user_preferences_spec.rb[1:11:2:1] | passed | 0.
|
260
|
-
./spec/data_objects/user_preferences_spec.rb[1:11:3:1] | passed | 0.
|
261
|
-
./spec/instrument_spec.rb[1:1] | passed | 0.
|
262
|
-
./spec/market_hours_spec.rb[1:1] | passed | 0.
|
263
|
-
./spec/movers_spec.rb[1:1] | passed | 0.
|
264
|
-
./spec/movers_spec.rb[1:2:1] | passed | 0.
|
256
|
+
./spec/data_objects/user_preferences_spec.rb[1:10:1:1] | passed | 0.00006 seconds |
|
257
|
+
./spec/data_objects/user_preferences_spec.rb[1:10:2:1] | passed | 0.00006 seconds |
|
258
|
+
./spec/data_objects/user_preferences_spec.rb[1:11:1:1] | passed | 0.00005 seconds |
|
259
|
+
./spec/data_objects/user_preferences_spec.rb[1:11:2:1] | passed | 0.00004 seconds |
|
260
|
+
./spec/data_objects/user_preferences_spec.rb[1:11:3:1] | passed | 0.00005 seconds |
|
261
|
+
./spec/instrument_spec.rb[1:1] | passed | 0.00004 seconds |
|
262
|
+
./spec/market_hours_spec.rb[1:1] | passed | 0.00003 seconds |
|
263
|
+
./spec/movers_spec.rb[1:1] | passed | 0.00003 seconds |
|
264
|
+
./spec/movers_spec.rb[1:2:1] | passed | 0.00005 seconds |
|
265
265
|
./spec/movers_spec.rb[1:2:2] | passed | 0.00003 seconds |
|
266
|
-
./spec/movers_spec.rb[1:2:3] | passed | 0.
|
267
|
-
./spec/option_spec.rb[1:1] | passed | 0.
|
268
|
-
./spec/orders/builder_spec.rb[1:1:1] | passed | 0.
|
269
|
-
./spec/orders/builder_spec.rb[1:2:1] | passed | 0.
|
270
|
-
./spec/orders/builder_spec.rb[1:3:1] | passed | 0.
|
271
|
-
./spec/orders/builder_spec.rb[1:4:1] | passed | 0.
|
272
|
-
./spec/orders/builder_spec.rb[1:5:1] | passed | 0.
|
266
|
+
./spec/movers_spec.rb[1:2:3] | passed | 0.00003 seconds |
|
267
|
+
./spec/option_spec.rb[1:1] | passed | 0.00003 seconds |
|
268
|
+
./spec/orders/builder_spec.rb[1:1:1] | passed | 0.00004 seconds |
|
269
|
+
./spec/orders/builder_spec.rb[1:2:1] | passed | 0.00003 seconds |
|
270
|
+
./spec/orders/builder_spec.rb[1:3:1] | passed | 0.00003 seconds |
|
271
|
+
./spec/orders/builder_spec.rb[1:4:1] | passed | 0.00002 seconds |
|
272
|
+
./spec/orders/builder_spec.rb[1:5:1] | passed | 0.00003 seconds |
|
273
273
|
./spec/orders/builder_spec.rb[1:6:1] | passed | 0.00003 seconds |
|
274
|
-
./spec/orders/builder_spec.rb[1:7:1] | passed | 0.
|
275
|
-
./spec/orders/builder_spec.rb[1:7:2] | passed | 0.
|
274
|
+
./spec/orders/builder_spec.rb[1:7:1] | passed | 0.00002 seconds |
|
275
|
+
./spec/orders/builder_spec.rb[1:7:2] | passed | 0.00004 seconds |
|
276
276
|
./spec/orders/builder_spec.rb[1:8:1] | passed | 0.00003 seconds |
|
277
277
|
./spec/orders/builder_spec.rb[1:9:1] | passed | 0.00004 seconds |
|
278
|
-
./spec/orders/builder_spec.rb[1:10:1] | passed | 0.
|
278
|
+
./spec/orders/builder_spec.rb[1:10:1] | passed | 0.00002 seconds |
|
279
279
|
./spec/orders/builder_spec.rb[1:11:1] | passed | 0.00004 seconds |
|
280
|
-
./spec/orders/builder_spec.rb[1:11:2] | passed | 0.
|
280
|
+
./spec/orders/builder_spec.rb[1:11:2] | passed | 0.00003 seconds |
|
281
281
|
./spec/orders/builder_spec.rb[1:12:1] | passed | 0.00003 seconds |
|
282
|
-
./spec/orders/builder_spec.rb[1:13:1] | pending | 0 seconds
|
283
|
-
./spec/orders/builder_spec.rb[1:13:2] | passed | 0.
|
282
|
+
./spec/orders/builder_spec.rb[1:13:1] | pending | 0.00001 seconds |
|
283
|
+
./spec/orders/builder_spec.rb[1:13:2] | passed | 0.00004 seconds |
|
284
284
|
./spec/orders/builder_spec.rb[1:14:1] | passed | 0.00004 seconds |
|
285
|
-
./spec/orders/builder_spec.rb[1:15:1] | passed | 0.
|
285
|
+
./spec/orders/builder_spec.rb[1:15:1] | passed | 0.00007 seconds |
|
286
286
|
./spec/orders/builder_spec.rb[1:15:2] | pending | 0 seconds |
|
287
|
+
./spec/orders/order_factory_spec.rb[1:1:1:1] | passed | 0.00025 seconds |
|
288
|
+
./spec/orders/order_factory_spec.rb[1:1:1:2] | passed | 0.00014 seconds |
|
289
|
+
./spec/orders/order_factory_spec.rb[1:1:2:1:1] | passed | 0.00015 seconds |
|
290
|
+
./spec/orders/order_factory_spec.rb[1:1:2:1:2] | passed | 0.00012 seconds |
|
291
|
+
./spec/orders/order_factory_spec.rb[1:1:2:2:1] | passed | 0.00014 seconds |
|
292
|
+
./spec/orders/order_factory_spec.rb[1:1:2:2:2] | passed | 0.00012 seconds |
|
293
|
+
./spec/orders/order_factory_spec.rb[1:1:3:1] | passed | 0.00012 seconds |
|
294
|
+
./spec/orders/order_factory_spec.rb[1:1:3:2] | passed | 0.00013 seconds |
|
295
|
+
./spec/orders/order_factory_spec.rb[1:1:4:1] | passed | 0.00011 seconds |
|
296
|
+
./spec/orders/order_factory_spec.rb[1:1:5:1] | passed | 0.00011 seconds |
|
287
297
|
./spec/orders/order_spec.rb[1:1] | passed | 0.00003 seconds |
|
288
|
-
./spec/orders/order_spec.rb[1:2:1] | passed | 0.
|
298
|
+
./spec/orders/order_spec.rb[1:2:1] | passed | 0.00004 seconds |
|
289
299
|
./spec/orders/order_spec.rb[1:2:2] | passed | 0.00004 seconds |
|
290
|
-
./spec/price_history_spec.rb[1:1] | passed | 0.
|
291
|
-
./spec/price_history_spec.rb[1:2:1] | passed | 0.
|
292
|
-
./spec/price_history_spec.rb[1:2:2] | passed | 0.
|
300
|
+
./spec/price_history_spec.rb[1:1] | passed | 0.00002 seconds |
|
301
|
+
./spec/price_history_spec.rb[1:2:1] | passed | 0.00003 seconds |
|
302
|
+
./spec/price_history_spec.rb[1:2:2] | passed | 0.00003 seconds |
|
293
303
|
./spec/price_history_spec.rb[1:2:3] | passed | 0.00003 seconds |
|
294
304
|
./spec/price_history_spec.rb[1:2:4] | passed | 0.00003 seconds |
|
295
305
|
./spec/quote_spec.rb[1:1] | passed | 0.00003 seconds |
|
296
306
|
./spec/quote_spec.rb[1:2] | passed | 0.00003 seconds |
|
297
307
|
./spec/transaction_spec.rb[1:1] | passed | 0.00003 seconds |
|
298
|
-
./spec/utils/enum_enforcer_spec.rb[1:1:1] | passed | 0.
|
308
|
+
./spec/utils/enum_enforcer_spec.rb[1:1:1] | passed | 0.00003 seconds |
|
299
309
|
./spec/utils/enum_enforcer_spec.rb[1:1:2] | passed | 0.00006 seconds |
|
300
310
|
./spec/utils/enum_enforcer_spec.rb[1:1:3] | passed | 0.00003 seconds |
|
301
311
|
./spec/utils/enum_enforcer_spec.rb[1:2:1] | passed | 0.00004 seconds |
|
302
312
|
./spec/utils/enum_enforcer_spec.rb[1:2:2] | passed | 0.00004 seconds |
|
303
|
-
./spec/utils/enum_enforcer_spec.rb[1:2:3] | passed | 0.
|
304
|
-
./spec/utils/logger_spec.rb[1:1] | passed | 0.
|
305
|
-
./spec/utils/logger_spec.rb[1:2] | passed | 0.
|
313
|
+
./spec/utils/enum_enforcer_spec.rb[1:2:3] | passed | 0.00003 seconds |
|
314
|
+
./spec/utils/logger_spec.rb[1:1] | passed | 0.00027 seconds |
|
315
|
+
./spec/utils/logger_spec.rb[1:2] | passed | 0.00023 seconds |
|
306
316
|
./spec/utils/logger_spec.rb[1:3] | passed | 0.00013 seconds |
|
307
|
-
./spec/utils/logger_spec.rb[1:4] | passed | 0.
|
308
|
-
./spec/utils/logger_spec.rb[1:5] | passed | 0.
|
317
|
+
./spec/utils/logger_spec.rb[1:4] | passed | 0.00011 seconds |
|
318
|
+
./spec/utils/logger_spec.rb[1:5] | passed | 0.00014 seconds |
|
309
319
|
./spec/utils/redactor_spec.rb[1:1:1] | passed | 0.00004 seconds |
|
310
|
-
./spec/utils/redactor_spec.rb[1:1:2] | passed | 0.
|
311
|
-
./spec/utils/redactor_spec.rb[1:1:3] | passed | 0.
|
320
|
+
./spec/utils/redactor_spec.rb[1:1:2] | passed | 0.00002 seconds |
|
321
|
+
./spec/utils/redactor_spec.rb[1:1:3] | passed | 0.00002 seconds |
|
312
322
|
./spec/utils/redactor_spec.rb[1:2:1] | passed | 0.00003 seconds |
|
313
|
-
./spec/utils/redactor_spec.rb[1:2:2] | passed | 0.
|
314
|
-
./spec/utils/redactor_spec.rb[1:2:3] | passed | 0.
|
315
|
-
./spec/utils/redactor_spec.rb[1:2:4] | passed | 0.
|
316
|
-
./spec/utils/redactor_spec.rb[1:3:1] | passed | 0.
|
323
|
+
./spec/utils/redactor_spec.rb[1:2:2] | passed | 0.00003 seconds |
|
324
|
+
./spec/utils/redactor_spec.rb[1:2:3] | passed | 0.00003 seconds |
|
325
|
+
./spec/utils/redactor_spec.rb[1:2:4] | passed | 0.00004 seconds |
|
326
|
+
./spec/utils/redactor_spec.rb[1:3:1] | passed | 0.00003 seconds |
|
317
327
|
./spec/utils/redactor_spec.rb[1:3:2] | passed | 0.00003 seconds |
|
318
328
|
./spec/utils/redactor_spec.rb[1:3:3] | passed | 0.00002 seconds |
|
319
329
|
./spec/utils/redactor_spec.rb[1:4:1] | passed | 0.0001 seconds |
|
@@ -29,6 +29,10 @@ module SchwabRb
|
|
29
29
|
@position_effect = position_effect
|
30
30
|
end
|
31
31
|
|
32
|
+
def instrument_id
|
33
|
+
instrument.instrument_id
|
34
|
+
end
|
35
|
+
|
32
36
|
def call?
|
33
37
|
put_call == "CALL"
|
34
38
|
end
|
@@ -53,6 +57,10 @@ module SchwabRb
|
|
53
57
|
instrument.symbol
|
54
58
|
end
|
55
59
|
|
60
|
+
def description
|
61
|
+
instrument.description
|
62
|
+
end
|
63
|
+
|
56
64
|
def to_h
|
57
65
|
{
|
58
66
|
legId: @leg_id,
|
@@ -27,8 +27,12 @@ module SchwabRb
|
|
27
27
|
@position_effect = position_effect
|
28
28
|
end
|
29
29
|
|
30
|
+
def instrument_id
|
31
|
+
instrument.instrument_id
|
32
|
+
end
|
33
|
+
|
30
34
|
def symbol
|
31
|
-
|
35
|
+
instrument.symbol
|
32
36
|
end
|
33
37
|
|
34
38
|
def underlying_symbol
|
@@ -60,7 +64,7 @@ module SchwabRb
|
|
60
64
|
end
|
61
65
|
|
62
66
|
def fee?
|
63
|
-
%w[OPT_REG_FEE TAF_FEE SEC_FEE].include?(fee_type)
|
67
|
+
%w[OPT_REG_FEE TAF_FEE SEC_FEE INDEX_OPTION_FEE].include?(fee_type)
|
64
68
|
end
|
65
69
|
|
66
70
|
def commission?
|
@@ -137,6 +141,10 @@ module SchwabRb
|
|
137
141
|
transfer_items.find { |ti| ti.asset? }.symbol
|
138
142
|
end
|
139
143
|
|
144
|
+
def asset_instrument_id
|
145
|
+
transfer_items.find { |ti| ti.asset? }.instrument_id
|
146
|
+
end
|
147
|
+
|
140
148
|
def to_h
|
141
149
|
{
|
142
150
|
activity_id: @activity_id,
|
@@ -0,0 +1,103 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'schwab_rb'
|
4
|
+
|
5
|
+
module SchwabRb
|
6
|
+
module Orders
|
7
|
+
class IronCondorOrder
|
8
|
+
class << self
|
9
|
+
def build(
|
10
|
+
account_number:,
|
11
|
+
put_short_symbol:,
|
12
|
+
put_long_symbol:,
|
13
|
+
call_short_symbol:,
|
14
|
+
call_long_symbol:,
|
15
|
+
price:,
|
16
|
+
credit_debit: :credit,
|
17
|
+
order_instruction: :open,
|
18
|
+
quantity: 1
|
19
|
+
)
|
20
|
+
schwab_order_builder.new.tap do |builder|
|
21
|
+
builder.set_account_number(account_number)
|
22
|
+
builder.set_order_strategy_type('SINGLE')
|
23
|
+
builder.set_session(SchwabRb::Orders::Session::NORMAL)
|
24
|
+
builder.set_duration(SchwabRb::Orders::Duration::DAY)
|
25
|
+
builder.set_order_type(order_type(credit_debit))
|
26
|
+
builder.set_complex_order_strategy_type(SchwabRb::Order::ComplexOrderStrategyTypes::IRON_CONDOR)
|
27
|
+
builder.set_quantity(quantity)
|
28
|
+
builder.set_price(price)
|
29
|
+
|
30
|
+
instructions = leg_instructions_for_position(order_instruction, credit_debit)
|
31
|
+
|
32
|
+
builder.add_option_leg(
|
33
|
+
instructions[:put_short],
|
34
|
+
put_short_symbol,
|
35
|
+
quantity
|
36
|
+
)
|
37
|
+
builder.add_option_leg(
|
38
|
+
instructions[:put_long],
|
39
|
+
put_long_symbol,
|
40
|
+
quantity
|
41
|
+
)
|
42
|
+
builder.add_option_leg(
|
43
|
+
instructions[:call_short],
|
44
|
+
call_short_symbol,
|
45
|
+
quantity
|
46
|
+
)
|
47
|
+
builder.add_option_leg(
|
48
|
+
instructions[:call_long],
|
49
|
+
call_long_symbol,
|
50
|
+
quantity
|
51
|
+
)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def order_type(credit_debit)
|
56
|
+
if credit_debit == :credit
|
57
|
+
SchwabRb::Order::Types::NET_CREDIT
|
58
|
+
else
|
59
|
+
SchwabRb::Order::Types::NET_DEBIT
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def leg_instructions_for_position(order_instruction, credit_debit)
|
64
|
+
if order_instruction == :open && credit_debit == :credit
|
65
|
+
{
|
66
|
+
put_short: SchwabRb::Orders::OptionInstructions::SELL_TO_OPEN,
|
67
|
+
put_long: SchwabRb::Orders::OptionInstructions::BUY_TO_OPEN,
|
68
|
+
call_short: SchwabRb::Orders::OptionInstructions::SELL_TO_OPEN,
|
69
|
+
call_long: SchwabRb::Orders::OptionInstructions::BUY_TO_OPEN
|
70
|
+
}
|
71
|
+
elsif order_instruction == :open && credit_debit == :debit
|
72
|
+
{
|
73
|
+
put_short: SchwabRb::Orders::OptionInstructions::BUY_TO_OPEN,
|
74
|
+
put_long: SchwabRb::Orders::OptionInstructions::SELL_TO_OPEN,
|
75
|
+
call_short: SchwabRb::Orders::OptionInstructions::BUY_TO_OPEN,
|
76
|
+
call_long: SchwabRb::Orders::OptionInstructions::SELL_TO_OPEN
|
77
|
+
}
|
78
|
+
elsif order_instruction == :close && credit_debit == :credit
|
79
|
+
{
|
80
|
+
put_short: SchwabRb::Orders::OptionInstructions::BUY_TO_CLOSE,
|
81
|
+
put_long: SchwabRb::Orders::OptionInstructions::SELL_TO_CLOSE,
|
82
|
+
call_short: SchwabRb::Orders::OptionInstructions::BUY_TO_CLOSE,
|
83
|
+
call_long: SchwabRb::Orders::OptionInstructions::SELL_TO_CLOSE
|
84
|
+
}
|
85
|
+
elsif order_instruction == :close && credit_debit == :debit
|
86
|
+
{
|
87
|
+
put_short: SchwabRb::Orders::OptionInstructions::SELL_TO_CLOSE,
|
88
|
+
put_long: SchwabRb::Orders::OptionInstructions::BUY_TO_CLOSE,
|
89
|
+
call_short: SchwabRb::Orders::OptionInstructions::SELL_TO_CLOSE,
|
90
|
+
call_long: SchwabRb::Orders::OptionInstructions::BUY_TO_CLOSE
|
91
|
+
}
|
92
|
+
else
|
93
|
+
raise "Unsupported order instruction: #{order_instruction} with credit/debit: #{credit_debit}"
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def schwab_order_builder
|
98
|
+
SchwabRb::Orders::Builder
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'iron_condor_order'
|
4
|
+
require_relative 'vertical_order'
|
5
|
+
require_relative 'single_order'
|
6
|
+
|
7
|
+
module SchwabRb
|
8
|
+
module Orders
|
9
|
+
class OrderFactory
|
10
|
+
class << self
|
11
|
+
def build(**options)
|
12
|
+
case options[:strategy_type] || 'none'
|
13
|
+
when 'ironcondor'
|
14
|
+
IronCondorOrder.build(
|
15
|
+
put_short_symbol: options[:put_short_symbol],
|
16
|
+
put_long_symbol: options[:put_long_symbol],
|
17
|
+
call_short_symbol: options[:call_short_symbol],
|
18
|
+
call_long_symbol: options[:call_long_symbol],
|
19
|
+
price: options[:price],
|
20
|
+
account_number: options[:account_number],
|
21
|
+
credit_debit: options[:credit_debit] || :credit,
|
22
|
+
order_instruction: options[:order_instruction] || :open,
|
23
|
+
quantity: options[:quantity] || 1
|
24
|
+
)
|
25
|
+
when 'vertical' # call or put spreads
|
26
|
+
VerticalOrder.build(
|
27
|
+
short_leg_symbol: options[:short_leg_symbol],
|
28
|
+
long_leg_symbol: options[:long_leg_symbol],
|
29
|
+
price: options[:price],
|
30
|
+
account_number: options[:account_number],
|
31
|
+
credit_debit: options[:credit_debit] || :credit,
|
32
|
+
order_instruction: options[:order_instruction] || :open,
|
33
|
+
quantity: options[:quantity] || 1
|
34
|
+
)
|
35
|
+
when 'single'
|
36
|
+
SingleOrder.build(
|
37
|
+
symbol: options[:symbol],
|
38
|
+
price: options[:price],
|
39
|
+
account_number: options[:account_number],
|
40
|
+
credit_debit: options[:credit_debit] || :credit,
|
41
|
+
order_instruction: options[:order_instruction] || :open,
|
42
|
+
quantity: options[:quantity] || 1
|
43
|
+
)
|
44
|
+
else
|
45
|
+
raise "Unsupported trade strategy: #{options[:strategy_type] || 'none'}"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'schwab_rb'
|
4
|
+
|
5
|
+
module SchwabRb
|
6
|
+
module Orders
|
7
|
+
class SingleOrder
|
8
|
+
class << self
|
9
|
+
def build(symbol:, price:, account_number:, credit_debit: :credit, order_instruction: :open, quantity: 1)
|
10
|
+
schwab_order_builder.new.tap do |builder|
|
11
|
+
builder.set_account_number(account_number)
|
12
|
+
builder.set_order_strategy_type('SINGLE')
|
13
|
+
builder.set_session(SchwabRb::Orders::Session::NORMAL)
|
14
|
+
builder.set_duration(SchwabRb::Orders::Duration::DAY)
|
15
|
+
builder.set_order_type(order_type(credit_debit))
|
16
|
+
builder.set_quantity(quantity)
|
17
|
+
builder.set_price(price)
|
18
|
+
builder.add_option_leg(
|
19
|
+
leg_instruction(order_instruction, credit_debit),
|
20
|
+
symbol,
|
21
|
+
quantity
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def order_type(credit_debit)
|
27
|
+
if credit_debit == :credit
|
28
|
+
SchwabRb::Order::Types::NET_CREDIT
|
29
|
+
else
|
30
|
+
SchwabRb::Order::Types::NET_DEBIT
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def leg_instruction(order_instruction, credit_debit)
|
35
|
+
if order_instruction == :open && credit_debit == :credit
|
36
|
+
SchwabRb::Orders::OptionInstructions::SELL_TO_OPEN
|
37
|
+
elsif order_instruction == :open && credit_debit == :debit
|
38
|
+
SchwabRb::Orders::OptionInstructions::BUY_TO_OPEN
|
39
|
+
elsif order_instruction == :close && credit_debit == :debit
|
40
|
+
SchwabRb::Orders::OptionInstructions::BUY_TO_CLOSE
|
41
|
+
elsif order_instruction == :close && credit_debit == :credit
|
42
|
+
SchwabRb::Orders::OptionInstructions::SELL_TO_CLOSE
|
43
|
+
else
|
44
|
+
raise "Unsupported order instruction: #{order_instruction} with credit/debit: #{credit_debit}"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def schwab_order_builder
|
49
|
+
SchwabRb::Orders::Builder
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'schwab_rb'
|
4
|
+
|
5
|
+
module SchwabRb
|
6
|
+
module Orders
|
7
|
+
class VerticalOrder
|
8
|
+
class << self
|
9
|
+
def build(
|
10
|
+
short_leg_symbol:, long_leg_symbol:, price:,
|
11
|
+
account_number:, credit_debit: :credit, order_instruction: :open, quantity: 1
|
12
|
+
)
|
13
|
+
schwab_order_builder.new.tap do |builder|
|
14
|
+
builder.set_account_number(account_number)
|
15
|
+
builder.set_order_strategy_type('SINGLE')
|
16
|
+
builder.set_session(SchwabRb::Orders::Session::NORMAL)
|
17
|
+
builder.set_duration(SchwabRb::Orders::Duration::DAY)
|
18
|
+
builder.set_order_type(order_type(credit_debit))
|
19
|
+
builder.set_complex_order_strategy_type(SchwabRb::Order::ComplexOrderStrategyTypes::VERTICAL)
|
20
|
+
builder.set_quantity(quantity)
|
21
|
+
builder.set_price(price)
|
22
|
+
builder.add_option_leg(
|
23
|
+
short_leg_instruction(order_instruction, credit_debit),
|
24
|
+
short_leg_symbol,
|
25
|
+
quantity
|
26
|
+
)
|
27
|
+
builder.add_option_leg(
|
28
|
+
long_leg_instruction(order_instruction, credit_debit),
|
29
|
+
long_leg_symbol,
|
30
|
+
quantity
|
31
|
+
)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def order_type(credit_debit)
|
36
|
+
if credit_debit == :credit
|
37
|
+
SchwabRb::Order::Types::NET_CREDIT
|
38
|
+
else
|
39
|
+
SchwabRb::Order::Types::NET_DEBIT
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def short_leg_instruction(order_instruction, credit_debit)
|
44
|
+
if order_instruction == :open && credit_debit == :credit
|
45
|
+
SchwabRb::Orders::OptionInstructions::SELL_TO_OPEN
|
46
|
+
elsif order_instruction == :open && credit_debit == :debit
|
47
|
+
SchwabRb::Orders::OptionInstructions::BUY_TO_OPEN
|
48
|
+
elsif order_instruction == :close && credit_debit == :credit
|
49
|
+
SchwabRb::Orders::OptionInstructions::SELL_TO_CLOSE
|
50
|
+
elsif order_instruction == :close && credit_debit == :debit
|
51
|
+
SchwabRb::Orders::OptionInstructions::BUY_TO_CLOSE
|
52
|
+
else
|
53
|
+
raise "Unsupported order instruction: #{order_instruction} with credit/debit: #{credit_debit}"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def long_leg_instruction(order_instruction, credit_debit)
|
58
|
+
if order_instruction == :open && credit_debit == :credit
|
59
|
+
SchwabRb::Orders::OptionInstructions::BUY_TO_OPEN
|
60
|
+
elsif order_instruction == :close && credit_debit == :credit
|
61
|
+
SchwabRb::Orders::OptionInstructions::SELL_TO_CLOSE
|
62
|
+
elsif order_instruction == :open && credit_debit == :debit
|
63
|
+
SchwabRb::Orders::OptionInstructions::SELL_TO_OPEN
|
64
|
+
elsif order_instruction == :close && credit_debit == :debit
|
65
|
+
SchwabRb::Orders::OptionInstructions::BUY_TO_CLOSE
|
66
|
+
else
|
67
|
+
raise "Unsupported order instruction: #{order_instruction} with credit/debit: #{credit_debit}"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def schwab_order_builder
|
72
|
+
SchwabRb::Orders::Builder
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
data/lib/schwab_rb/version.rb
CHANGED
data/lib/schwab_rb.rb
CHANGED
@@ -43,6 +43,10 @@ require_relative "schwab_rb/data_objects/option_expiration_chain"
|
|
43
43
|
require_relative "schwab_rb/data_objects/price_history"
|
44
44
|
require_relative "schwab_rb/data_objects/market_hours"
|
45
45
|
require_relative "schwab_rb/data_objects/market_movers"
|
46
|
+
require_relative "schwab_rb/orders/order_factory"
|
47
|
+
require_relative "schwab_rb/orders/iron_condor_order"
|
48
|
+
require_relative "schwab_rb/orders/vertical_order"
|
49
|
+
require_relative "schwab_rb/orders/single_order"
|
46
50
|
|
47
51
|
module SchwabRb
|
48
52
|
class Error < StandardError; end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: schwab_rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joseph Platta
|
8
8
|
bindir: exe
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-08-10 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: async
|
@@ -246,16 +246,20 @@ files:
|
|
246
246
|
- lib/schwab_rb/orders/equity_instructions.rb
|
247
247
|
- lib/schwab_rb/orders/errors.rb
|
248
248
|
- lib/schwab_rb/orders/instruments.rb
|
249
|
+
- lib/schwab_rb/orders/iron_condor_order.rb
|
249
250
|
- lib/schwab_rb/orders/option_instructions.rb
|
250
251
|
- lib/schwab_rb/orders/order.rb
|
252
|
+
- lib/schwab_rb/orders/order_factory.rb
|
251
253
|
- lib/schwab_rb/orders/price_link_basis.rb
|
252
254
|
- lib/schwab_rb/orders/price_link_type.rb
|
253
255
|
- lib/schwab_rb/orders/session.rb
|
256
|
+
- lib/schwab_rb/orders/single_order.rb
|
254
257
|
- lib/schwab_rb/orders/special_instruction.rb
|
255
258
|
- lib/schwab_rb/orders/stop_price_link_basis.rb
|
256
259
|
- lib/schwab_rb/orders/stop_price_link_type.rb
|
257
260
|
- lib/schwab_rb/orders/stop_type.rb
|
258
261
|
- lib/schwab_rb/orders/tax_lot_method.rb
|
262
|
+
- lib/schwab_rb/orders/vertical_order.rb
|
259
263
|
- lib/schwab_rb/price_history.rb
|
260
264
|
- lib/schwab_rb/quote.rb
|
261
265
|
- lib/schwab_rb/transaction.rb
|