10 #include <boost/test/unit_test.hpp> 12 #define BOOST_TEST_MODULE test_hikyuu_trade_sys_suite 13 #include <boost/test/unit_test.hpp> 16 #include <hikyuu/StockManager.h> 17 #include <hikyuu/trade_manage/crt/crtTM.h> 18 #include <hikyuu/trade_sys/portfolio/crt/PF_Simple.h> 19 #include <hikyuu/trade_sys/selector/crt/SE_Fixed.h> 20 #include <hikyuu/trade_sys/allocatefunds/crt/AF_EqualWeight.h> 22 #include <hikyuu/trade_sys/system/crt/SYS_Simple.h> 23 #include <hikyuu/trade_sys/signal/crt/SG_CrossGold.h> 24 #include <hikyuu/trade_sys/moneymanager/crt/MM_FixedCount.h> 25 #include <hikyuu/indicator/crt/EMA.h> 38 StockManager& sm = StockManager::instance();
41 SYSPtr sys = SYS_Simple();
42 sys->setSG(SG_CrossGold(OP(EMA(12)), OP(EMA(26))));
43 sys->setMM(MM_FixedCount(100));
44 SYSPtr pro_sys = sys->clone(
false,
false);
46 TMPtr tm = crtTM(Datetime(199001010000L), 500000);
47 SEPtr se = SE_Fixed();
48 AFPtr af = AF_EqualWeight();
49 PFPtr pf = PF_Simple(tm, se, af);
51 KQuery query = KQueryByDate(Datetime(201101010000L), Null<Datetime>(),
57 sys->setTM(tm->clone());
58 sys->run(sm[
"sz000001"], query);
59 sys->getTM()->tocsv(sm.tmpdir());
61 se->addStock(sm[
"sz000001"], pro_sys);
64 tm->tocsv(sm.tmpdir());
66 TradeRecordList tr1 = sys->getTM()->getTradeList();
67 TradeRecordList tr2 = tm->getTradeList();
68 BOOST_CHECK(tr1.size() == tr2.size());
BOOST_AUTO_TEST_CASE(test_PF_for_delay_and_no_adjust)