@@ -729,6 +729,34 @@ def testParse(self):
729
729
self .assertEqual (instance .relatedTransactionID , "3456" )
730
730
731
731
732
+ class TradeAutoFXTestCase (unittest .TestCase ):
733
+ data = ET .fromstring (
734
+ ('<Trade currency="USD" symbol="USD.EUR" description="USD.EUR" '
735
+ 'dateTime="2024-08-01;153045" tradeDate="2024-08-01" quantity="1337.0" '
736
+ 'tradePrice="1.0" proceeds="1337.0" ibCommission="0" ibCommissionCurrency="USD" '
737
+ 'notes="AFx" cost="0" buySell="BUY" ibOrderID="1234567890" openDateTime="" '
738
+ 'levelOfDetail="EXECUTION" fxRateToBase="1" assetCategory="CASH" taxes="0" '
739
+ 'closePrice="0" fifoPnlRealized="0" origTradePrice="0" origTradeDate="" '
740
+ 'cusip="" isin="" />' )
741
+ )
742
+
743
+ def testParse (self ):
744
+ instance = parser .parse_data_element (self .data )
745
+ self .assertIsInstance (instance , Types .Trade )
746
+ self .assertEqual (instance .currency , "USD" )
747
+ self .assertEqual (instance .symbol , "USD.EUR" )
748
+ self .assertEqual (instance .description , "USD.EUR" )
749
+ self .assertEqual (instance .dateTime , datetime .datetime (2024 , 8 , 1 , 15 , 30 , 45 ))
750
+ self .assertEqual (instance .tradeDate , datetime .date (2024 , 8 , 1 ))
751
+ self .assertEqual (instance .quantity , decimal .Decimal ("1337.0" ))
752
+ self .assertEqual (instance .tradePrice , decimal .Decimal ("1.0" ))
753
+ self .assertEqual (instance .proceeds , decimal .Decimal ("1337.0" ))
754
+ self .assertEqual (instance .notes , (enums .Code .AUTOFX , ))
755
+ self .assertEqual (instance .buySell , enums .BuySell .BUY )
756
+ self .assertEqual (instance .levelOfDetail , "EXECUTION" )
757
+ self .assertEqual (instance .assetCategory , enums .AssetClass .CASH )
758
+
759
+
732
760
class OptionEAETestCase (unittest .TestCase ):
733
761
data = ET .fromstring (
734
762
('<OptionEAE accountId="U123456" acctAlias="ibflex test" model="" '
@@ -1878,7 +1906,7 @@ def testParse(self):
1878
1906
self .assertEqual (instance .cost , decimal .Decimal ("876.9314" ))
1879
1907
self .assertEqual (instance .fifoPnlRealized , decimal .Decimal ("0" ))
1880
1908
self .assertEqual (instance .fxPnl , decimal .Decimal ("0" ))
1881
- self .assertEqual (instance .mtmPnl , decimal .Decimal ("48" ))
1909
+ self .assertEqual (instance .mtmPnl , decimal .Decimal ("48" ))
1882
1910
self .assertEqual (instance .origTradePrice , None )
1883
1911
self .assertEqual (instance .origTradeDate , None )
1884
1912
self .assertEqual (instance .origTradeID , None )
@@ -1892,7 +1920,7 @@ def testParse(self):
1892
1920
self .assertEqual (instance .exchOrderId , None )
1893
1921
self .assertEqual (instance .extExecID , None )
1894
1922
self .assertEqual (instance .orderTime , datetime .datetime (2021 , 2 , 3 , 10 , 1 , 50 ))
1895
- self .assertEqual (instance .openDateTime , None )
1923
+ self .assertEqual (instance .openDateTime , None )
1896
1924
self .assertEqual (instance .holdingPeriodDateTime , None )
1897
1925
self .assertEqual (instance .whenRealized , None )
1898
1926
self .assertEqual (instance .whenReopened , None )
0 commit comments