| Total Complexity | 0 |
| Total Lines | 72 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 1 | from trade.holder import Holder |
||
| 2 | from trade.occurrence import Occurrence |
||
| 3 | from trade.subject import Subject |
||
| 4 | |||
| 5 | # create a holder |
||
| 6 | holder = Holder() |
||
| 7 | |||
| 8 | # define some subject |
||
| 9 | some_asset = Subject('AST1') |
||
| 10 | |||
| 11 | # create an occurrence with that subject. |
||
| 12 | # In this example, a purchase of 100 units of the asset, |
||
| 13 | # for the value of $20. |
||
| 14 | some_occurrence = Occurrence( |
||
| 15 | some_asset, |
||
| 16 | '2018-01-02', |
||
| 17 | { |
||
| 18 | "quantity": 100, |
||
| 19 | "value": 20 |
||
| 20 | } |
||
| 21 | ) |
||
| 22 | |||
| 23 | # pass it to the holder |
||
| 24 | holder.trade(some_occurrence) |
||
| 25 | |||
| 26 | # check the holder state: |
||
| 27 | for subject, state in holder.state.items(): |
||
| 28 | print(subject) |
||
| 29 | print(state) |
||
| 30 | # AST1 |
||
| 31 | # {'value': 20.0, 'quantity': 100} |
||
| 32 | |||
| 33 | |||
| 34 | # create some other occurrence with that subject. |
||
| 35 | # In this example, a sale of 20 units of the asset, |
||
| 36 | # for the value of $30. |
||
| 37 | holder.trade(Occurrence( |
||
| 38 | some_asset, |
||
| 39 | '2018-01-03', |
||
| 40 | { |
||
| 41 | "quantity": -20, |
||
| 42 | "value": 30 |
||
| 43 | } |
||
| 44 | )) |
||
| 45 | |||
| 46 | # check the holder state. It should show a change in quantity |
||
| 47 | # and some profit: |
||
| 48 | for subject, state in holder.state.items(): |
||
| 49 | print(subject) |
||
| 50 | print(state) |
||
| 51 | # AST1 |
||
| 52 | # {'value': 20.0, 'quantity': 80} |
||
| 53 | |||
| 54 | |||
| 55 | # create some other occurrence with that subject. |
||
| 56 | # Now a purchase of 10 units of the asset, for the |
||
| 57 | # value of $20. |
||
| 58 | holder.trade(Occurrence( |
||
| 59 | some_asset, |
||
| 60 | '2018-01-04', |
||
| 61 | { |
||
| 62 | "quantity": 10, |
||
| 63 | "value": 25 |
||
| 64 | } |
||
| 65 | )) |
||
| 66 | |||
| 67 | # check the holder state. It should show a change in quantity |
||
| 68 | # and in the value of the subject: |
||
| 69 | for subject, state in holder.state.items(): |
||
| 70 | print(subject) |
||
| 71 | print(state) |
||
| 72 | # AST1 |
||
| 74 |