#pragma once
#include <onepiece/models/AccountModel.h>
#include <onepiece/traderctp/TraderCTP.h>
#include <onepiece/marketctp/MarketCTP.h>
#include <onepiece/templates/ITraderApi.h>
#include <onepiece/templates/IMarketApi.h>
#include <onepiece/templates/ICoreListener.h>
#include <onepiece/templates/IPluginContext.h>
#include <onepiece/plugins/RecordDataContext.h>
#include <memory>
#include <fstream>
#include <unordered_map>
#include <boost/asio.hpp>
using namespace std;
class DataCore: public ICoreListener {
public:
DataCore() = delete;
DataCore(string configPath);
virtual ~DataCore();
public:
virtual void OnTraderReady(StatusInfoFieldSPtr statusInfoFieldSPtr);
virtual void OnMarketReady(StatusInfoFieldSPtr statusInfoFieldSPtr);
virtual void OnTickReceived(TickSPtr tickSPtr);
virtual void OnOrderReceived(OrderSPtr orderSPtr) {};
virtual void OnErrorOrderReceived(OrderSPtr orderSPtr) {};
virtual void OnTradeReceived(TradeSPtr tradeSPtr) {};
virtual void Run();
virtual ContractSPtr GetSysContractSPtr(const string & instrumentID);
public:
virtual const shared_ptr<vector<string>> SysInstruments();
virtual void UpdateContractsInfo(ContractSPtr contractSPtr);
virtual void DumpContractsInfoJson();
private:
AccountSPtr m_accountPtr;
unordered_map<string, unordered_map<string, string>> m_contractInfoMap;
shared_ptr<vector<string>> m_sysInstruments;
shared_ptr<thread> m_dumpThread;
ofstream m_marketDepthDataCsv;
};
量化交易之One Piece篇 - DataCore.h
最新推荐文章于 2025-06-06 21:48:36 发布