민감도 자료 느리게 반영됨
글쓴이 : 똘사마 조회수 : 4315 작성일 : 2012-05-10
1번첨부 : 없음 2번첨부 : 없음 3번첨부 : 없음

Gom으로 VC로 구현했습니다. 

고수의  옵션그릭스 화면에서의 민감도와  구현한 화면간에 민감도 값은  맞게 세팅되었습니다. 잘 맞아보이긴하나,  자주 싱크가 안되는 현상이 발생합니다. 고수에서의 값은 변하여 있는데, 구현한 것에는 그대로 있다가 좀 있다가 맞춰진다는가하고, 어떨때는 그냥 동기화 되고 해서.. 

구독을 많이 하면 그런현상이 발생하는거지요? 구독을 거의 한 30종류 정도 하는데요
거의 고수의 옵션그릭스와 동일한 화면 구성입니다.

//싱크에서 이렇게 호출하고,

HRESULT _stdcall CEventSink::Invoke(
      DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags,
      DISPPARAMS *pDispParams, VARIANT *pVarResult,
      EXCEPINFO *pExcepInfo, UINT *puArgErr)
{    
  
 //서버로 부터 전달된 파라미터에서 IGxSymbol을 뽑아내 비교한다.  
  if (pDispParams->rgvarg[0].pdispVal == m_lpSymbol.m_lpDispatch)  {
   m_Arrived = TRUE;   
   AfxGetMainWnd()->SendMessage(WM_SYMBOL_CHANGED, 0, 0);  
  }else if (pDispParams->rgvarg[0].pdispVal == m_lpQuote.m_lpDispatch){  
   m_Arrived = TRUE; 
   AfxGetMainWnd()->SendMessage(WM_QUOTE_CHANGED, 0, 0); 
  } 
  
 return S_OK;
 
}

DLG에서는 이렇게 받아서 화면에 뿌리는데요. 그리드와 텍스트박스에 뿌립니다.


LRESULT CTradeOptionDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
 CEventSink* pEventSink; POSITION pos;

 switch (message) {

  case WM_SYMBOL_CHANGED :
   if (m_KospiSink.m_Arrived) {//KOSPI200 지수에 변화가 있으면
    //구현
    m_KospiSink.m_Arrived = FALSE;
     break;
   }else{
    for(pos=m_SinkList.GetHeadPosition();pos != NULL;) {
     pEventSink = (CEventSink*)m_SinkList.GetNext(pos);

     if (pEventSink->m_Arrived){
      if (pEventSink->m_lpSymbol.GetCode().Left(1)=="2"){
       for(int i=1; i<=11; i++) {
        if (pEventSink->m_lpSymbol.GetCode()==m_msgCOption.GetTextMatrix(i,0)){
                 //구현
             break;
        }
       }
       pEventSink->m_Arrived = false;
       UpdateData(false);
       break;
      }else if (pEventSink->m_lpSymbol.GetCode().Left(1)=="3"){
       for(int i=1; i<=11; i++) {
        if (pEventSink->m_lpSymbol.GetCode()==m_msgPOption.GetTextMatrix(i,0)){  
         //구현         
          break;
        }
       }
       pEventSink->m_Arrived = false;
       UpdateData(false);
       break;
      }
     }
    }
    break; 
   }
    
  case WM_QUOTE_CHANGED :
   if (m_FuturesSink.m_Arrived) {//KOSPI선물에 변화가 있으면
      //구현
       UpdateData(false);
    m_FuturesSink.m_Arrived = FALSE;
    break; 
   }else{
    for(pos=m_SinkList2.GetHeadPosition();pos != NULL;) {
     pEventSink = (CEventSink*)m_SinkList2.GetNext(pos);

   if (pEventSink->m_Arrived){ 
      if (pEventSink->m_lpSymbol.GetCode().Left(1)=="2"){
       for(int i=1; i<=11; i++) {
        if (pEventSink->m_lpSymbol.GetCode()==m_msgCOption.GetTextMatrix(i,0)){  
             //구현
            break;
        }
       }             
       pEventSink->m_Arrived = FALSE;
       break;
      }else if (pEventSink->m_lpSymbol.GetCode().Left(1)=="3"){
       for(int i=1; i<=11; i++) {
        if (pEventSink->m_lpSymbol.GetCode()==m_msgPOption.GetTextMatrix(i,0)){
             //구현
         break;
        }
       }             
       pEventSink->m_Arrived = FALSE;
       break;
      }
     }
    }
    break;
   }
  }

 return CDialog::WindowProc(message, wParam, lParam);
}


Friends☆ 안녕하세요.

말씀하신대로 구독하는 종목의 수가 많을 경우, 시세량이 급증(보통 지수가 급등이나 급락할 경우입니다.) 할 경우에는 아무래도 고수에서 보시는 것보다 어느정도 시세 지연처럼 늦게 반영되는 경우가 발생 할 수 있습니다.

GOM 자체가 각기 다른 2개의 프로세스 사이에서 데이타를 전달받아 사용하는 것이다 보니 처리해야할 데이타가 많을 경우에는 어느정도의 지연이 발생할 여지가 있습니다. (2012-05-11)

번호 제목 첨부 작성자 작성일 조회
762  VShortThValues 관련 문의 [1] top 2012-05-17 5063
761  에러문의 [1] 김인호 2012-05-14 3959
760  민감도 자료 느리게 반영됨 [1] 똘사마 2012-05-10 4316
759  P2.tlb 위치 변경 [2] 도끼 2012-05-09 4379
758  SetGreeksParam 사용법 [3] 푸른늑대 2012-04-23 4714
757  비밀번호관련 제안합니다^^ [2] 전산쟁이 2012-04-21 4436
756  Gomfiltering 에서 [1] 불독 2012-03-24 4179
755  Gomfiltering 에서 불독 2012-03-24 4379
754  주식선물 주문 [1] courant 2012-03-12 4372
753   Re : 주식선물 주문 courant 2012-03-23 4675
752  프로그램과 곰이 연결이 안돼요..(윈도7에서) [1] 차원 2012-02-29 4551
751   Re : 프로그램과 곰이 연결이 안돼요..(윈도7에.. 손용호 2012-03-14 4883
750  델타 관련 문의 입니다. [1] 이진수 2012-02-29 4604
749  볼랜드 C++ 빌더 6.0 박창선 2012-02-18 4613
748  아래 글에 이어 다시 질문드립니다. [1] 데칸 2012-02-11 4214
747  현재가 인식 시간에 관한 질문 입니다. [2] 데칸 2012-02-07 4204
746  차트 질문 [1] 카라얀 2012-02-01 4290
745  이동평균값 구하기 질문드립니다. [1] 데칸 2012-01-28 4766
744  429 런타임 에러 아스가드 2012-01-27 9023
743  안끄고 계속 켜놓을 수 있는 방법?? 질문 드립니.. [2] 데칸 2012-01-26 4270
742  gxsymbol에서 틱사이즈 [1] courant 2012-01-22 4243
741  가상계좌 이용시 반영여부 확인 관련 질문 드립.. [1] 데칸 2012-01-18 3981
740  몇 가지 문의 드립니다. [2] 데칸 2012-01-10 4297
739  GxChartData와 Stage 챠트의 거래량 불일치 [1] 톨킨 2012-01-03 4406
738  GxChartData Define 중 iCount 의 의미 [1] 톨킨 2012-01-03 4388
737  64bit 컴퓨터를 구매했는데.. [3] 깜둥 2011-12-29 4337
736  collection 내 데이터를 삭제하기 [1] 톨킨 2011-12-29 4339
735  GOM API로 만료된 옵션종목 시세조회가 가능한지.. [1] 불새 2011-12-19 5482
734  gxquote 에서 price조회가 안됩니다. [1] courant 2011-12-16 5021
733  델파이 예제 컴파일 에러 [1] top 2011-12-11 5695
732  챠트 데이터(GxChartData) 의 값을 순차적으로 .. [1] 톨킨 2011-12-09 4539
731  symbol과 quote의 이벤트 차이 [1] 김범진 2011-12-08 4323
730  Gxaccount예제관련문의 [1] 본능적으로 2011-12-01 5136
729  서버에 연결할수 없습니다. [1] courant 2011-11-30 4408
728  여러개의 종목을 한꺼번에 가져오는 방법 [1] coderoad 2011-11-25 4479
 1  2  3  4  5  6  7  8  9  10