您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

[求助]程序的版本信息和编号在那个文件里? [金字塔]

  • 咨询内容: virtual DWORD GetVersion(),实现这个函数要访问哪个文件里的内容?

     

  • 金字塔客服: 请认真学习参考自带的ADDINDEMO范例

     

  • 用户回复: 不用实现,可以直接调用吗?

     

  • 网友回复: 不清楚你的需求,能否详细描述清楚,便于我们能及时准确的帮助到你

     

  • 网友回复:

    //主程序暴露给插件的接口
    interface IMainFramework 
    {
    public:
     IMainFramework(){};
     virtual ~IMainFramework(){};
     
     //取得主窗口句柄
     virtual HWND   GetMainWindow() = 0;

     //取主程序版本号
     virtual DWORD GetVersion() = 0;

     //取指定品种数据,成功取得数据返回TRUE,否则为FALSE
     virtual BOOL  GetDataInfo(PCALCINFO * pInfo) = 0;

     //取指定品种的动态及时报表
     virtual REPORT_STRUCT * GetReportData(char * szLabel, WORD wMarket) = 0;

     //取指定分类板块的品种数组
     //szName为分类或者板块名称,如"上海A股"等,nMode为类别,0市场分组,1分类板块,2系统板块(品种栏对应)
     virtual void GetReportData(CArray<BLOCK_STRUCT, BLOCK_STRUCT&> &arBlcok, char * szName, int nMode) = 0;

     //注册品种到数据通知,例如RegReportNotify("CL05",'MN');将合约注册到数据通知,当CL05有最新数据到达时触发ReportNotify事件。
     virtual BOOL RegReportNotify(char * szLabel, WORD wMarket) = 0;

     //取消品种数据注册,例如UnRegReportNotify("CL05",'MN'),CL05数据到达时不会再收到通知。
     virtual void UnRegReportNotify(char * szLabel, WORD wMarket) = 0;

     //下单委托交易
     // nType  下单类型 0限价 1市价 2停损 3限价停损
     // fLmtPrice 委托限价
     // fStopLmtPrice限价停损单(仅限IB外盘品种使用)
     // nVol      委托数量
     // nAspect      0买入 1卖出
     // lpszLabel    品种名称
     // wMarket      品种市场
     // bMustOK      是否弹出下单确认
     // lpszAccount  下单帐户,为空则为当前活动帐户
     // nKaiPing     0开仓 1平仓 2平今
     // nTouBao      0投机 1保值
     // bOrderQueue  是否为队列委托方式,即成交上一笔后再委托下一笔
     // 返回值 :     返回本次的委托编号
     virtual long PlaceOrder(BYTE nType, float fLmtPrice, float fStopLmtPrice, UINT nVol, BYTE nAspact, LPCSTR lpszLabel, WORD wMarket,
      BOOL bMustOK, LPCSTR lpszAccount, BYTE nKaiPing, BYTE nTouBao, BYTE bOrderQueue) = 0; 

     //撤单
     // nOrderID     委托编号,即PlaceOrder委托下单的委托编号. 当bOrderQueue为2或3时,该变量为CANCEL_ORDER_EX结构体指针
     // bOrderQueue  是否为队列方式的委托撤单,即必须等到该笔撤单成功后再继续后续的下单任务
     //    当bOrderQueue=0时为 不使用队列下单 为1时为队列下单模式,当bOrderQueue为2或者3时为下列情况之一
     //    当为2时为CANCEL_ORDER_EX结构体中不用队列下单模式; 当为3时表示CANCEL_ORDER_EX结构体中,使用队列下单模式
     virtual void OrderCancel(long nOrderID, BYTE bOrderQueue) = 0;

     //注册WINDOWS窗口消息,金字塔将以事件方式通知各种
     virtual void RegisterMsg(HWND hMsgWnd, DWORD dwMsg) = 0;

     //得到套利合约信息
     //返回TRUE表示成功 ,返回套利指数内定义的套利品种信息
     virtual BOOL GetTaoliInfo(char * szTaoliLabel, CArray<TAOLI_INFO,TAOLI_INFO&> &m_arTaoliInfo) = 0;

     //得到IB品种持仓数量
     virtual int GetHolding() = 0;

     //得到国内期货的持仓数量
     virtual int GetHolding2(char * szAccount) = 0;

     //到所有IB帐户当前有效的未成交合约品种数量 
     virtual int GetOrderNum() = 0;

     //得到所有国内期货当前有效的未成交合约品种数量 
     virtual int GetOrderNum2() = 0;

     //得到IB帐户的成交明细数量 
     virtual int GetTradeCount() = 0;
     
     //得到指定帐户的国内期货帐户的成交明细数量 
     virtual int GetTradeCount2(CString Account) = 0;

     //当前已经登陆IB顾问帐户子帐户数量,若登陆的是IB普通帐户此属性为1 
     virtual int GetIBACCount() = 0;

     //当前已经登陆国内期货帐户数量(包含无效登陆等情况在内的)
     virtual int GetCTPAcCount() = 0; 

     //得到当前默认帐户信息 
     virtual VARIANT GetAccount(short nType) = 0;

     //得到指定的国内期货帐户信息 
     virtual VARIANT GetAccount2(short nType, char * szAccount) = 0;

     /*取指定索引的持仓IB合约信息
     Index        输入参数,指定基于0索引的持仓和约信息,持仓和约总量参见 Holding 属性。
     Hold         输出参数,该该持仓品种持仓量,若空仓返回负数
     MktPrice     输出参数,该持仓品种市价
     AvgPrice     输出参数,该持仓品种均价
     MktValue     输出参数,该持仓品种市值
     AgeCost      输出参数,该持仓品种成本
     PNL          输出参数,该持仓品种浮动盈亏
     Code         输出参数,该持仓品种代码
     Market       输出参数,该持仓品种市场
     返回值:      成功返回1,失败返回0 */
     virtual BOOL HoldingInfo(UINT Index, int &Hold, double &MktPrice, double &AvgPrice, double &MktValue, double &AgeCost, double &PNL, CString &Code,  WORD &Market)  = 0; 
     
     /*取指定索引的指定其他帐户(CTP,金仕达,恒生,股票等)的合约持仓信息 
     Index        输入参数,指定基于0索引的持仓和约信息,持仓和约总量参见 Holding2 属性。
     BuyHoding    输出参数,该该持仓品种买入持仓总量
     BuyCost      输出参数,该持仓品种持仓成本
     BuyTodayHoding     输出参数,该持仓品种今买持总量
     SellHoding     输出参数,该持仓品种卖出持仓总量
     SellCost      输出参数,该持仓品种卖出持仓成本
     SellTodayHoding 输出参数,该持仓品种的今卖出持仓总量
     PNL          输出参数,该持仓品种浮动盈亏
     UseMargin    输出参数,该持仓品种的保证金占用
     Code         输出参数,该持仓品种代码
     Market       输出参数,该持仓品种市场
     Account      输入参数,可缺省,登陆其他帐户(CTP,金仕达,恒生,股票等)的帐户名称,若不填写则表示当前默认的帐户
     返回值:      成功返回1,失败返回0 */
     virtual BOOL HoldingInfo2(UINT Index, int &BuyHoding, double &BuyCost, int &BuyTodayHoding, int &SellHoding, double &SellCost, int &SellTodayHoding, double &PNL, double &UseMargin, CString &Code, WORD &Market, CString Account) = 0;

     /*
     * 取指定基于0索引的未成交IB合约信息
     Index        输入参数,指定基于0索引的持仓和约信息,持仓和约总量参见 OrderNum 属性。
     OrderID   输出参数, 未成交订单ID
     ConSign      输出参数,本次委托数量
     Filled       输出参数,已成交数量
     Remaining    输出参数,未成交数量
     Action       输出参数,动作类型 0买入 1卖出
     OrderType    输出参数,订单类型 0限价 1市价 2停损 3市价停损
     LmtPrice     输出参数,当OrderType等于0时为限价,为3时为停损限价
     auxPrice     输出参数,停损价格
     Account      输出参数,帐户信息
     Code         输出参数,该持仓品种代码
     Market       输出参数,该持仓品种市场
     返回值:      成功返回1,失败返回0
     */
     virtual BOOL OrderInfo(UINT Index, int &OrderID, int &ConSign, int &Filled, int &Remaining, int &Action, int &OrderType, double &LmtPrice, double &auxPrice, CString &Account, CString &Code, WORD &Market) = 0;
     
     /*取指定基于0索引的未成交其他帐户(CTP,金仕达,恒生,股票等)合约信息
     Index        输入参数,指定基于0索引的持仓和约信息,持仓和约总量参见 OrderNum2 属性。
     OrderID      输出参数, 未成交订单ID
     ConSign      输出参数,本次委托数量
     Filled       输出参数,已成交数量
     Remaining    输出参数,未成交数量
     Action       输出参数,动作类型 0买入 1卖出
     OrderType    输出参数,订单类型 0限价 1市价 2停损 3市价停损
     LmtPrice     输出参数,当OrderType等于0时为限价,为3时为停损限价
     Account      输出参数,帐户信息
     Kaiping      输出参数,开平仓类型 0开仓 1平仓
     Code         输出参数,该持仓品种代码
     Market       输出参数,该持仓品种市场
     返回值:      成功返回1,失败返回0 */ 
     virtual BOOL OrderInfo2(UINT Index, int &OrderID, int &ConSign, int &Filled, int &Remaining, int &Action, int &OrderType, double &LmtPrice, CString &Account, int &Kaiping, CString &Code, WORD &Market) = 0;
     
     /*获取指定品种的合约种类
     Code         输入参数,指定的品种代码
     Market       输入参数,指定的品种市场
     返回值:是可以交易的国内期货接口品种返回1,IB接口返回0*/
     virtual int StockType(char * szCode, WORD wMarket)  = 0;

     /*取指定品种的和约信息
     Code         输入参数,指定的品种代码
     Market       输入参数,指定的品种市场
     Multipliter  输出参数,该品种的乘数/单位
     MinTick      输出参数,该品种的最小变动单位
     ShortPercent 输出参数,该品种的空头保证金
     LongPercent  输出参数,该品种的多头保证金
     返回值:成功返回1否则返回0  
     */
     virtual int GetContract(char *szCode, WORD wMarket, float &Multipliter, float &MinTick, float &ShortPercent, float &LongPercent) = 0;
     
     /*计算指定品种的本次交易手续费用。请用户在交易费率设置上预先设置好不同品种的各种交易费率情况,这样才能通过此方法得到正确的结果。
     Code         指定的品种代码
     Market       指定的品种市场
     lmtPrice     指定的限价
     Volume       委托数量
     Type         成交方向 0开仓 1平仓 2平今
     返回值:      返回计算后的手续费用*/
     virtual float GetChargeByNum(char * szCode, WORD wMarket, float lmtPrice, int Volume, int Type) = 0;
     
     /*取指定基于0索引序号的IB帐户成交明细
     Index        输入参数,基于0索引的成交明细
     Date         输出参数,成交时间
     Code         输出参数,品种代码
     Market       输出参数,品种市场
     OrderType    输出参数,成交单类型,0限价 1市价 2停损 3限价停损
     Action       输出参数,成交方向 0买入 1卖出
     Price        输出参数,成交价格
     Volume       输出参数,成交量
     Account      输出参数,成交帐户
     返回值:      成功返回1,失败返回0*/
     virtual int TradeDetalied(int Index, DATE &Date, CString &Code, WORD &Market, int &OrderType, int &Action, float &Price, int &Volume, CString &Account) = 0;
     
     /*取指定基于0索引序号的其他帐户(CTP,金仕达,恒生,股票等)帐户成交明细
     Index        输入参数,基于0索引的成交明细
     Date         输出参数,成交时间
     Code         输出参数,品种代码
     Market       输出参数,品种市场
     OrderType    输出参数,成交单类型,0限价 1市价 2停损 3限价停损
     Action       输出参数,成交方向 0买入 1卖出
     Price        输出参数,成交价格
     Volume       输出参数,成交量
     Kaiping      输出参数,开平仓类型,0开仓 1平仓
     Account      输入参数,成交帐户,可省略,若省略则表示当前默认激活帐户
     返回值:      成功返回1,失败返回0*/
     virtual int TradeDetalied2(int Index, DATE &Date, CString &Code, WORD &Market, int &OrderType, int &Action, float &Price, int &Volume, int &Kaiping, CString &Account) = 0;
     
     //得到指定基于0索引的IB帐户名称,例如IBAccountName(0)表示取第一个登陆的IB帐户 
     virtual CString GetIBAccountName(int nIndex) = 0;
     
     //得到指定基于0索引的其他帐户(CTP,金仕达,恒生,股票等)帐户名称(包含登陆未成功的),例如 CTPAccountName(0)表示取第一个登陆的用户名称 
     virtual CString GetCTPAccountName(int nIndex) = 0;
     
     //判断指定帐号是否是当前已登录有效帐号,例如 Order.IsAccount("351579"),如果该账户已登录则返回1,否则返回0 
     virtual int IsAccount(CString strAccount) = 0;
    };




    这些纯虚函数,不用实现,就能用吗?

    示例这样用的:

    void CMainWindowDlg::OnPaint()
    {
     CPaintDC dc(this); // device context for painting
     
     //显示出上证指数的及时报价
     REPORT_STRUCT * pReport = g_pMainFormework->GetReportData("000001",'HS');
     if(pReport)
     {
      CString strText;
      strText.Format("%s    开盘:%.2f  最高:%.2f  最低:%.2f  最新:%.2f", pReport->m_szName, pReport->m_fOpen, pReport->m_fHigh, pReport->m_fLow, pReport->m_fNewPrice);
    //  dc.TextOut(20,20,strText);
     }
    }


 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 1145508240  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容