준비사항

조건검색을 등록/해제 하기 위해서는 먼저 조건명과 조건번호를 가져와야 합니다. 참고 자료 : 조건명, 조건번호 가져오기  

조건 검색 등록

실시간으로 종목을 검색하기 위해서는 아래와 같이 서버에 등록을 해줘야 합니다.
BOOL SendCondition(LPCTSTR strScrNo, LPCTSTR strConditionName, int nIndex, int
nSearch)
// strScrNo : 조건검색용_화면번호 (사용할 화면번호 지정,서버에서 받은 응답처리에 사용 가능)
// strConditionName : 조건명 (검색에 사용할 조건명)
// nIndex           : 조건번호 (검색에 사용할 조건번호)
// nSearch          : 조회구분 ( 0:일반조회, 1:실시간 조회, 2:연속조회)
// 반환값           : 0:실패, 1:성공


// 참고
// 단순 조건식에 맞는 종목을 조회하기 위해서는 조회구분을 0으로 하고,
// 실시간 조건검색을 하기 위해서는 조회구분을 1로 한다.
// OnReceiveTrCondition으로 결과값이 온다.
// 연속조회가 필요한 경우에는 응답받는 곳에서 연속조회 여부에 따라 연속조회를 송신하면된다.
  조건 검색 등록 결과 받기 검색된 종목을 가져옵니다.
// 이벤트 등록
api.OnReceiveTrCondition += api_OnReceiveTrCondition;


void OnReceiveTrCondition(LPCTSTR sScrNo, LPCTSTR strCodeList, LPCTSTR strConditionName, int
nIndex, int nNext)

// 설명 : 조건검색 조회응답으로 종목리스트를 구분자(“;”)로 붙어서 받는 시점
// LPCTSTR sScrNo : 종목코드
// LPCTSTR strCodeList : 종목리스트(“;”로 구분)
// LPCTSTR strConditionName : 조건명
// int nIndex : 조건명 인덱스
// int nNext : 연속조회(2:연속조회, 0:연속조회없음)
 

사용예

준비
키움증권의 영웅문에서 조건식을 만들어야 합니다. 여기서는 이름을 ‘당일20프로상승’으로 하였고 검색번호는 자동으로 할당되며 신경 쓰지 않아도 됩니다.

  현재 상황에서는 5개가 검색되었습니다. (지금은 장마감된 상태입니다.)

 
등록된 조건명, 조건번호 가져오기
     

키움API 조건검색 사용 하위 항목

조건명과 조건 번호 요청

아래의 코드로 등록되어 있는 조건명,조건번호를 요청합니다.
this.api.GetConditionLoad();
  응답은 이벤트로 수신되며 이벤트는 미리 등록해야 합니다.
api.OnReceiveConditionVer += AxKHOpenAPI_OnReceiveConditionVer;

public void AxKHOpenAPI_OnReceiveConditionVer(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveConditionVerEvent e) 
{
// 검색 조건명, 조건번호를 수신되면 실행됨
}
 
private void Form1_Load(object sender, EventArgs e)
{
	this.api.OnReceiveConditionVer += AxKHOpenAPI_OnReceiveConditionVer;
        this.api.OnEventConnect += AxKHOpenAPI1_OnEventConnect;	
	
}

private void AxKHOpenAPI1_OnEventConnect(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnEventConnectEvent e)
{
	if(e.nErrCode ==0)
	{
		// label1.Text = "로그인 성공";


		// 조건 검색 번호와 이름 가져오기
		this.api.GetConditionLoad();

	}
	else
	{
	      // label1.Text = "로그인 실패";
	}
}



public void AxKHOpenAPI_OnReceiveConditionVer(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveConditionVerEvent e)
{
     string[] conditionStocks = this.api.GetConditionNameList().Split(';');
     foreach (string con in conditionStocks)
     {
         string[] condition = con.Split('^');
         if (condition.Length == 2)
         {
             Console.WriteLine(string.Format("조건번호:{0},  조건명:{1}", condition[0], condition[1]));
         }
     }
}
   

키움API 조건검색 사용 하위 항목