Пример #1
0
int xing::CSPAT00600_Request(BOOL nNext,CSPAT00600data data){
    CSPAT00600InBlock1	pckInBlock;
    char			szTrNo[]		= "CSPAT00600";
    char			szNextKey[]		= "";
    QString price = QString::fromLocal8Bit(data.strOrdPrc);
    QString price1;
    QByteArray qt_byte;
    memset(&pckInBlock,' ',sizeof(pckInBlock));

    int price_int = price.toInt();
    if(price_int<5000){
        price_int = price_int/5;
        price_int = price_int*5;
    }else if(price_int>=5000&&price_int<10000){
        price_int = price_int/10;
        price_int = price_int*10;
    }else if(price_int>=10000&&price_int<50000){
        price_int = price_int/50;
        price_int = price_int*50;
    }else if(price_int>=50000&&price_int<100000){
        price_int = price_int/100;
        price_int = price_int*100;
    }
    price1 = QString("%1").arg(price_int);
    qt_byte = price1.toLocal8Bit();
    data.strOrdPrc = qt_byte.data();


    SetPacketData( pckInBlock.AcntNo       , sizeof( pckInBlock.AcntNo        ), data.strAcntNo       , DATA_TYPE_STRING );		// 계좌번호
    SetPacketData( pckInBlock.InptPwd      , sizeof( pckInBlock.InptPwd       ), data.strInptPwd      , DATA_TYPE_STRING );		// 입력비밀번호
    SetPacketData( pckInBlock.IsuNo        , sizeof( pckInBlock.IsuNo         ), data.strIsuNo        , DATA_TYPE_STRING );		// 종목번호
    SetPacketData( pckInBlock.OrdQty       , sizeof( pckInBlock.OrdQty        ), data.strOrdQty       , DATA_TYPE_LONG   );		// 주문수량
    SetPacketData( pckInBlock.OrdPrc       , sizeof( pckInBlock.OrdPrc        ), data.strOrdPrc       , DATA_TYPE_FLOAT_DOT, 2 );	// 주문가, Header Type이 B 인 경우 Data Type이 실수면 소수점을 포함해야 한다.
    SetPacketData( pckInBlock.BnsTpCode    , sizeof( pckInBlock.BnsTpCode     ), data.strBnsTpCode    , DATA_TYPE_STRING );		// 매매구분
    SetPacketData( pckInBlock.OrdprcPtnCode, sizeof( pckInBlock.OrdprcPtnCode ), data.strOrdprcPtnCode, DATA_TYPE_STRING );		// 호가유형코드
    SetPacketData( pckInBlock.MgntrnCode   , sizeof( pckInBlock.MgntrnCode    ), data.strMgntrnCode   , DATA_TYPE_STRING );		// 신용거래코드
    SetPacketData( pckInBlock.LoanDt       , sizeof( pckInBlock.LoanDt        ), data.strLoanDt       , DATA_TYPE_STRING );		// 대출일
    SetPacketData( pckInBlock.OrdCndiTpCode, sizeof( pckInBlock.OrdCndiTpCode ), data.strOrdCndiTpCode, DATA_TYPE_STRING ); 		// 주문조건구분

    int nRqID = ETK_Request(szTrNo,&pckInBlock,sizeof(pckInBlock),nNext,szNextKey,30);



    if(nRqID<0){
        qDebug()<<"CSPAT00600_Request 실패";
    }
    return nRqID;

}
Пример #2
0
 int xing::CSPAT00800_Request(BOOL nNext,CSPAT00800InBlock1data data){
     CSPAT00800InBlock1	pckInBlock;
     char			szTrNo[]		= "CSPAT00800";
     char			szNextKey[]		= "";

     memset(&pckInBlock,' ',sizeof(pckInBlock));

     SetPacketData( pckInBlock.OrgOrdNo      , sizeof( pckInBlock.OrgOrdNo       ), data.OrgOrdNo   , DATA_TYPE_LONG         );    // [long  ,    5] 레코드갯수
     SetPacketData( pckInBlock.AcntNo        , sizeof( pckInBlock.AcntNo         ), data.AcntNo     , DATA_TYPE_STRING       );    // [string,   20] 계좌번호
     SetPacketData( pckInBlock.InptPwd       , sizeof( pckInBlock.InptPwd        ), data.InptPwd    , DATA_TYPE_STRING       );    // [string,    8] 비밀번호
     SetPacketData( pckInBlock.IsuNo         , sizeof( pckInBlock.IsuNo          ), data.IsuNo      , DATA_TYPE_STRING       );    // [string,    1] 잔고생성구분
     SetPacketData( pckInBlock.OrdQty        , sizeof( pckInBlock.OrdQty         ), data.OrdQty     , DATA_TYPE_LONG       );    // [string,    1] 수수료적용구분

     int nRqID = ETK_Request(szTrNo,&pckInBlock,sizeof(pckInBlock),nNext,szNextKey,30);

     return nRqID;
 }
Пример #3
0
int xing::t1101_Request(BOOL nNext,t1101InBlockdata data){
    t1101InBlock pckInBlock;
    char			szTrNo[]		= "t1101";
    char			szNextKey[]		= "";
    memset(&pckInBlock,' ',sizeof(pckInBlock));
    SetPacketData( pckInBlock.shcode       , sizeof( pckInBlock.shcode        ), data.shcode       , DATA_TYPE_STRING );
    int nRqID = ETK_Request(szTrNo,&pckInBlock,sizeof(pckInBlock),nNext,szNextKey,30);
    if(nRqID<0){
        qDebug()<<"t0424_Request 실패";
    }
    return nRqID;

}
Пример #4
0
 int xing::CSPAT00700_Request(BOOL nNext,CSPAT00700InBlock1data data){
     CSPAT00700InBlock1	pckInBlock;
     char			szTrNo[]		= "CSPAT00700";
     char			szNextKey[]		= "";

     memset(&pckInBlock,' ',sizeof(pckInBlock));

     SetPacketData( pckInBlock.OrgOrdNo      , sizeof( pckInBlock.OrgOrdNo       ), data.OrgOrdNo   , DATA_TYPE_LONG         );    // [long  ,    5] 레코드갯수
     SetPacketData( pckInBlock.AcntNo        , sizeof( pckInBlock.AcntNo         ), data.AcntNo     , DATA_TYPE_STRING       );    // [string,   20] 계좌번호
     SetPacketData( pckInBlock.InptPwd       , sizeof( pckInBlock.InptPwd        ), data.InptPwd    , DATA_TYPE_STRING       );    // [string,    8] 비밀번호
     SetPacketData( pckInBlock.IsuNo         , sizeof( pckInBlock.IsuNo          ), data.IsuNo      , DATA_TYPE_STRING       );    // [string,    1] 잔고생성구분
     SetPacketData( pckInBlock.OrdQty        , sizeof( pckInBlock.OrdQty         ), data.OrdQty     , DATA_TYPE_LONG       );    // [string,    1] 수수료적용구분
     SetPacketData( pckInBlock.OrdprcPtnCode        , sizeof( pckInBlock.OrdprcPtnCode         ), data.OrdprcPtnCode     , DATA_TYPE_STRING       );    // [string,    1] 수수료적용구분
     SetPacketData( pckInBlock.OrdCndiTpCode        , sizeof( pckInBlock.OrdCndiTpCode         ), data.OrdCndiTpCode     , DATA_TYPE_LONG       );    // [string,    1] 수수료적용구분
     SetPacketData( pckInBlock.OrdPrc       , sizeof( pckInBlock.OrdPrc        ), data.OrdPrc       , DATA_TYPE_FLOAT_DOT, 2 );	// 주문가, Header Type이 B 인 경우 Data Type이 실수면 소수점을 포함해야 한다.
     int nRqID = ETK_Request(szTrNo,&pckInBlock,sizeof(pckInBlock),nNext,szNextKey,30);

     return nRqID;
 }
Пример #5
0
int xing::t1452_Request(BOOL bNext){
    t1452InBlock pckInBlock;
    int result_1;
    char szTrNo[] = "t1452";
    memset(&pckInBlock,' ',sizeof(pckInBlock));
    SetPacketData( pckInBlock.gubun    , sizeof( pckInBlock.gubun     ),"0", DATA_TYPE_STRING );	// [string,    1] 구분
    SetPacketData( pckInBlock.jnilgubun, sizeof( pckInBlock.jnilgubun ),"1", DATA_TYPE_STRING );	// [string,    1] 전일구분
    SetPacketData( pckInBlock.sdiff    , sizeof( pckInBlock.sdiff     ),"", DATA_TYPE_LONG   );	// [long  ,    3] 시작등락율
    SetPacketData( pckInBlock.ediff    , sizeof( pckInBlock.ediff     ),"", DATA_TYPE_LONG   );	// [long  ,    3] 종료등락율
    SetPacketData( pckInBlock.jc_num   , sizeof( pckInBlock.jc_num    ),"", DATA_TYPE_LONG   );	// [long  ,   12] 대상제외
    SetPacketData( pckInBlock.sprice   , sizeof( pckInBlock.sprice    ),"", DATA_TYPE_LONG   );	// [long  ,    8] 시작가격
    SetPacketData( pckInBlock.eprice   , sizeof( pckInBlock.eprice    ),"", DATA_TYPE_LONG   );	// [long  ,    8] 종료가격
    SetPacketData( pckInBlock.volume   , sizeof( pckInBlock.volume    ),"", DATA_TYPE_LONG   );	// [long  ,   12] 거래량
    SetPacketData( pckInBlock.idx      , sizeof( pckInBlock.idx       ),"", DATA_TYPE_LONG   );	// [long  ,    4] IDX
    result_1= xing::ETK_Request(szTrNo,  // TR 번호
                &pckInBlock,    	// InBlock 데이터
                sizeof( pckInBlock ), // InBlock 데이터 크기
                bNext,  // 다음조회 여부
                "", // 다음조회 Key
                30 // Timeout(초) : 해당 시간(초)동안 데이터가 오지 않으면 Timeout에 발생한다. XM_TIMEOUT_DATA 메시지가 발생한다.
             );
    return result_1;
}
Пример #6
0
 int xing::CSPAQ12300_Request(BOOL nNext,CSPAQ12300InBlock1data data){
     CSPAQ12300InBlock1	pckInBlock;
     char			szTrNo[]		= "CSPAQ12300";
     char			szNextKey[]		= "";

     memset(&pckInBlock,' ',sizeof(pckInBlock));

     SetPacketData( pckInBlock.RecCnt        , sizeof( pckInBlock.RecCnt         ), "1"              , DATA_TYPE_LONG         );    // [long  ,    5] 레코드갯수
     SetPacketData( pckInBlock.AcntNo        , sizeof( pckInBlock.AcntNo         ), data.AcntNo        , DATA_TYPE_STRING       );    // [string,   20] 계좌번호
     SetPacketData( pckInBlock.Pwd           , sizeof( pckInBlock.Pwd            ), data.Pwd           , DATA_TYPE_STRING       );    // [string,    8] 비밀번호
     SetPacketData( pckInBlock.BalCreTp      , sizeof( pckInBlock.BalCreTp       ), data.BalCreTp      , DATA_TYPE_STRING       );    // [string,    1] 잔고생성구분
     SetPacketData( pckInBlock.CmsnAppTpCode , sizeof( pckInBlock.CmsnAppTpCode  ), data.CmsnAppTpCode , DATA_TYPE_STRING       );    // [string,    1] 수수료적용구분
     SetPacketData( pckInBlock.D2balBaseQryTp, sizeof( pckInBlock.D2balBaseQryTp ), data.D2balBaseQryTp, DATA_TYPE_STRING       );    // [string,    1] D2잔고기준조회구분
     SetPacketData( pckInBlock.UprcTpCode    , sizeof( pckInBlock.UprcTpCode     ), data.UprcTpCode    , DATA_TYPE_STRING       );    // [string,    1] 단가구분

     int nRqID = ETK_Request(szTrNo,&pckInBlock,sizeof(pckInBlock),nNext,szNextKey,30);

     return nRqID;
 }
Пример #7
0
int xing::t0425_Request(BOOL nNext,t0425InBlockdata data){
    t0425InBlock pckInBlock;
    char			szTrNo[]		= "t0425";
    char			szNextKey[]		= "";
    memset(&pckInBlock,' ',sizeof(pckInBlock));

    SetPacketData( pckInBlock.accno       , sizeof( pckInBlock.accno        ), data.accno       , DATA_TYPE_STRING );
    SetPacketData( pckInBlock.passwd      , sizeof( pckInBlock.passwd       ), data.passwd      , DATA_TYPE_STRING );
    SetPacketData( pckInBlock.expcode     , sizeof( pckInBlock.expcode      ), data.expcode     , DATA_TYPE_STRING );
    SetPacketData( pckInBlock.chegb       , sizeof( pckInBlock.chegb        ), data.chegb       , DATA_TYPE_STRING );
    SetPacketData( pckInBlock.medosu      , sizeof( pckInBlock.medosu       ), data.medosu      , DATA_TYPE_STRING );
    SetPacketData( pckInBlock.sortgb      , sizeof( pckInBlock.sortgb       ), data.sortgb      , DATA_TYPE_STRING );
    SetPacketData( pckInBlock.cts_ordno   , sizeof( pckInBlock.cts_ordno    ), data.cts_ordno   , DATA_TYPE_STRING );

    int nRqID = ETK_Request(szTrNo,&pckInBlock,sizeof(pckInBlock),nNext,szNextKey,30);
    if(nRqID<0){
        qDebug()<<"t0424_Request 실패";
    }
    return nRqID;
}
Пример #8
0
//선물 주문 quantity가 양수면 매수 /  음수면 매도, price가 0이면 시장가, 0이 아니면 지정가 주문
int CGoldenCrossStrategy::FuOrder(CString code, int quantity, double price)
{
	CFOAT00100InBlock1	pckInBlock;
	FillMemory( &pckInBlock, sizeof( pckInBlock ), ' ' );

	SetPacketData( pckInBlock.AcntNo          , sizeof( pckInBlock.AcntNo           ), AccountCode  , DATA_TYPE_STRING );    // [string,   20] 계좌번호                 
	SetPacketData( pckInBlock.Pwd             , sizeof( pckInBlock.Pwd              ), AccountCode  , DATA_TYPE_STRING );    // [string,    8] 비밀번호                 
	SetPacketData( pckInBlock.FnoIsuNo        , sizeof( pckInBlock.FnoIsuNo         ), code        , DATA_TYPE_STRING );    // [string,   12] 선물옵션종목번호         
	SetPacketData( pckInBlock.BnsTpCode       , sizeof( pckInBlock.BnsTpCode        ), quantity > 0 ? "2" : "1" , DATA_TYPE_STRING );    // [string,    1] 매매구분                 
	SetPacketData( pckInBlock.FnoOrdprcPtnCode, sizeof( pckInBlock.FnoOrdprcPtnCode ), price == 0 ? "03" : "00", DATA_TYPE_STRING );    // [string,    2] 선물옵션호가유형코드

	char strPrice[20]; sprintf_s(strPrice, 20, "%.02f", price); 
	SetPacketData( pckInBlock.OrdPrc          , sizeof(pckInBlock.OrdPrc			), strPrice          , DATA_TYPE_FLOAT_DOT, 2 );    // [double, 15.2] 주문가격                 
	SetPacketData( pckInBlock.OrdQty          , sizeof( pckInBlock.OrdQty           ), abs(quantity));    // [long  ,   16] 주문수량                 

	CString log;
	log.Format("[주문] 종목코드 : %s, 가격: %.02f, 수량:%d", code, price, quantity);
	TradeLog(log);

	return Request(NAME_CFOAT00100, &pckInBlock, sizeof( pckInBlock ), FALSE, "");
	
}
Пример #9
0
int xing::CSPAQ13700_Request(BOOL nNext,CSPAQ13700InBlock1data data){
    CSPAQ13700InBlock1	pckInBlock;
    char			szTrNo[]		= "CSPAQ13700";
    char			szNextKey[]		= "";

    memset(&pckInBlock,' ',sizeof(pckInBlock));

    SetPacketData( pckInBlock.RecCnt     , sizeof( pckInBlock.RecCnt      ), "1"           , DATA_TYPE_LONG   );    // [long  ,    5] 레코드갯수
    SetPacketData( pckInBlock.AcntNo     , sizeof( pckInBlock.AcntNo      ), data.AcntNo     , DATA_TYPE_STRING );    // [string,   20] 계좌번호
    SetPacketData( pckInBlock.InptPwd    , sizeof( pckInBlock.InptPwd     ), data.InptPwd    , DATA_TYPE_STRING );    // [string,    8] 입력비밀번호
    SetPacketData( pckInBlock.OrdMktCode , sizeof( pckInBlock.OrdMktCode  ), data.OrdMktCode , DATA_TYPE_STRING );    // [string,    2] 주문시장코드
    SetPacketData( pckInBlock.BnsTpCode  , sizeof( pckInBlock.BnsTpCode   ), data.BnsTpCode  , DATA_TYPE_STRING );    // [string,    1] 매매구분
    SetPacketData( pckInBlock.IsuNo      , sizeof( pckInBlock.IsuNo       ), data.IsuNo      , DATA_TYPE_STRING );    // [string,   12] 종목번호
    SetPacketData( pckInBlock.ExecYn     , sizeof( pckInBlock.ExecYn      ), data.ExecYn     , DATA_TYPE_STRING );    // [string,    1] 체결여부
    SetPacketData( pckInBlock.OrdDt      , sizeof( pckInBlock.OrdDt       ), data.OrdDt      , DATA_TYPE_STRING );    // [string,    8] 주문일
    SetPacketData( pckInBlock.SrtOrdNo2  , sizeof( pckInBlock.SrtOrdNo2   ), data.SrtOrdNo2  , DATA_TYPE_LONG   );    // [long  ,   10] 시작주문번호2
    SetPacketData( pckInBlock.BkseqTpCode, sizeof( pckInBlock.BkseqTpCode ), data.BkseqTpCode, DATA_TYPE_STRING );    // [string,    1] 역순구분
    SetPacketData( pckInBlock.OrdPtnCode , sizeof( pckInBlock.OrdPtnCode  ), data.OrdPtnCode , DATA_TYPE_STRING );    // [string,    2] 주문유형코드

    int nRqID = ETK_Request(szTrNo,&pckInBlock,sizeof(pckInBlock),nNext,szNextKey,30);

    return nRqID;

};