검색, 구매, 구매 확인 구현
This commit is contained in:
124
ULTrader.cs
Normal file
124
ULTrader.cs
Normal file
@@ -0,0 +1,124 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace upper_limit_crawler
|
||||
{
|
||||
class ULTrader
|
||||
{
|
||||
CPFORETRADELib.CpForeTdUtil m_Util = new CPFORETRADELib.CpForeTdUtil();
|
||||
DSCBO1Lib.CpConclusion m_Conclusion = new DSCBO1Lib.CpConclusion();
|
||||
CPTRADELib.CpTd0311 m_Td0311 = new CPTRADELib.CpTd0311();
|
||||
|
||||
string[] m_astrAccounts = null;
|
||||
|
||||
public ULTrader()
|
||||
{
|
||||
m_Util.TradeInit();
|
||||
m_astrAccounts = m_Util.AccountNumber;
|
||||
|
||||
StartConclusion();
|
||||
}
|
||||
|
||||
void StartConclusion()
|
||||
{
|
||||
m_Conclusion.Received += Conclusion_Received;
|
||||
m_Conclusion.Subscribe();
|
||||
}
|
||||
|
||||
private void Conclusion_Received()
|
||||
{
|
||||
string strAccount = m_Conclusion.GetHeaderValue(1);
|
||||
string strCodeName = m_Conclusion.GetHeaderValue(2);
|
||||
long iCount = m_Conclusion.GetHeaderValue(3);
|
||||
long iPrice = m_Conclusion.GetHeaderValue(4);
|
||||
long iTradeNo = m_Conclusion.GetHeaderValue(5);
|
||||
long iTradeNoOrg = m_Conclusion.GetHeaderValue(6);
|
||||
string strCode = m_Conclusion.GetHeaderValue(9);
|
||||
bool bBuy = (m_Conclusion.GetHeaderValue(12) == "2");
|
||||
string strResult = m_Conclusion.GetHeaderValue(14);
|
||||
string strTradeType = m_Conclusion.GetHeaderValue(16);
|
||||
|
||||
|
||||
string strLog = string.Format("[{0}:{1}] {2:###,###,###}원 {3:###,###,###}주 (총{4:###,###,###}원) ", strCodeName, strCode, iPrice, iCount, iPrice *iCount);
|
||||
|
||||
if (strResult == "1") // 체결
|
||||
{ strLog += "체결"; }
|
||||
else if (strResult == "2") // 확인
|
||||
{ strLog += "확인"; }
|
||||
else if (strResult == "3") // 거부
|
||||
{ strLog += "거부"; }
|
||||
else if (strResult == "4") // 접수
|
||||
{ strLog += "접수"; }
|
||||
|
||||
if (strTradeType == "1") // 정상주문
|
||||
{ strLog += " (정상주문)"; }
|
||||
else if (strTradeType == "2") // 정정주문
|
||||
{ strLog += " (정정주문)"; }
|
||||
else if (strTradeType == "3") // 취소주문
|
||||
{ strLog += " (취소주문)"; }
|
||||
|
||||
UlUtil.Trace(strLog);
|
||||
}
|
||||
|
||||
public void Buy(string strCode, float fCurPrice, float fBidAmount)
|
||||
{
|
||||
//0 - (string)주문종류코드 주문구분
|
||||
// 1 매도
|
||||
// 2 매수
|
||||
//1 - (string)계좌번호
|
||||
//2 - (string)상품관리구분코드 계좌구분
|
||||
//3 - (string)종목코드
|
||||
//4 - (long)주문수량
|
||||
//5 - (long)주문단가
|
||||
//6 - (string)매매구분
|
||||
//7 - (string)주문조건구분코드 매매조건
|
||||
//0 없음
|
||||
//1 IOC
|
||||
//2 FOK
|
||||
//8 - (string)주문호가구분코드
|
||||
// 1 보통[default]
|
||||
// 2 임의
|
||||
// 3 시장가
|
||||
// 5 조건부지정가
|
||||
// 6 희망대량
|
||||
// 9 자사주
|
||||
// 12 최유리지정가
|
||||
// 13 최우선지정가
|
||||
// 10 스톡옵션자사주
|
||||
// 23 임의시장가
|
||||
// 25 임의조건부지정가
|
||||
// 51 장중대량
|
||||
// 52 장중바스켓
|
||||
// 61 개시전종가
|
||||
// 62 개시전종가대량
|
||||
// 63 개시전시간외바스켓
|
||||
// 67 개시전금전신탁자사주
|
||||
// 69 개시전대량자기
|
||||
// 71 신고대량(전장시가)
|
||||
// 72 시간외대량
|
||||
// 73 신고대량(종가)
|
||||
// 77 금전신탁종가대량
|
||||
// 11 금전신탁자사주
|
||||
// 80 시간외바스켓
|
||||
// 79 시간외대량자기
|
||||
|
||||
// 최
|
||||
|
||||
long iCnt = (long)Math.Floor(fBidAmount / fCurPrice);
|
||||
iCnt = 1;
|
||||
|
||||
m_Td0311.SetInputValue(0, "2");
|
||||
m_Td0311.SetInputValue(1, m_astrAccounts[0]);
|
||||
m_Td0311.SetInputValue(3, strCode);
|
||||
m_Td0311.SetInputValue(4, iCnt); // 수량
|
||||
m_Td0311.SetInputValue(5, (long)fCurPrice); // 단가
|
||||
m_Td0311.SetInputValue(7, "0");
|
||||
m_Td0311.SetInputValue(8, "03");
|
||||
|
||||
m_Td0311.BlockRequest();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user