admin
2024-07-05 3ef188e6075649f4c72e3e7588d8966e1071f2ff
CBTrade/MainFrame.h
@@ -4,6 +4,10 @@
#include <wx/dataview.h>
#include <list>
#include "ViewManager.h"
#include "DataStruct.h"
#include "TickDataRequestStrategy.h"
#include "JueJinDataUtil.h"
#include "BlinkingMessageDialog.h"
@@ -11,17 +15,142 @@
{
private:
   ViewManager* viewManager;
   std::list<PositionInfo> orginPositionList;
   std::list<PositionInfo> positionList;
   wxString selectPositionId;// 选中的持仓ID
   long msgExpireTime;
   TickDataRequestStrategy* tickDataRequestStrategy;
   bool killed;
   BlinkingMessageDialog* blinkingMessageDialog;
   int requestCount;
public:
   // Constructor
   MainFrame(const wxString& title);
   MainFrame(const wxString& title, wxPoint position=wxDefaultPosition, wxSize size= wxDefaultSize);
   // Event handlers
   void OnQuit(wxCommandEvent& event);
   void OnAbout(wxCommandEvent& event);
   void OnTextEnter(wxCommandEvent& event);
private:
   // This class handles events
   DECLARE_EVENT_TABLE()
   /// <summary>
   /// 绑定事件
   /// </summary>
   void bindEvent();
   /// <summary>
   /// 初始化数据
   /// </summary>
   void initData();
   /// <summary>
   /// 初始化任务
   /// </summary>
   void initTask();
   /// <summary>
   /// 获取持仓
   /// </summary>
   void requestPositions();
   /// <summary>
   /// 获取资金
   /// </summary>
   void requestMoney();
   /// <summary>
   /// 开始持仓任务
   /// </summary>
   /// <param name="context"></param>
   static void startRequestPositionsTask(MainFrame *context);
   /// <summary>
   /// 获取持仓任务
   /// </summary>
   /// <param name="context"></param>
   static void startRequestMoneyTask(MainFrame* context);
   /// <summary>
   /// 显示信息
   /// </summary>
   /// <param name="msg"></param>
   /// <param name="type"></param>
   void showMsg(wxString msg, MsgTypeEnum type);
   /// <summary>
   /// 清除信息
   /// </summary>
   /// <param name="context"></param>
   static void clearMsg(MainFrame* context);
   /// <summary>
   /// 运行掘金策略
   /// </summary>
   /// <param name="context"></param>
   static void runJueJinStrategy(MainFrame* context);
   /// <summary>
   /// 掘金行情数据回调
   /// </summary>
   /// <param name="tick"></param>
   /// <param name="context"></param>
   static void tickDataCallback(Tick *tick, void* context);
   /// <summary>
   /// 获取选中的持仓
   /// </summary>
   /// <returns></returns>
   PositionInfo getSeclectedPosition();
   /// <summary>
   /// Tick 回调
   /// </summary>
   /// <param name="info"></param>
   /// <param name="xStartTime"></param>
   /// <param name="xEndTime"></param>
   static void OnTickCallBack(CodeBasicInfo info, wxString xStartTime, wxString xEndTime, std::list<TickTradeData> buyPoints, std::list<TickTradeData> sellPoints, float costRate, void* context);
protected:
   LRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
private:
   /// <summary>
   /// 刷新事件
   /// </summary>
   /// <param name="event"></param>
   void OnBtnRefreshClick(wxCommandEvent& event);
   /// <summary>
   /// 买入点击事件
   /// </summary>
   /// <param name="event"></param>
   void OnBtnBuyClick(wxCommandEvent& event);
   /// <summary>
   /// 卖出
   /// </summary>
   /// <param name="event"></param>
   void OnBtnSellClick(wxCommandEvent& event);
   void OnPositionSelectionChanged(wxDataViewEvent& event);
    /// <summary>
    /// 回测
    /// </summary>
    /// <param name="event"></param>
    void OnBtnBackTest(wxCommandEvent& event);
   /// <summary>
   /// 窗口关闭
   /// </summary>
   /// <param name="event"></param>
   void OnClose(wxCloseEvent& event);
};