This commit is contained in:
62
CPRobot.rc
62
CPRobot.rc
@@ -78,39 +78,43 @@ IDI_ICON_STOCK ICON "res\\HandDrawIcon.ico"
|
|||||||
// Dialog
|
// Dialog
|
||||||
//
|
//
|
||||||
|
|
||||||
IDD_CPROBOT_DIALOG DIALOGEX 0, 0, 319, 243
|
IDD_CPROBOT_DIALOG DIALOGEX 0, 0, 319, 276
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_APPWINDOW
|
EXSTYLE WS_EX_APPWINDOW
|
||||||
CAPTION "Option Robot"
|
CAPTION "Option Robot"
|
||||||
FONT 8, "MS Shell Dlg", 400, 0, 0x0
|
FONT 8, "MS Shell Dlg", 400, 0, 0x0
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "잔고 확인\n및\n데이터 로드",IDC_BUTTON_REFRESH_BALANCE,263,11,50,28,BS_MULTILINE | NOT WS_VISIBLE | NOT WS_TABSTOP
|
GROUPBOX "매수 조건",IDC_STATIC,7,7,305,74
|
||||||
GROUPBOX "거래 금액",IDC_STATIC,7,7,305,34
|
LTEXT "거래 금액 : ",IDC_STATIC,16,24,42,8,NOT WS_GROUP
|
||||||
EDITTEXT IDC_EDIT_ORDERINGPRICE,16,20,67,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
|
EDITTEXT IDC_EDIT_ORDERINGPRICE,62,21,67,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
|
||||||
LTEXT "원",IDC_STATIC_BALANCE,87,23,134,8,NOT WS_GROUP
|
LTEXT "원 (잔고 : -원)",IDC_STATIC_BALANCE,133,24,134,8,NOT WS_GROUP
|
||||||
GROUPBOX "매수 조건",IDC_STATIC,7,44,305,38
|
LTEXT "가격 :",IDC_STATIC,24,41,22,8,NOT WS_GROUP
|
||||||
EDITTEXT IDC_EDIT_ORDERING_TICK_MIN,16,58,67,12,ES_RIGHT | ES_AUTOHSCROLL
|
EDITTEXT IDC_EDIT_ORDERING_TICK_MIN,62,39,34,12,ES_RIGHT | ES_AUTOHSCROLL
|
||||||
LTEXT "~",IDC_STATIC,94,60,8,8,NOT WS_GROUP
|
LTEXT "~",IDC_STATIC,100,41,8,8,NOT WS_GROUP
|
||||||
EDITTEXT IDC_EDIT_ORDERING_TICK_MAX,110,58,67,12,ES_RIGHT | ES_AUTOHSCROLL
|
EDITTEXT IDC_EDIT_ORDERING_TICK_MAX,110,39,34,12,ES_RIGHT | ES_AUTOHSCROLL
|
||||||
CONTROL "1차 매도호가",IDC_RADIO_BID,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,190,54,60,10
|
LTEXT "취소 : ",IDC_STATIC,24,59,24,8,NOT WS_GROUP
|
||||||
CONTROL "1차 매수호가",IDC_RADIO_ASK,"Button",BS_AUTORADIOBUTTON,190,67,61,10
|
EDITTEXT IDC_EDIT_CANCEL_DELAY,61,57,34,12,ES_AUTOHSCROLL,WS_EX_RIGHT
|
||||||
CONTROL "콜옵션",IDC_RADIO_CALLOP,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,257,54,37,10
|
LTEXT "ms",IDC_STATIC,99,60,10,8,NOT WS_GROUP
|
||||||
CONTROL "풋옵션",IDC_RADIO_PUTOP,"Button",BS_AUTORADIOBUTTON,257,67,37,10
|
CONTROL "1차 매도호가",IDC_RADIO_BID,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,174,42,60,10
|
||||||
GROUPBOX "매도 요청",IDC_STATIC,7,86,69,40
|
CONTROL "1차 매수호가",IDC_RADIO_ASK,"Button",BS_AUTORADIOBUTTON,235,42,61,10
|
||||||
EDITTEXT IDC_EDIT_SELL_TICK,14,102,22,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
|
CONTROL "콜옵션",IDC_RADIO_CALLOP,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,174,58,37,10
|
||||||
LTEXT "틱",IDC_STATIC,43,105,8,8,NOT WS_GROUP
|
CONTROL "풋옵션",IDC_RADIO_PUTOP,"Button",BS_AUTORADIOBUTTON,215,58,37,10
|
||||||
GROUPBOX "손절 범위",IDC_STATIC,86,86,69,40
|
GROUPBOX "매도 조건",IDC_STATIC,7,85,305,58,WS_GROUP
|
||||||
EDITTEXT IDC_EDIT_LOSS_CUT_TICK,93,102,22,12,ES_RIGHT | ES_AUTOHSCROLL
|
LTEXT "요청 틱 :",IDC_STATIC,19,102,32,8,NOT WS_GROUP
|
||||||
LTEXT "(가격)",IDC_STATIC,122,105,26,8,NOT WS_GROUP
|
EDITTEXT IDC_EDIT_SELL_TICK,62,101,34,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
|
||||||
GROUPBOX "트레일링 범위",IDC_STATIC,165,86,69,40
|
LTEXT "틱",IDC_STATIC,101,104,8,8,NOT WS_GROUP
|
||||||
EDITTEXT IDC_EDIT_TRAING_TICK,172,102,22,12,ES_RIGHT | ES_AUTOHSCROLL
|
LTEXT "트레일링 :",IDC_STATIC,19,121,38,8,NOT WS_GROUP
|
||||||
LTEXT "(가격)",IDC_STATIC,198,105,21,8,NOT WS_GROUP
|
EDITTEXT IDC_EDIT_TRAING_TICK,62,120,34,12,ES_RIGHT | ES_AUTOHSCROLL
|
||||||
GROUPBOX "취소 시간",IDC_STATIC,243,86,69,40
|
LTEXT "(가격)",IDC_STATIC,101,122,21,8,NOT WS_GROUP
|
||||||
EDITTEXT IDC_EDIT_CANCEL_DELAY,251,102,38,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
|
LTEXT "손절 범위 :",IDC_STATIC,173,102,40,8,NOT WS_GROUP
|
||||||
LTEXT "ms",IDC_STATIC,290,106,10,8,NOT WS_GROUP
|
EDITTEXT IDC_EDIT_LOSS_CUT_TICK,215,101,34,12,ES_RIGHT | ES_AUTOHSCROLL
|
||||||
PUSHBUTTON "검색",IDC_BUTTON_SEARCH,205,131,50,14
|
LTEXT "(가격)",IDC_STATIC,253,104,26,8,NOT WS_GROUP
|
||||||
DEFPUSHBUTTON "거래 시작",IDC_BUTTON_START_DEAL,263,131,50,14
|
LTEXT "청산 시간 :",IDC_STATIC,173,121,40,8,NOT WS_GROUP
|
||||||
LISTBOX IDC_LIST_ITEMS,7,150,305,86,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
|
EDITTEXT IDC_EDIT_WIND_UP_DELAY,215,120,34,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER
|
||||||
|
LTEXT "ms",IDC_STATIC,254,123,10,8,NOT WS_GROUP
|
||||||
|
DEFPUSHBUTTON "검색",IDC_BUTTON_SEARCH,205,147,50,14
|
||||||
|
PUSHBUTTON "거래 시작",IDC_BUTTON_START_DEAL,263,147,50,14
|
||||||
|
LISTBOX IDC_LIST_ITEMS,7,169,305,100,LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
@@ -166,7 +170,7 @@ BEGIN
|
|||||||
LEFTMARGIN, 7
|
LEFTMARGIN, 7
|
||||||
RIGHTMARGIN, 312
|
RIGHTMARGIN, 312
|
||||||
TOPMARGIN, 7
|
TOPMARGIN, 7
|
||||||
BOTTOMMARGIN, 236
|
BOTTOMMARGIN, 269
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
#endif // APSTUDIO_INVOKED
|
#endif // APSTUDIO_INVOKED
|
||||||
|
|||||||
BIN
CPRobotDlg.cpp
BIN
CPRobotDlg.cpp
Binary file not shown.
38
CPRobotDlg.h
38
CPRobotDlg.h
@@ -7,9 +7,11 @@
|
|||||||
#include "Trader.h"
|
#include "Trader.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <hash_map>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
using std::vector;
|
using std::vector;
|
||||||
|
using stdext::hash_map;
|
||||||
using std::string;
|
using std::string;
|
||||||
using std::ofstream;
|
using std::ofstream;
|
||||||
|
|
||||||
@@ -22,6 +24,23 @@ struct CP_BUYINFO
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct CP_UNITINFO
|
||||||
|
{
|
||||||
|
string m_Code;
|
||||||
|
int m_iCnt;
|
||||||
|
float m_fBoughtPrice;
|
||||||
|
float m_fHighestPrice;
|
||||||
|
CTime m_Time;
|
||||||
|
int m_iOrderNum;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct CP_PRICEINFO
|
||||||
|
{
|
||||||
|
float m_afAskPrice[5];
|
||||||
|
float m_afBidPrice[5];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
enum CP_STATE
|
enum CP_STATE
|
||||||
{
|
{
|
||||||
CPS_WAIT=0,
|
CPS_WAIT=0,
|
||||||
@@ -43,14 +62,14 @@ public:
|
|||||||
enum { IDD = IDD_CPROBOT_DIALOG };
|
enum { IDD = IDD_CPROBOT_DIALOG };
|
||||||
|
|
||||||
afx_msg void OnBnClickedButtonRefreshBalance();
|
afx_msg void OnBnClickedButtonRefreshBalance();
|
||||||
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
|
||||||
afx_msg void OnDestroy();
|
|
||||||
|
|
||||||
afx_msg void OnBnClickedButtonStartDeal();
|
afx_msg void OnBnClickedButtonStartDeal();
|
||||||
afx_msg void OnBnClickedButtonSearch();
|
afx_msg void OnBnClickedButtonSearch();
|
||||||
|
|
||||||
afx_msg void OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2);
|
afx_msg void OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2);
|
||||||
|
|
||||||
|
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
||||||
|
|
||||||
virtual void ReceivedSysDib();
|
virtual void ReceivedSysDib();
|
||||||
virtual void ReceivedDib();
|
virtual void ReceivedDib();
|
||||||
|
|
||||||
@@ -90,6 +109,7 @@ private:
|
|||||||
float m_fLossCutTick;
|
float m_fLossCutTick;
|
||||||
float m_fTrailingTick;
|
float m_fTrailingTick;
|
||||||
int m_iCancelDelay;
|
int m_iCancelDelay;
|
||||||
|
int m_iWindUpDelay;
|
||||||
BOOL m_bBuyOnBid1;
|
BOOL m_bBuyOnBid1;
|
||||||
BOOL m_bPutOption;
|
BOOL m_bPutOption;
|
||||||
|
|
||||||
@@ -101,6 +121,12 @@ private:
|
|||||||
int m_iOrderNum;
|
int m_iOrderNum;
|
||||||
CTime m_BoughtT;
|
CTime m_BoughtT;
|
||||||
|
|
||||||
|
|
||||||
|
vector<CP_UNITINFO> m_OrderList;
|
||||||
|
vector<CP_UNITINFO> m_ConclusionList;
|
||||||
|
vector<CP_UNITINFO> m_WindUpList;
|
||||||
|
hash_map<string, CP_PRICEINFO> m_CurPriceList;
|
||||||
|
|
||||||
CpDib::IDibPtr m_pCpFConclusion;
|
CpDib::IDibPtr m_pCpFConclusion;
|
||||||
CEventHandlerDib m_EventHandlerDib;
|
CEventHandlerDib m_EventHandlerDib;
|
||||||
|
|
||||||
@@ -114,12 +140,12 @@ private:
|
|||||||
void Unsubscribe(void);
|
void Unsubscribe(void);
|
||||||
|
|
||||||
void BuyThis(const string& Code, const float fBid1Price, const int iBid1Cnt, float afAskPrice[5]);
|
void BuyThis(const string& Code, const float fBid1Price, const int iBid1Cnt, float afAskPrice[5]);
|
||||||
void CorrectToCurrent(const string& Code);
|
void SellThis(const string& Code);
|
||||||
|
void WindUp(const string& Code);
|
||||||
|
void CancelOrder(const string& Code);
|
||||||
|
|
||||||
inline void SwitchState(const CP_STATE enState);
|
inline void SwitchState(const CP_STATE enState);
|
||||||
|
|
||||||
void CPLog(const std::string fmt, ...);
|
void CPLog(const std::string fmt, ...);
|
||||||
|
|
||||||
|
|
||||||
// winding-up 청산
|
|
||||||
};
|
};
|
||||||
|
|||||||
23
resource.h
23
resource.h
@@ -3,33 +3,24 @@
|
|||||||
// Used by CPRobot.rc
|
// Used by CPRobot.rc
|
||||||
//
|
//
|
||||||
#define IDD_CPROBOT_DIALOG 102
|
#define IDD_CPROBOT_DIALOG 102
|
||||||
#define IDD_CPROBOT_DIALOG2 102
|
|
||||||
#define IDR_MAINFRAME 128
|
#define IDR_MAINFRAME 128
|
||||||
#define IDI_ICON2 132
|
|
||||||
#define IDI_ICON_STOCK 132
|
#define IDI_ICON_STOCK 132
|
||||||
#define IDC_EDIT_ORDERING_TICK_MIN 1000
|
#define IDC_EDIT_ORDERING_TICK_MIN 1000
|
||||||
#define IDC_EDIT_ORDERING_TICK_MAX 1001
|
#define IDC_EDIT_ORDERING_TICK_MAX 1001
|
||||||
#define IDC_BUTTON_SEARCH 1002
|
#define IDC_BUTTON_SEARCH 1002
|
||||||
#define IDC_BUTTON_START_DEAL 1003
|
#define IDC_BUTTON_START_DEAL 1003
|
||||||
#define IDC_EDIT_ORDERINGPRICE 1004
|
#define IDC_EDIT_ORDERINGPRICE 1004
|
||||||
#define IDC_BUTTON_REFRESH_BALANCE 1005
|
|
||||||
#define IDC_RADIO_BID 1006
|
#define IDC_RADIO_BID 1006
|
||||||
#define IDC_EDIT4 1007
|
|
||||||
#define IDC_EDIT_SELL_TICK 1007
|
#define IDC_EDIT_SELL_TICK 1007
|
||||||
#define IDC_EDIT5 1008
|
|
||||||
#define IDC_EDIT_LOSS_CUT_TICK 1008
|
#define IDC_EDIT_LOSS_CUT_TICK 1008
|
||||||
#define IDC_EDIT6 1009
|
|
||||||
#define IDC_EDIT_TRAING_TICK 1009
|
#define IDC_EDIT_TRAING_TICK 1009
|
||||||
#define IDC_EDIT7 1010
|
|
||||||
#define IDC_EDIT_HAVE_TIME_MAX 1010
|
|
||||||
#define IDC_EDIT_CANCEL_DELAY 1010
|
#define IDC_EDIT_CANCEL_DELAY 1010
|
||||||
#define IDC_STATIC_BALANCE 1011
|
#define IDC_EDIT_WIND_UP_DELAY 1011
|
||||||
#define IDC_RADIO_CALLOP 1012
|
#define IDC_STATIC_BALANCE 1012
|
||||||
#define IDC_RADIO_PUTOP 1013
|
#define IDC_RADIO_CALLOP 1013
|
||||||
#define IDC_LIST_ITEMS 1014
|
#define IDC_RADIO_PUTOP 1014
|
||||||
#define IDC_RADIO2 1015
|
#define IDC_LIST_ITEMS 1015
|
||||||
#define IDC_RADIO_ASK 1015
|
#define IDC_RADIO_ASK 1017
|
||||||
#define IDC_BUTTON1 1016
|
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
@@ -37,7 +28,7 @@
|
|||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 133
|
#define _APS_NEXT_RESOURCE_VALUE 133
|
||||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1017
|
#define _APS_NEXT_CONTROL_VALUE 1018
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
1
stdafx.h
1
stdafx.h
@@ -43,4 +43,5 @@
|
|||||||
#import "c:\daishin\cybosplus\cptrade.dll" no_namespace named_guids
|
#import "c:\daishin\cybosplus\cptrade.dll" no_namespace named_guids
|
||||||
#import "c:\daishin\cybosplus\cputil.dll" no_namespace named_guids
|
#import "c:\daishin\cybosplus\cputil.dll" no_namespace named_guids
|
||||||
|
|
||||||
|
typedef unsigned int uint;
|
||||||
#define SAFE_DELETE(p) { if(p) delete p; p = NULL; }
|
#define SAFE_DELETE(p) { if(p) delete p; p = NULL; }
|
||||||
Reference in New Issue
Block a user