//TODO::20260124 여기서 모든UI시세표시 통합
| ITEMS | DESC |
| n if (pFItem->ask_on != -1) pFItem->ask_on = -1; else if (pFItem->ask_on == -1) pFItem->ask_on = -2; else if (pFItem->ask_on == -2) pFItem->ask_on = 0; 347700 매도41 하락세 왜 안먹힘 케이프만 매수정정 1칸이상 x 풀기 stop 중간가 잔상잇음 호가정정 간격 x 팝업메뉴 매수틱-1 1502137|326 H S:0214 R:0213 340360 다보링크 등락: 1647( -1.44%) 거래량: 666643( 0.00%) 틱강: 31R/1464T/16046B 틱추세:3 ( 33),TM:+++++|+++++ rc=09 체결틱1 1502138|327 H S:0214 R:0213 064350 현대로템 등락:116000( 9.85%) 거래량: 1695846( 0.00%) 틱강: 54R/760T/413B 틱추세:2 ( 3),TM:+++-+|++-+- rc=09 매수틱-1 1503138|330 H S:0314 R:0313 094480 갤럭시아 등락: 8190( 0.37%) 거래량: 361522( 0.00%) 틱강: 42R/154T/ 0B 틱추세:0 ( -1),TM:-++++| + + rc=0A 체강154% 1503138|331 H S:0314 R:0313 071090 하이스틸 등락: 5050( 0.20%) 거래량: 3450494( 0.00%) 틱강: 40R/349T/1303B 틱추세:1 ( 1),TM:+-+++| -+ rc=09 체결틱1 v10 추가 장마감후 매수취소 잔고 0.5 없애기 가중치창 값개선 잔고 추매시 평단병경로그 툴팁 일없애고 시분만표시 손주문tr표시 뉴스에 필터링 왜안됌? 호가창 일버튼에 투동표시(F,P) 시간외시세수신종목표시 추세등락토글은 시세수신시에만 미싱목록 종목코드 시간 내용 1.0;1.2;1.4;1.6;1.8;2.0;2.5;3.0;0.3;0.5;0.8; 체강보정 수량적을때 비율줄이기 2.0이상에 안됨 요동2에도 사 호가창스크럴 손절 checkDailySise 마지막한번만하기 if (g_pMainWnd && ::IsWindow(g_pMainWnd->GetSafeHwnd())) { g_pMainWnd->m_pFrmLedger->m_pDlgLedger->RefreshOrderLedger(); } pFItem = g_datacenter.m_jangoledger.GetItem(shtcode); if (pFItem) { } 스톱로스팝업설정 pFItem->psi 매수조건(보조지표,체강,틱추이,매수세) 중 2개 만족하면 무조건 매수하기(점수제) 1.0세팅 초기 스톱로스 설정값대로-2로? f3,f9 정정2번내로 두번정정말고 +2말고 새매수로 1번만? 무조건많이사고 빨리손절 ask_on = 0,1만되게 정리(임시중지) 전일종가의 손익금 표시 마우스대면 손익율보이기 08시 고정 pstoploss->settime 매도시간지연조정 호가변동에 자동 따라가며 스톱로스(매도9에 하이,매수9에 로우걸기) 이벤트수신안에서 Sleep 문구없애기 매수정정시 스톱로스 상하향 손매수시 분체강검사 매수통과를 점수제로(수익율,체강,체결틱수,매수틱수등) 전부만족안해도 총점 평균 80이상시 통과 호가창 등락율0%에 손익금 표시 매수스킵목록 최근50개 상황판 표시 체결,호가 시세수동저장 LS NXT거래소 주문작동테스트 -미지원 오후 7:53 2025-04-25 매수회피 전체 토글(on/off) SkipBid에 모든 매수회피 하위xml등록 tempstr = xu.GetTextElement(node, "ExceptFilter"); //if (tempstr.GetLength() > 0) strncpy(this->setting.szExceptFilter, tempstr, sizeof(this->setting.szExceptFilter) - 1); this->setting.bUseExceptFilter = xu.GetElementAttributeInt(node, "ExceptFilter", "use", this->setting.bUseExceptFilter); bBidSkipBadHoga,nBidSkipAvgMask등로직정리 커멘드창 stopall stopbid showjango showorder 등 비즈로직바꾸기 장초변동없앰 bBidSkipOpen IDC_CHECK_BIDSKIPVOLATILITY fBidSkipOpenRate IDC_CHECK_BIDOPENRATE bBidSkipOpenRate IDC_EDIT_BIDMAXOPENRATE IDC_COMBO_BIDSKIPHIGHRISK ↑↓ t일때 매도불량 틱추이 구할때 현재시간과 비교 노노 매도는 틱이나 호가수신시 수행 수신안될땐 모니터링에서. 매수시점 매도시점 재분석 깡패모드 수익율만족하면 무조건산다(나머지 조건무시) 3호가이상밀리면 무조건 3호가로 3번 매도정정한다 3번넘어서도 안되면 1호가로 매도정정 손절한다. 틱추이 현재가 중간 40번째비교 하향세판단 txt를 SQLite db로 보조지표에 틱체결 소진율추가 주식 소진율 = 외국인의 보유율인데 난 여기서 소비율을말함 Slack활용 알림제공 SQLite HMRealWnd에 쓰레드개설해서 아이들상태 잔고나 주문중인 것 취소 [증권사 api 추천] 1. 모니터링용 증권사 api : 대신 증권 또는 키움증권의 api를 추천한다 2. 매매용 증권사 api 별다른 조건이 필요 없다. 증권사 수수료가 싼 게 최고다. 가격보정:5600 C 100222:5600→4505,76 4490,1=4510,140 4505,265 -19.70% +3 C5 OK:0 X 095358:1093→1099,260 1093,363=1100,1443 1100,10 0.37% 9 NG:22 제한↑ X 095448:1097→1099,520 1096,4025=1100,5014 1100,736 0.00% 4 NG:22 제한↑ X 095619:1090→1090,520 1089,4651=1091,983 1090,82 -0.18% 4 NG:22 제한↑ X 095650:1092→1098,520 1093,115=1098,29 1098,898 0.37% 3 NG:22 제한↑ X 100027:1085→1094,520 1087,13=1095,3229 1095,2872 0.65% 3 NG:22 제한↑ O 100901:1127→1135,500 1129,30=1136,7981 1136,2239 0.53% +3 H OK:0 X 100901:1130→1135,500 1130,166=1136,7981 1136,2239 0.26% 3 NG:15 수익0.26% X 100922:1110→1116,310 1114,403=1115,2 1114,500 0.36% 5 NG:15 수익0.27% X 101108:1100→1103,320 1100,196=1104,824 1103,735 0.09% 5 NG:15 수익0.09% X 101219:1099→1100,320 1099,499=1100,64 1099,233 -0.09% 7 NG:22 제한↑ X 101302:1092→1099,520 1092,993=1098,12 1099,18 0.46% 3 NG:22 제한↑ 거래증가율 psm->ds.days[0].diff_vol = BizLogic::calcDrate(psm->ds.days[1].volume, psm->ds.days[0].volume); 매수직후 5호가밀리면 매도칼절 물타기 잔고 50%미만시 추가매수 호가창에 전일투매표시 취소겁나안되는거 억표시 밑에 매수가0이하 매수정시 스톱보정 무조건이익나면매도 실손분석 매수3호가이고 공백많으면 취소. 내앞에 수량더크면 취소나 1칸정정 IDC_COMBO_BIDSKIPBLANK 매수3호가위가 내수량넘으면 취소 8평균저장x 매수예약기능 >이거나 < 지정가 이면 시세에 매수 권리락 왜사냐 등락율 구간한개더 %까지 5평균이면 이전 5평균 ticksise[5] 비교( 나보다 크면 매수안함) 종가랑 현재가 v2 통과 minvol 체크통과함수 콜 특정간격으로 체강검사 소진율 계산 1분간격 체강높아도 체결량적으면 패스 평균수량 클릭하면 점수75점 통과시만 손매수 호가창툴팁 종목제외 +vf 매수감시큐에 넣기 기존있으면 카운트증가 1분경과후 큐에서 빼기 큐대상으로 3번째 누적기회면 매수함 일분통합 t정정없애고 윙스풋 등록금지 -2일 거래량미달 124500 vf -1 매수 nrecvtime 일시세[2] 거래량 강제매수제외 손실놈 1.0으로 바껴 299660 전전일 미달 흐름은 적전말고 이전평균틱의 체강과비교 C:\Util\Trade\Homi.cape\log>echo %date:~8,2%%date:~5,2%%date:~0,4%.* 20052025.* 더이상 틱차로 인한 단타가 안통함! 근접매수 기다리기 sqlite X 093620:7240>7250,40 7240,194=7250,55 7250,46 -0.0% T4 NG:15 수익-0.04% X 093651:1>729 스톱로스재조정 매수클릭시 예약기능(체강올라갈때,30초후 해제) etf etn은 2000원이하 1원 남머진 5원 예약기능x 113810 왜 vf2? 424760 462350 306040 벌륨대기 없애버려 정리 전일이나 당일중 커야함, 통과후 전일 기준량 1/2이상이어야 통과 미달이면 vf = 1 통과후 전전일 기준량 1/2이상이어야 통과 미달이면 vf = 1 vf = 1 이고 당일치가 기준량의 3배이상이면 또는 전일대비 동시간대 거래량이 5배이상 vf = 2 언리얼하고나서 30분마다 리얼걸기 등락율구간 2분화 if (noerror || strerror != "") psm->szerror = strerror; 전일이 30만주이하고 동시대비 증가율 적으면 매수안함 069640 ls 유동주식수 증권사구분을 #ifdef 말고 변수로 3초내 우루루매도는 프로그램또는 세력이라 사지말자(매수3호가에 만주이상 매도하락경우감지하기) 매도호가123량 보다 빠지는게 매수량보다 많으면 수익율 낮아도 매수한다! 당일상승종목 분봉및 시세분석 전전일거래량검사 psm->ncode==380540 || psm->ncode==450140 || psm->ncode==396300 pSItem->bid_enable 매수정정시 스톱로스보정 psm->ncode==482680 || psm->ncode==128820 psm->ncode==254490 153490 if (!pSItem) 오래된 cfg삭제하기 callback 함수 wilddeletefile psm->ncode==128820 015230 308100 332290 지수DB저장하기 호가창 중간가 없애버리기 매도패턴분석(물량및 횟수-조직적인지) 점점올라가는거 근접매수 3호가에 놓기 패턴분석 세력매도인지(칼손절해야함) 매도호가 매수호가 공백회피 //매수공백 5이상 //매수공백 25이상 //분시세 하락인데 매수걸음 // //분시세 계속하락중(현재빼고) 물타기 필요가격 수량힌트 과열포함 ok 종목상태 편집설정기능 물타기 필요가격 수량힌트 과열포함 ok 종목상태 편집설정기능 시세수신이벤트시 매수시도하다보니 cpu 20%혼자사용(타종목 기회박탈) SendMessage에서 주문까지말고 PostMessage로 주문로직에 전달한다. 두 함수의 차이를 요약하자면 다음과 같습니다. ON_THREAD_MESSAGE(WM_SISETHREAD_SERVICE ::PostMessage(hSiseUIWnd, WM_SISETHREAD_HOGA, (WPARAM)SISE_NOTIFYID_HOGA, (LPARAM)pSItem->psm->shtcode); if (g_pSiseThread == NULL){ g_pSiseThread = new CSiseThread(); g_pSiseThread->CreateThread(); } else{ g_pSiseThread->PostThreadMessage(WM_SISETHREAD_SERVICE, 0, 0); } SiseLogic::SiseUnlock(pSItem); hps f리얼에서 5이하인현상 VI2 과열1을 제외 =>단기과열로 넘어갈 위험있다(291810 핀텔,286940 롯데이노베이트) 물량도적음=개새끼제외 가중치갱신버그 매수밀림 취소안되는 현상 WM_SISETHREAD_HOGA 한군데로 수신 메세지통일하기 전송내역+일시세+분시세 통합 개이버035420 카카오035720 같은쓰레기새끼들이 왜 시세on이야 wincommander => totalcommander 같은 wincraft 만들기 dircraft 매수오류(80) 손실위험 간단호가창(5개씩) 종목정보와 시세를 공유메모리 수신딜레이현상 ===================== 호가창 속도다운현상 주문이나 체결 메세지수신시 큐에넣고 바로리턴하기(딜레이됨) 예약매수 작동시간 장구분(정규장,장전전일종가시간외,장전동시호가) from - to 가격 수량 타임라인 30이나 00분 시분배경 노랗게 시간외단일호가,틱 dwTick 디버깅조건 pSItem->market.cgubun[0] == '-' && pSItem->market.sign[0] < '4' && pSItem->ticksise_count > 0 pSItem->market.cgubun[0] == '+' && pSItem->market.sign[0] > '2' && pSItem->ticksise_count > 0 pSItem->market.cgubun[0] == ' ' && pSItem->market.sign[0] != '3' && pSItem->ticksise_count > 0 차트창 별도로 통합(탭) 예약주문을 스크립트로 리스트화 가격도달시 매도,매수,주문옵션 https://sourceforge.net/projects/boost/files/boost/1.60.0 => https://sourceforge.net/projects/boost/ //20230218 BizTradeCenter에서 전송직후 창전환 if (g_conf.xml.setting.nShowHoga & 0x02) { if (g_pMainWnd->m_pFrmHogaClick && ::IsWindow(g_pMainWnd->m_pFrmHogaClick->GetSafeHwnd())) { HWND hHogaWnd = g_pMainWnd->m_pFrmHogaClick->m_pDlg->GetSafeHwnd(); if (hHogaWnd && IsWindow(hHogaWnd)) ::PostMessage(hHogaWnd, WM_SISETHREAD_HOGA, (WPARAM)SISE_NOTIFYID_CHGCODE, (LPARAM)pSItem->psm->shtcode); if (g_pMainWnd->m_pFrmBunSise && ::IsWindow(g_pMainWnd->m_pFrmBunSise->GetSafeHwnd())) { HWND hTargetWnd = g_pMainWnd->m_pFrmBunSise->m_pDlg->GetSafeHwnd(); if (hTargetWnd && IsWindow(hTargetWnd)) ::PostMessage(hTargetWnd, WM_SISETHREAD_TICK, (WPARAM)SISE_NOTIFYID_CHGCODE, (LPARAM)pSItem->psm->shtcode); } if (g_pMainWnd->m_pFrmDailySise && ::IsWindow(g_pMainWnd->m_pFrmDailySise->GetSafeHwnd())) { HWND hHogaWnd = g_pMainWnd->m_pFrmDailySise->m_pDlg->GetSafeHwnd(); if (hHogaWnd && IsWindow(hHogaWnd)) ::PostMessage(hHogaWnd, WM_SISETHREAD_TICK, (WPARAM)SISE_NOTIFYID_CHGCODE, (LPARAM)pSItem->psm->shtcode); g_pMainWnd->m_pFrmDailySise->SetForegroundWindow(); g_pMainWnd->SetForegroundWindow(); } } } if (pSItem->ticksise_count > g_conf.xml.setting.nTickAvgCount) { LONG64 ndifftick = curtick - pSItem->market.dwTick; (pSItem->market.dwTick - pSItem->ticksise[1].dwTick) >= 2000) rc = (int)ENUM_BIDMODE::BIDMODE_MINCONT; strerror.Format("틱수"); return biderror; } 빠른시세종목 리스트업 리얼해제일시토글버튼 nxt종목 구분?해서 키핑금지 장마감시 팔기 명령탭 추가 버튼눌러서 시간외설정(명령창) 개별손익,전송이력,타임라인 30분마다 저장하기 매수호가 밀림시 매수취소안됌 콘솔버전 명령기반 만들기 근접매수시 2호가에 놓고 60초대기,매도도 대기 종목저장시 행걸림 보유고저에 시간함께표시 밭고랑에 드래그엔 드롭 파일표시 0902154|680 매수포착|267320 나인테크 140 5170→5200( 5200) 10.17% 10H 0.40% 2890원 3F|3T|2|0|00|00|69,4,0 RTB=46,945,510% VM927 H OK4 A4 0902154|681 시세정보|267320 나인테크 4720 5000 5200 4885(10.17,5.93,6.45,4.00%) HJ:0028 4F:0 T:3++++---+ B:03++- D:++--+ HBA:1744 1557 1110 OK4 A4 가 0.6%이상시만 매수 스톱로그없애기(손정정만로그) 0902156|683 스톱로스|267320 나인테크 *상한: 5240 *하한: 5000 기준: 5170 현재가: 5200 0902156|684 스톱로스|267320 나인테크 상한: 5240-> 5290 현재가:5200 //02385|751 매수포착|267320 나인테크 140 5180→5220( 5220) 10.59% 10H 0.59% 4285원 3F|4T|2B|0A|00F|00E|69D,4H,0L RTB=46,660,170% VM1223 H OK2 A2 손실 tik3합이 77 내수량보다 작음 틱수가1임 //03041|785 정정요청|267320 나인테크 140 5180→5190( 5240) 5260 10H 5190I 1.17% 8475원 rid:19,2998 mw=1 bw=2 bh=0 mc=0 ms=0 매수(02) H 2+1 왜정정? 안해야함! 체결틱이 ask0보다작음 정정요청| 시세정보| 에 5T(호가틱차표시) 정정요청에 매수호가idx표시 //20220311 지표로 서버체강,틱체강,분체강 로그기록 strcond.Format("%ldF|%ldT|%ldB|%ldA|%02X|%02X|%d,%d,%d RTB=%.f,%.f,%.f%% VM%ld", pSItem->market.cbidflow, pcond->out_besttickdiff, pcond->out_bidindex, pcond->out_askindex, pSItem->hoga.hogafix, pSItem->hoga.hogaerror, psm->ds.daycount, psm->ds.dayshigh, psm->ds.dayslow, pSItem->market.crpower, pSItem->market.ctpower, pSItem->bunsise[0].cbpower, pSItem->market.volume / 1000); //31337|566 정정요청|267320 나인테크 1 4860→4880( 4895) 4915 5H 4880I 0.54% 26원 rid:184,7219 mw=9 bw=4 bh=4 mc=0 ms=0 매수(80) C C+4 종목실시간채팅 자동매수포착이 취소도 밀리는데 안되고, 상황판 보기 DONE:분체강,분시세분리 103140 452400 215100 왜 v1? 323280 태성 위험예고 값 틀림 틱추세이상함 R버튼(리얼) 호가창을 컨트롤로! 호가창에 당일차트표시 두루에디트 컬러를 html로 변환(with css옵션) 정산에 고저,시간표시 수익율 소수점3자리 북마크 pSItem->isreal = 4 해제 5일이내 5만주이하 제외 ask 상태에 수익율 동방 004140 0.5 가중 ? 009070 예약기능 수량 가격 시간,호가창에 수량색상 구분 매수중단 버튼적용 조건간소화 분추세 거래량 뭔가 이상해 검증 체결틱 고가색상 강조 5만이하 금지 0.7? 수량편집벅ㅡ그 그리드 아이템폰트 또는 픽스드폰트와 구분 그리드 배경색 바뀜방지 호가창 갱신 버벅거림, 호가수량 변동 플래시 if (g_pSiseThread) { g_pSiseThread->PostThreadMessage(WM_SISETHREAD_SISE, (WPARAM)SISE_NOTIFYID_REALTICK, (LPARAM)psm); } 대신에 리스트에 집어넣까? 고호틱요체 덤프체결기록안됨 상태정보에 구분표시 최초매수시간 (추매말고) 시장정보는 공통으로 빼기=>나중에 근접매수에서 막 상승각이면 1호가에 추가하기(체강등 고려) //20250731 시간외단일가는 안내려옴 저가미달시 제외 038110 H 104111:2680>2700,270 2685,975=2700,2537 2700,100 0.57% T13 H F2 2 에서 2690 229=2710 3924 로 1.0%인데 왜 매수정정 안올라감? 매도 내호가에 나보다 더 큰물량이고 한칸아래가 이익이면 한칸내림 FindWindow로 vc++ 창 중첩없애기 HwndWrapper[DefaultDomain;;95cd1602-141c-4c2e-a67a-33e7f4094fd0] https://www.google.com/search?q=FindWindow+next+win32&sca_esv=2335eb9854f65b90&source=hp&ei=_YuQaLONNvPn1e8P-pnW8Q8&iflsig=AOw8s4IAAAAAaJCaDU4hjYLTkbIS_z3pdKSalrpYPxrM&ved=0ahUKEwjz_-rg-fCOAxXzc_UHHfqMNf4Q4dUDCBk&uact=5&oq=FindWindow+next+win32&gs_lp=Egdnd3Mtd2l6IhVGaW5kV2luZG93IG5leHQgd2luMzIyBRAhGKABMgUQIRigATIFECEYoAEyBRAhGKABSJAjUABYuR9wAHgAkAEAmAGMAaABtAuqAQQwLjEyuAEDyAEA-AEC-AEBmAIMoALUC8ICBRAAGIAEwgIEEAAYHsICBhAAGAoYHsICBhAAGAUYHsICBhAAGAgYHsICBRAAGO8FwgIIEAAYgAQYogSYAwCSBwQwLjEyoAf7KbIHBDAuMTK4B9QLwgcFNC43LjHIBxc&sclient=gws-wiz virtualbox 아무것도 안하는데 왜 cpu 18%차지? 시세수신 매수체크 list를 백터로(중복상관없음) PushRecvQueue 가 아닌 매수 기본조건통과시 PushCheckSiseQueue g_datacenter.PushBidPending(pSItem); 수량미달 왜 리얼? 스톱로스왜풀림 askhold가 양쪽에 있네 시세랑 잔고랑 (잔고의 홀드랑 현재 주문나간 매수나 매도홀드랑 구분) 잔고감시의 askhold틀림 janhold로 구분 autohold 삭제 004140 왜 0.7?제외해서. 시종몸통등락율 매도손절시 중간가로 1차 매도하기 통합 시세조회,일시세조회는 빠른 케이프로,주문,공시등 뉴스는 이베스트로하기 뉴스공시등 체크박스로! 종목코드 콤보박스를 edit+버튼으로하고 색상지원하기 http://durumul.kr/2009/06/c.html mdir 만들기 9시30분 이전에 하락추세는 매수금지 시세씹히는현상있네... (수신누락) ASK BID 서버시간 TIK 서버시간 로깅 419120유동주식수 이상 손주문시 현시점에서 -3%면 손절 체강아니고 틱거리잇고 왓다리갓다리 취소도 체결된지 3초후 매수취소 최근매수세 수량이 나보닼.면됌크면 틱수신추이 빠르기검사 5틱과 1초이내부터 체강 30~50%이상 전체 매도세 아니고 내수량 매수체결량 클때 매수진입. 호가틱차 잇고 수익율 0.3%이상이고 매도가가 3호가 ㅁ밑에시고 3호가 초과면 한칸내림. 틱구분 --- 이면 한칸내려 visual studio 2019 template 삭제 1)최소 호가공백 1개이상 존재하고, 2)1빠끼리 사고팔경우 수익율이 >0.3% 넘어야하고 3)5틱이 1초이내여야함. 4)5틱이나 10틱의 매수수량이 나보다 커야함 일단,메세지 구조는 그대로 두고 조건만 변경해서 해본다. 이거 하지말고 HMRealWnd if (pSItem->market.cvolume >= 10) { HWND hSiseUIWnd = g_pSiseThread->GetSiseUIWnd(ENUM_SISEUID::SISEUID_DAILY); if (hSiseUIWnd && IsWindow(hSiseUIWnd)) { int ncode = g_pSiseThread->GetUISiseCode(ENUM_SISEUID::SISEUID_DAILY); if (ncode && ncode == pSItem->psm->ncode) ::PostMessage(hSiseUIWnd, WM_SISETHREAD_SISE, (WPARAM)SISE_NOTIFYID_REALTICK, (LPARAM)psm); } } 일시세 자체 타이머에서 갱신하기 거래량없는놈 미리사두기 당일몸통 현재 > 10분전보다 클때 minsisesecs = 5; nInTimeTickFrom => nTimeTick ,nInTimeTickTo 제거 nInTimeBidTickFrom ,nInTimeBidTickTo 제거 fInTimeTick => 제거 기본1초 CheckTickFlow 제거 bInTimeBidFlow 제거 (기본으로 체크) nInTimeBidTickFrom => nTimeBid bBidSkipOpenRate => bBidSkipOpenRate bBidHalfAmtOpenTime 제거 nBestTickDiffMax도 없애기 #if 0 //20241225 리뉴얼 조건완화 20240109 장초 5분간 하락시작이면 매수안함 //20250208 TODO::BizLogic와 통합 if (g_conf.xml.setting.bBidSkipOpenRate) { if (g_conf.m_hhmmss <= 90200 || opentimeover <= 120000) { //20250218 10체결틱이전보다 하락세이면 if (pSItem->ticksise[0].drate < -3.0f && pSItem->market.drate < pSItem->ticksise[1].drate) { pSItem->biddelaytick += nCurTick + 500; return -10; } int askdiff = BizCommon::GetHogaTick(0, pSItem->hoga.ask[2].price, pSItem->hoga.ask[0].price); if (askdiff > 2 && (pSItem->hoga.ask[0].price < pSItem->market.price)) { pSItem->biddelaytick += nCurTick + 500; return -11; } } } #endif ==> 이면 매수로직에서 처리 매수호가 중간에 주문 매도정정시 1차시 중간가로 매도하기 LONG64 ntickdiff = nCurTick - pSItem->market.dwTick; int wmilisecs = (int)((float)g_conf.xml.setting.fInTimeTick * (float)1000);//몇초안에 int minflow = max(1, g_conf.xml.setting.nInTimeTickFrom);//환경설정 최소매수추이 int maxflow = min(BUILDOPT_TICKSISE_MAXCOUNT, g_conf.xml.setting.nInTimeTickTo);//환경설정 최대매수추이 ULONG64 timediff = 0; int hogatimegap = max(wmilisecs, 2000); int maxcount = min(pSItem->ticksise_count, maxflow); wmilisecs += 200;//좀더0.4초추가해줌 curflow = 1; if (ntickdiff > hogatimegap) { //호가시세서 매수이면 호가와 틱체결의 시간차이임 rc = -2; goto step_exit; } //빠른시세종목 리스트업 if (pSItem->hogasise_count > min(5, BUILDOPT_HOGASISE_MAXCONT)) { LONG64 ndifftick = pSItem->hogasise[0].dwTick - pSItem->hogasise[5].dwTick; if (ndifftick <= 5000 && (pSItem->hogasise[0].dwTick - lastfasttick) > 8000) { int minticks = g_conf.xml.setting.nTickAvgCount; //빠른시세종목 리스트업 if (pSItem->ticksise_count > min(10, minticks)) { LONG64 ndifftick = pSItem->ticksise[0].dwTick - pSItem->ticksise[9].dwTick; if (ndifftick <= 5000 && (pSItem->ticksise[0].dwTick - lastfasttick) > 8000) { ::PostMessage(hSiseUIWnd, WM_REALSISE, (WPARAM)SISE_NOTIFYID_CHGCODE, (LPARAM)pSItem->psm->shtcode); lastfasttick = pSItem->ticksise[0].dwTick; } } 전광판필요 매수미달(갯수) 필터(갯수) 최근미달내용 093240 054540 408900 023790 쓰 제일먼저 할일 3체결틱이전과 1초이내인가? 호가틱이 1이상인가? 매수세인가? 192410 자본금 x왜통과? 5만이하 배제 팔때는 매수1호같으면 중간가로 시세시간중 최근시간표시 (15초 가량 딜레이네) 매수세나 체강이나 똑같은말 (통일) 기본조건 미달 확실히 리얼제외시키기(쓸데없는 tr트래픽유발) tradecomm 통합 이전호가 지금호가 매도1 다운 offer 비교 1: 상한, 2: 상승, 3: 보합 이면 그냥 + 로? ON_CONTROL_RANGE(STN_CLICKED, + pSItem->tickcgubun 0x1137c1b7 "+------------------+-++++++++++++++" char[82] + pSItem->ticksign 0x1137c209 "22222222222222222222222222222222222" char[82] + pSItem->ticksise 0x1137c34c {{dwTick=156727421 chetime=0x1137c354 "115736" sign=0x1137c35b "2" ...}, {dwTick=156727265 ...}, ...} NSHomi_Common::_STTickSise[81] - pSItem->hoga {dwTick=156727359 hotime=0x1137b5fb "115736" ho_status=0 ...} NSHomi_Common::_STHogaSise dwTick 156727359 unsigned __int64 + hotime 0x1137b5fb "115736" char[7] ho_status 0 short dongsigubun 0 short totofferrem 62650 long totbidrem 92780 long volume 0 long + ask 0x1137b612 {{price=696 qty=4302 }, {price=699 qty=29866 }, {price=700 qty=5947 }, {price=701 qty=18 }, ...} NSHomi_Common::_PRICEPAIR[10] + bid 0x1137b662 {{price=695 qty=14990 }, {price=694 qty=51036 }, {price=693 qty=8207 }, {price=692 qty=3761 }, ...} NSHomi_Common::_PRICEPAIR[10] 는 1이지 10만이하 리얼제외 019180 왜 과열1 리얼제외? 진입 이탈 일시세없으면 3초에 1번 조회 HWND hSiseWnd = g_pSiseThread->m_pSiseWnd ? g_pSiseThread->m_pSiseWnd->GetSafeHwnd() : NULL; 45|호가수신|시작(은 0인놈만 상하한 값 팝업설정 현대힘스에 올인? 투자금 추가! -2% 이내에서 m_realcount 45|호가수신|시작(은 0인놈만 상하한 값 팝업설정 현대힘스에 올인? 투자금 추가! -2% 이내에서 공유메모리에 시세공유 BUILDOPT_SHM_SISE 시세윈도우작성(백그라운드실행,트레이모드) m_stockmaster = { size=4174 } m_stocklist keylist = { size=1885 } H누르면 미달히스토리 오리엔트정공 짜가말고 014940 오리엔탈정공 매수시도왜없나? 등락율때문 .2자리로 등락율이 아니라 현시간대(분 또는 30초사이) 시고저로 상승일때 매수진입 TODO:: 분등락율 반영하기 30초전 등락율저장하기 dratelist[10] 30초간격 등락율 기록 332290 050890 v2맞음 128540 014970 200470 356860 왜 v2? 018290 066970 왜 v1? vi걸린시간표시,매수시도 횟수표시 NXT상장여부(=시간외단일가안됨) RGB(250, 70, 50) 일시세분시세합치기 테마 업종 같은놈 동시에 매수금지 075580 세진중공업 004140 동방 개쓰레기등록 ETF 종목코드에 영문들어감 잔고에 VI표시안됨 그리드 row 시프트(속도개선)->scrollwindow ShiftRow(int iStartRow); 차트꼭지점 선그리기 분차트왼쪽부터 BUNCHART_NUM chartcount 미니호가구현 if (g_pSiseThread) g_pSiseThread->SetUISiseCode(ENUM_SISEUID::SISEUID_DAILY, atoi(strcode)); g_pSiseThread->SetUISiseCode(ENUM_SISEUID::SISEUID_DAILY, atoi(m_shtcode)); SISEUID_BUNSISE long totofferrem = pSItem->hoga.totofferrem; long totbidrem = pSItem->hoga.totbidrem; long diffamount = totbidrem - totofferrem; 일분탭대신버튼으로 20250919 -------- 호가창 표시 속도개선 일단 타이머로 하고 그래도 개선안되면 쓰레드로 처리하기 pSItem->hoga_count; 악덕기업 하드코딩 제외 01=101000,KS인더스, 293, 2381, 1906, 697/557K, -140097,-20.08%,-20.08%, -0.37%,250916/093937,250918/162710,BID(02),STOP(02410:01436),ASK(-1:K) 02=100090,SK오션플, 40,30550,25450, 1222/1016K, -205680,-16.83%,-16.83%, -0.98%,250912/151813,250915/100226,BID(04),STOP(31300:22900),ASK(-1:K) 03=333430,일승 , 170, 9469, 8060, 1609/1367K, -241791,-15.02%,-15.02%, 0.32%,250912/102340,250918/171007,BID(02),STOP(09560:06950),ASK(-1:K) 04=099440,스맥 , 190, 4933, 4250, 937/806K, -131103,-13.99%,-13.99%, 0.13%,250912/102449,250916/093932,BID(02),STOP(04955:04030),ASK(-1:K) 업종중복잔고 매수안키(특히 하락물린경우) etf만 거래하기기능 업종정보 모르는놈은 0.5가중치나 매수금지 개별종목 매수직후 등락율에 따라 롱텀 숏텀 호가창 주문,체결,취소,정정시 갱신하기 5분전보다 0.5이상 상승시만 매수하기 단 분시세 하락이면 금지 일시세창 포커스잃음,호가창 콤보선택 잃음 일분시세창 ui변경(일일차트 메인에,위 정보란 메인에) ok 개종목하드코딩 kx3StatusImageList를 이용한 버튼아이콘 3상표시(표준,활성,비활성) 시간외틱중 고가강조표시 long nhotime = atol(order.hotime); g_recent_hotime g_recent_chetime = nchetime; long nchetime = atol(pSItem->market.chetime); m_strcode //20250925 tick_count 비교로 자체타이머에서 처리 일분시세,일시세 리얼틱이면 오늘것만 갱신 if (psm && psm->ds.daycount > 0 && psm->ds.days[0].ndate == g_conf.m_today) { 시세수신자 별도exe => 공유메모리적재 계정선택 주문처리자 별도exe => 계정선택 =>공유메모리peek => 주문처리 5틱이전이 - 연속 오지게 많을때,스킵 공유메모리 인덱스 테이블 벡터 노업종 매수스킵 if (psm->si.upname[0]) if (psm->si.etf == 1 && !(g_conf.xml.setting.nMaskETF & 0x01)) if (psm->si.etf == 2 && !(g_conf.xml.setting.nMaskETF & 0x02)) 매도물량수량공세 감지해서 빨리손절처리 개별종목 안하고 etf만 하기 벡터pair로 그리드내 해당종목코드 rowindex 빨리찾기 MYVECTOR_LONG coderowlist; MYVECTOR_LONG::iterator vit; ETF에 레버리지에 천만원이상 투자 시세앱 설정한 종목 리스트추가하거나 시세창에 즉시 시그널이나 sendmessage callback을 줘야함 그리드 갱신즉시 표시 GDCell topcell = GetTopleftNonFixedCell(); if (IsValid(selcell)) { irow = topcell.row; } 공유시세 활용 당일시세가 있으면 조회안함 LoadMasterInfo sqlite 종목로드기능 또는 공유시세에서 로드 분시세 리사이징 반영안됨-done 매수시 호가변동검사해서 스킵하는곳있는지 찾아서 제거. 매수3틱수량과 내수량비교 GDCell idTopLeft = m_Grid.GetTopleftNonFixedCell(); 5호가구현 long basePrice = pSItem->market.price; basePrice = min(basePrice, pSItem->hoga.bid[0].price); xpectqty = nAmountPerOneStock / basePrice; SetHighLightItem 자동원복(색상) 분시세에 일종가 함께표시 ok 장초 30분간 롱텀,이후 스켈핑모드 자동전환 업종소트 3대장만 매수대상에 포함하기 20251023 불공정거래 적발1차 형지엘리트 호가수신시 공유시세에 저장 ok 틱조회수신시 R이 아니면면 Q로 설정 ok #ifdef USE_EBEST_API stIn.exchgubun[0] = g_conf.exchange[0]; //= 'K';//KRX N=NXT #else stIn.exchange[0] = g_conf.exchange[0]; //거래소구분 1:KRX 2:NXT 3:통합 #endif 잔고에 같은업종 있으면 안사 ok 캡쳐매도법 HUNTRIX ZIPURAGI IDM_ASKSTOPALL 주문계좌설정(즉시 변경가능토록 증권사 계좌선택) 750? 7xx-20번지 3층 ETF는 등락율 0이상 상승만 매수 //종목당 매수금액 제한 long nAmountCashableAmt = (nInvestAmount * fCashamtLimitRate) / 100; long nAmountCashableAmt = (g_conf.xml.setting.nInvestAmount/ g_conf.xml.setting.fCashableamtRate) / 100; STJangoInfo* pFItem = g_datacenter.m_jangoledger.GetItem(shtcode); fbidweight = (pFItem->mamt / nAmountCashableAmt) + 0.5f; int SiseLogic::checkSiseCommon(HMStockInfo* psm, int checklevel, CString& strerror, bool bLog) int SiseLogic::checkSiseToday(HMStockInfo* psm, CString& strerror, bool bLog) int SiseLogic::checkSiseVolume(HMStockInfo* psm, CString& strerror, int& waitstocks, bool bLog) int SiseLogic::checkRealVolume(HMStockInfo* psm, int timeline, CString& strerror, int& waitstocks, bool bLog) int SiseLogic::checkSiseDaily(HMStockInfo* psm,byte fromdb,bool bLog) 보유잔고 매수활성화 안하기 보유잔고 매수가중치 매입금액 보다 좀 더 크게 보정 fbidweight 설정하는곳 checkSiseToday checkSiseVolume checkSiseDaily 일별수익창 공통시세에 주문계좌 선택 조선해양,자동차,원전 핵잠,먹거리 음식료 식료품 안드로이드 앱광고 없애기 매수로직 실패분석 20251104 ======== ETF 시세받기(거래량 등락율) 매수만 안코, 조회는 통과해서 나오게 하고 관심종목에 있거나 거래량 많은순으로 몇종목은 거래추가 정정말고 매수취소 pSItem->ticksise[0].tickflow, pSItem->market.cbidflow, pSIt 등락율안지키네 etf시세통과시키기(80개이하만) m_nSiseSentCount 3083 int m_nSiseTotalCount 3083 int m_nSisePassCount 481 int m_nSiseETFPassCount 23 int ETF호가단위다름 2천원 미만: 1원 2천원 이상: 5원 종목정보하단상세를 에디트로 복사가능하게 최근손해본놈 거래량위주로 높은놈만 공략하기 잔고정보 have 일시세 마감후갱신 공유시세에 일,분시세 추가,종목정보 팝업추가 공유시세에서 거꾸로 일마감시세시 listener 등록한 hwnd에 시그널날리기 개별종목 숏,롱 그리드를 콜백해서 가변적출력기능 업종별 거래량이나 자본금으로 소팅하기 공유시세 틱순 time_t lasconttime = GetElapsedTime(pSItem->ticksise[0].uptime);//최근체결시간 125490 H 092311:8950>9010,20 8980,29=9000,2127 8980,9 0.49% T-2 H TICKFLOW -2에 왜매수함?=버그없앰 H 145549:1241>1251,400 1249,991=1250,1351 1250,942 0.62% T13 B5 H pSItem->ticksise[0].tickflow 차트선택 인덱스오류 strmsg.Format("종목초과"); if (pDlg) pDlg->SetNotice(strmsg.GetBuffer()); void DlgLedger::SetBidStatus(char* szstatus) 317850 =="J4186202F"이에이트 1,1,1,1, 여도 틱차이 수익율이상이면 매수량이 더 많으면 매수걸기 첫 매도시 내가 매도3호가 이상이고 내수량보다 더 많으면 만주이상 한칸내려보기 //2245왜아님 1302437|127 매수포착|067000 조이시티 210 2235→2255( 2245) 10.86% 5H 0.71% 3348원 D4|B0|A0|D73 RTM=50,390,820% VM6251K T4 B4 A0 H 1302437|128 시세정보|067000 조이시티 2025 2045 2300 1979(10.86,0.99,16.22,9.78%) H:0000 J:28 T4:0 B4:++++-+-+ M5:+++- D73:++--- H5,L0 HBA:369 9736 8497 130241|067000 조이시티 ASK '2250:9557|23689|7680|9852|4146|9789|14188|4814|9515|2295:13308' BLANK(0) |067000 조이시티 BID '2240:1014|248|815|2489|2161|4437|11922|7968|12066|2195:9247' BLANK(0) 130241|067000 조이시티 TIK '2245:39|1|1,4442|-1,502|-2,1|2,1|-2,1|2245:1|+2245,2235' 130241|067000 조이시티 BUN '2245:11:0.7%:1.1%|2230:16:0.2:0.5|2220:9:0.2|2215:13:-0.2|2220:14:0.0' GetTickRate => GetHogaRate ftickrate bBidTickRate => bUseHogaRate pcond->out_askprice > pSItem->hoga.ask[0].price && pSItem->hoga.ask[0].qty > pcond->out_qty //제세금포함 fc = compdecimal(pcond->out_rate, fExpectRate); if (fc < 0) { if (pcond->out_rate >= fExpectRate * 0.8f) { lesstick |= 0x02; needtick |= 0x02; } } , g_conf.xml.setting.bBidBlank 정체검사제거 PAGEITEM* pi = m_pm.getcurPage(); 틱추세,매수세 조건고치기 체강 10초전이나 10틱전중 빠른놈으로 상친놈 당일분차트 분석하기 관심종목 실시간 갱신 T풀림 DB손해보험 거래량 잼병 왜샀지? =>일시세없음=>수정조치함 잔고창에 시작전 현재 정산차이표시 멀티계좌 증권사 + 계좌n번 시세조회 속도저하?잔고리얼 먼저등록땜? 차트변화가 불분명함 분시세 같은시간대면,전체말고 1행만 갱신하기 업종없어도 당일상장 및 3일이내 상장포함 로그인 멀티통합 한프로그램으로 #ifdef ebest없애기 시간외전환시 일시세 메모리에서 로드 20251218 -------- 체결강도 로직강화 주가의 추세 및 강도를 분석하기 위하여 가장 많이 사용되는 변수가 가격 및 거래량 Volume Power(%) = 이전 가격대비 상승 체결합 / 이전 가격대비 하락 체결합 X 100 (전체 거래량을 주가에 (+)요인을 제공한 Positive Volume(체결매수)과 주가에 (-)요인을 제공한 Negative Volume(체결매도)으로 구분하여 이를 백분율(%)로 표시) ① 실질적인 매수(매도) 강도를 정확히 측정 ② 매수강도 및 매도강도가 일치한 시점을 기준선(100)으로 표시하고 이의 상향(하향) 돌파 시 매수(매도) 신호로 활용 가능 ③ Volume Power(체결강도)의 순위분석 결과에 따라 현 시점에서의 주도주(업종)의 포착이 가능 LS는 체결강도 = 매수체결량÷매도체결량×100 기준선(100) <= 정확함 cape는 = 매수체결량÷전체체결량×100 (50%가 기준선) 단 문제는 매도체결량이 1일때 어떡하냐임. 타임라인에 첫빠따에 종목리스트 툴팁 분에 매도매수체결량 추가 35MB 메모리 당일최고최저 어제 툴팁 당일손익 저장 리플레이,중단,재개,종료 체강997이상 잡기(체결량적을때는 낮게계산) 체강을 5틱간격으로 2번씩 검사 => 10틱,최근5틱만 검사추가 체강,체결추이,수익율 조건만족시 공유시세와,호가창에 매수램프 반짝표시 시세창에 틱시세표시추가,분시세에 투동표시(P,F,C) 매도주체 //기준가로 최대매수수량얻기,fbidrate=매수가중치 1=100% static long GetExpectQty(long baseprice, float fbidrate = 1.0f); 호가칸당 간격비율 자동계산(fhogarate)-현재가기준-ok avgcount tickcount maxavgcount 20260102 -------- 리셋틱시세 -ok 틱추세 연속이 아니라 N틱내 개별카운트 bidcnt,askcnt 지정매수,관심종목만,ETF만 매매모드=>nBidTarget = ALL,BOOKMARK,ETF,KOSPI 시외단 종가변동안되게market.price ok 20260108 -------- CheckTickSise 에 현재시간을 인자로 넘기기(디버깅잘되게) 틱차감갯수 표시? 매도홀딩 함수로 통일 그리드로우단위툴팁? 호가컨트롤(자동+- 가감일시표시),체결컨트롤화 IDC_CHECK_TICKAVGVERIFY 물타기 매입단가계산기 당일정산 저장 매수조건에 전일등락율을 공략에 포함 (+20 -20이상이하만) 버블팝 툴팁 좆종목 0013V0 042370 027360 474170 424870 014910 개별종목안해,ETF만해 사람도 다 손절하고 새출발 오늘 급등감지 로직개발하기 pGrid->SetTooltipText(irow,0, ""); -10%무조건손절 블랙리스트깨짐 ok gps추적기 씨알리스 오전은 롱텀 오후는 숏텀 grid FlashText 당일을 차트로 표시? ETF는 증권거래세 없음? pSItem->psm->si.marketid == (int)ENUM_MARKETID::ETF BizCommon::_calsonikrate( 손보기 ok 시간외에서 스톱로스되게? SISE_REALTICK 를 PostMessage 대신에 큐에저장? 거래량 20만미만 3일이상은 가중치 0.5로 손익상황 툴팁에 추정자신도 포함 증권사 스톱로스 등록(매크로등록)하기 미달목록창 etf는 틱율체크안하기 일거래량항목줄이기 KOSPI200 "KS2" 공유시세에 일시세 반영안되는현상 매수검사횟수 매수요청횟수 m_pSise 없애기 롱텀이면 A로 (byte)ENUM_ASKHOLD::ASKHOLD_AUTO 모든잔고 모두자동 왜 체크? autohold 없애고 pFItem->autohold 랑 pFItem->askhold &= (byte)ENUM_ASKHOLD::ASKHOLD_AUTO 통합정리 넥스트거래소 상장종목 매수대상포함여부,시간외거래 안됨 툴팁 중복코드제거 거래량 상보 클릭시 죽음 PostMessage 메세지줄이기 시세ui갱신을 한군데로 메세지 통일해서 분배해야 되지않나? //TODO::20260124 여기서 모든UI시세표시 통합 SISE_JANGOTICK 를 시세UI통신센터로 변경(HOGA도) => 여기서 각 창떠있으면 분기(메세지기반아니고 직접호출) HMRealWnd::OnRealTick( HMRealWnd::OnRealHoga( //TODO::20260124 여기서 모든UI시세표시 통합 STJangoInfo* pFItem = (STJangoInfo*)lParam; hSiseUIWnd = g_pSiseThread->GetSiseUIWnd(ENUM_SISEUID::SISEUID_HOGA, szsisecode); HWND hSiseUIWnd = g_pSiseThread->GetSiseUIWnd(ENUM_SISEUID::SISEUID_JANGO); //분시세 hSiseUIWnd = g_pSiseThread->GetSiseUIWnd(ENUM_SISEUID::SISEUID_BUNSISE, szsisecode); if (hSiseUIWnd && IsWindow(hSiseUIWnd)) { strcode = szsisecode; if (strcode == pSItem->psm->si.shtcode) { ::PostMessage(hSiseUIWnd, WM_REALSISE, (WPARAM)SISE_REALTICK, (LPARAM)pSItem->psm->si.shtcode); } } //관심종목 20231003(CPU과부하 남발 MESSAGE안보내기) hSiseUIWnd = g_pSiseThread->GetSiseUIWnd(ENUM_SISEUID::SISEUID_BOOKMARK); |

'TechTree(IT|Dev|SW) > C | C++ | VC++' 카테고리의 다른 글
| [소스공개] 5호가 구현예시(5호단가) 미니호가 (7) | 2025.10.19 |
|---|---|
| [소스공개] IPC간 즉시 시그널 (0) | 2025.10.11 |
| [소스공개] 시세공유::공유메모리 FullSource v3 (0) | 2025.10.09 |
| [소스공개] 시세공유::공유메모리로 주식 시세나 프로세스간 데이터 공유 (0) | 2025.10.07 |
| [소스공개] 시세공유::공유메모리로 주식 시세,프로세스간 데이터 공유V2 (0) | 2025.10.02 |