test_doc  0.1
 全部  文件 函数 变量 宏定义 
test_crtFixedATC.cpp
浏览该文件的文档.
1 /*
2  * test_crtFixedATC.cpp
3  *
4  * Created on: 2013-2-14
5  * Author: fasiondog
6  */
7 
8 #ifdef TEST_ALL_IN_ONE
9  #include <boost/test/unit_test.hpp>
10 #else
11  #define BOOST_TEST_MODULE test_hikyuu_trade_manage_suite
12  #include <boost/test/unit_test.hpp>
13 #endif
14 
15 #include <hikyuu/StockManager.h>
16 #include <hikyuu/trade_manage/crt/crtFixedATC.h>
17 
18 using namespace hku;
19 
27 BOOST_AUTO_TEST_CASE( test_crtFixedATC ) {
28  StockManager& sm = StockManager::instance();
29  Stock stock;
30  CostRecord result, expect;
31  TradeCostPtr cost_func = crtFixedATC(0.0018, 5, 0.001, 0.001, 1.0);
32 
34  result = cost_func->getBuyCost(Datetime(200101010000), stock, 10.0, 100);
35  BOOST_CHECK(result == expect);
36  result = cost_func->getSellCost(Datetime(200101010000), stock, 10.0, 1000);
37  BOOST_CHECK(result == expect);
38 
40  stock = sm.getStock("sh600004");
41  result = cost_func->getBuyCost(Datetime(200101010000), stock, 10.0, 100);
42  expect.commission = 5.0;
43  expect.stamptax = 0.0;
44  expect.transferfee = 1.0;
45  expect.total = 6.0;
46  BOOST_CHECK(result == expect);
47 
49  result = cost_func->getBuyCost(Datetime(200101010000), stock, 10.0, 1000);
50  expect.commission = 18.0;
51  expect.stamptax = 0.0;
52  expect.transferfee = 1.0;
53  expect.total = 19.0;
54  BOOST_CHECK(result == expect);
55 
57  result = cost_func->getBuyCost(Datetime(200101010000), stock, 10.0, 2100);
58  expect.commission = 37.80;
59  expect.stamptax = 0.0;
60  expect.transferfee = 2.1;
61  expect.total = 39.9;
62  BOOST_CHECK(result == expect);
63 
65  stock = sm.getStock("sh600004");
66  result = cost_func->getSellCost(Datetime(200101010000), stock, 10.0, 100);
67  expect.commission = 5.0;
68  expect.stamptax = 1.0;
69  expect.transferfee = 1.0;
70  expect.total = 7.0;
71  BOOST_CHECK(result == expect);
72 
74  result = cost_func->getSellCost(Datetime(200101010000), stock, 10.0, 1000);
75  expect.commission = 18.0;
76  expect.stamptax = 10.0;
77  expect.transferfee = 1.0;
78  expect.total = 29.0;
79  BOOST_CHECK(result == expect);
80 
82  result = cost_func->getSellCost(Datetime(200101010000), stock, 10.0, 2100);
83  expect.commission = 37.80;
84  expect.stamptax = 21;
85  expect.transferfee = 2.1;
86  expect.total = 60.9;
87  BOOST_CHECK(result == expect);
88 
90  stock = sm.getStock("sz000001");
91  result = cost_func->getBuyCost(Datetime(200101010000), stock, 10.0, 100);
92  expect.commission = 5.0;
93  expect.stamptax = 0.0;
94  expect.transferfee = 0.0;
95  expect.total = 5.0;
96  BOOST_CHECK(result == expect);
97 
99  result = cost_func->getBuyCost(Datetime(200101010000), stock, 10.0, 1000);
100  expect.commission = 18.0;
101  expect.stamptax = 0.0;
102  expect.transferfee = 0.0;
103  expect.total = 18.0;
104  BOOST_CHECK(result == expect);
105 
107  result = cost_func->getBuyCost(Datetime(200101010000), stock, 10.0, 2100);
108  expect.commission = 37.80;
109  expect.stamptax = 0.0;
110  expect.transferfee = 0.0;
111  expect.total = 37.8;
112  BOOST_CHECK(result == expect);
113 
115  result = cost_func->getSellCost(Datetime(200101010000), stock, 10.0, 100);
116  expect.commission = 5.0;
117  expect.stamptax = 1.0;
118  expect.transferfee = 0.0;
119  expect.total = 6.0;
120  BOOST_CHECK(result == expect);
121 
123  result = cost_func->getSellCost(Datetime(200101010000), stock, 10.0, 1000);
124  expect.commission = 18.0;
125  expect.stamptax = 10.0;
126  expect.transferfee = 0.0;
127  expect.total = 28.0;
128  BOOST_CHECK(result == expect);
129 
131  result = cost_func->getSellCost(Datetime(200101010000), stock, 10.0, 2100);
132  expect.commission = 37.80;
133  expect.stamptax = 21;
134  expect.transferfee = 0.0;
135  expect.total = 58.8;
136  BOOST_CHECK(result == expect);
137 }
138