SimuStatDlg.cpp
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:3k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. // SimuStatDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "SimuStatDlg.h"
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CSimuStatDlg dialog
  12. CSimuStatDlg::CSimuStatDlg(CWnd* pParent /*=NULL*/)
  13. : CDialog(CSimuStatDlg::IDD, pParent)
  14. {
  15. //{{AFX_DATA_INIT(CSimuStatDlg)
  16. // NOTE: the ClassWizard will add member initialization here
  17. //}}AFX_DATA_INIT
  18. m_pStrategy = NULL;
  19. }
  20. void CSimuStatDlg::SetStrategy( CStrategy * pStrategy )
  21. {
  22. m_pStrategy = pStrategy;
  23. }
  24. /***
  25. 设定策略结果统计信息
  26. */
  27. BOOL CSimuStatDlg::SetResults( )
  28. {
  29. if( NULL == m_pStrategy )
  30. return FALSE;
  31. CString strBuyTimes, strVictoryTimes, strYieldMax, strYieldMin, strYieldFin, strYieldIndex, strYieldStdDev, strXiapu;
  32. int nTimes = 0, nVictoryTimes = 0;
  33. double dYieldMax = 0, dYieldMin = 0;
  34. COpRecordContainer & container = m_pStrategy->RealGetOpRecord();
  35. container.StatResults( &nTimes, &nVictoryTimes, &dYieldMax, &dYieldMin );
  36. strBuyTimes.Format( "%u", nTimes );
  37. m_editBuyTimes.SetWindowText( strBuyTimes );
  38. strVictoryTimes.Format( "%u", nVictoryTimes );
  39. m_editVictoryTimes.SetWindowText( strVictoryTimes );
  40. strYieldMax.Format( "%.2f%%", dYieldMax*100 );
  41. m_editYieldMax.SetWindowText( strYieldMax );
  42. strYieldMin.Format( "%.2f%%", dYieldMin*100 );
  43. m_editYieldMin.SetWindowText( strYieldMin );
  44. strYieldFin.Format( "%.2f%%", m_pStrategy->RealGetCurrentYieldPercent()*100 );
  45. m_editYieldFin.SetWindowText( strYieldFin );
  46. strYieldIndex.Format( "%.2f%%", m_pStrategy->RealGetCurrentYieldIndexPercent()*100 );
  47. m_editYieldIndex.SetWindowText( strYieldIndex );
  48. double dStdDev = 0, dXiapu = 0;
  49. CAssetSerialContainer & assetserial = m_pStrategy->RealGetAssetSerial();
  50. if( assetserial.GetStdDev( &dStdDev, &dXiapu ) )
  51. {
  52. strYieldStdDev.Format( "%.2f%%", dStdDev*100 );
  53. strXiapu.Format( "%.2f%%", dXiapu*100 );
  54. }
  55. m_editYieldStdDev.SetWindowText( strYieldStdDev );
  56. m_editXiapu.SetWindowText( strXiapu );
  57. return TRUE;
  58. }
  59. void CSimuStatDlg::DoDataExchange(CDataExchange* pDX)
  60. {
  61. CDialog::DoDataExchange(pDX);
  62. //{{AFX_DATA_MAP(CSimuStatDlg)
  63. DDX_Control(pDX, IDOK, m_btnOK);
  64. DDX_Control(pDX, IDC_XIAPU, m_editXiapu);
  65. DDX_Control(pDX, IDC_YIELDSTDDEV, m_editYieldStdDev);
  66. DDX_Control(pDX, IDC_YIELDINDEX, m_editYieldIndex);
  67. DDX_Control(pDX, IDC_YIELDFIN, m_editYieldFin);
  68. DDX_Control(pDX, IDC_YIELDMIN, m_editYieldMin);
  69. DDX_Control(pDX, IDC_YIELDMAX, m_editYieldMax);
  70. DDX_Control(pDX, IDC_VICTORYTIMES, m_editVictoryTimes);
  71. DDX_Control(pDX, IDC_BUYTIMES, m_editBuyTimes);
  72. //}}AFX_DATA_MAP
  73. }
  74. BEGIN_MESSAGE_MAP(CSimuStatDlg, CDialog)
  75. //{{AFX_MSG_MAP(CSimuStatDlg)
  76. //}}AFX_MSG_MAP
  77. END_MESSAGE_MAP()
  78. /////////////////////////////////////////////////////////////////////////////
  79. // CSimuStatDlg message handlers
  80. BOOL CSimuStatDlg::OnInitDialog() 
  81. {
  82. CDialog::OnInitDialog();
  83. ASSERT( m_pStrategy );
  84. SetResults( );
  85. return TRUE;  // return TRUE unless you set the focus to a control
  86.               // EXCEPTION: OCX Property Pages should return FALSE
  87. }