9월 주식 결산

거창하게 결산이라고 제목을 지었지만, 현재 보유 상황 정리 겸 배당금 기록.

최근 소소하게 가지고 있던 종목들을 정리했다. 약 40만원 정도 손실이 발생했지만 단순화 하는게 좋겠다는 생각이 들어서 정리했다. 그 중 CMA 계좌에서 국장은 삼성전자, 하이닉스, 코스피 지수, 코스피 타겟 커버드콜, 그리고 소규모로 가지고 있는 개별 종목 두개 정도, 해외 직투는 애플과 구글, 엔비디아, 리얼티 인컴, 슈드, S&P500과 나스닥 지수, 나스닥 지수 타겟 인컴 정도만 남겼다. 약 1년간 커버드콜 위주로 매수하고 1년 후 다시 점검 할 생각이다. (하지만 언제 또 생각이 바뀔지 알 수 없는 일.)

커버드콜은 상승을 온전하게 얻지 못하므로 지수 ETF에 투자하라는 조언이 많다. KODEX 200이 74% 상승한 4~6월, 커버드콜은 67% 상승하여 7%정도 손해지만 월 분배금을 재투자 해도 5%정도 손해다. 하지만 커버드콜을 활용하여 분배금을 받고 재투자 하는 방향이 나에겐 더 맞는 방식이라 생각된다.

지난 2개월간 KODEX의 상승률은 28.35%, 지난 2개월간 KODEX 200타겟위클리커버드콜은 27.36% 상승

하지만 분배금 재투자 기회를 생각하면 커버드콜이 상승을 다 얻지 못해도 횡보장일 때는 커버드콜이 유리하다. KODEX 200이 87,272원에서 112,025원이 되었지만 커버드콜은 16,380원에서 20,852원이 되었고 8월엔 270원, 9월엔 300원의 현금이 발생했으므로 최종 보유 금액은 20,950원으로 27.89% 상승이 된다. 물론 분배금으로 재투자가 가능할 정도로 충분히 많이 투자되어야 하고 재투자에서 발생하는 수수료가 있겠지만 감안 할 수준이라고 본다. 물론 반도체 호황 이전의 코스피 2천 수준으로 다시 급락할 수 있다고 생각 해 두고 있고, 이런 상황에서도 커버드콜은 팔지않고 보유할 더 단단한 버팀목이 될거라 생각 된다.

그리고 처음으로 남겨보는 9월의 배당금. 참고로 하이닉스는 소수점으로 보유 중이고 배당금도 백원 수준이라 제외했다.

보유수량주가지급금액종목명
CMA 계좌
2.94$59.00$1.70JEPQ
1.10$55.84$0.46GPIQ
0.25$273.84$0.29JNJ
3.37$61.28$0.77O
1.46$338.46$0.27GOOGL
4.85$305.27$1.29QQQM
33.80$33.28$7.66SCHD
1.23$703.61$1.90VOO
10419,700원31,200원KODEX 200타겟위클리커버드콜
ISA 계좌
4925,505원5,047원PLUS 고배당주
1504,070원4,950원TIGER 리츠부동산인프라
1728,760원2,465원TIME Korea플러스배당액티브
1715,140원510원TIGER 미국배당다우존스
1126,665원1,100원TIGER 은행고배당플러스TOP10
1021,255원1,080원KoAct 배당성장액티브
4010,455원5,280원TIGER 미국나스닥100타겟데일리커버드콜
612,515원282원KODEX 주주환원고배당주
연금저축펀드
1115,140원330원TIGER 미국배당다우존스

9월의 달러 배당금은 14.34 USD, 원화 배당금은 52,400원으로 집계 되었다.

10월은 과연 얼마의 배당금이 지급될지. 기다려진다.

미래에셋증권의 로보어드바이저 추가 매수하기

최근 미래에셋증권에 연금저축펀드 계좌를 하나 더 열어서 로보어드바이저를 신청해보았다. 문제는 은근히 어렵다는 것.

MY 로보어드바이저 가입신청하고 투자성향 설정을 진행하다가 중간에 앱을 닫고 다시 투자성향을 설정하여 완료하였는데, ‘포트폴리오 변경이 진행중입니다.’라는 문구가 상단에 떠있었다. 진행하다가 앱을 닫은것 때문에 아직 진행중인 프로세스 알림인 줄 알고 취소했었다. 다음날 주문되고있나 확인해보니 전부 주문 취소가 되어 있었다.

아직 로보어드바이저 설정이 진행중이라는 의미인 줄 알았는데 내가 생각이 다른건가? ‘포트폴리오가 적용되었습니다.’로 문구가 바뀌는게 더 명확할거같다.

메시지를 누르면 뜨는 안내 메시지도

[포트폴리오가 적용되었습니다.]
로보어드바이저로 설정한 주문을 취소하시려면 주문취소 버튼을 눌러주세요. 이미 매매되었거나 취소가 불가능한 주문을 제외하고 취소합니다.
[닫기] [주문취소]

이런식으로 되면 더 나을거같은데. 암튼 펀드 매수가 전부 완료되면 아래와같이 해당 메시지는 사라진다.

[연금] – [연금포트폴리오] – [MY 로보어드바이저(연금)] 또는 [상품] – [로보어드바이저] – [MY 로보어드바이저] 화면

문제는 현금을 입금하면 알아서 추가매수되는지 직접 주문을 실행해야하는지, 어떻게 추가 주문을 진행할 수 있는지 설명이 없다. 하루 기다려봐도 앱을 다시 열어봐도 로보어드바이저를 신청한 계좌에 현금이 추가입금되었으니 매수를 진행할건지 물어보는것도 없다.

스크롤하면 ‘내 계좌 맞춤설계’ 버튼만 있을 뿐. 이걸 눌러서 진행하면 펀드가 전부 매도되고 다시 구성되는건가? 도저히 알 수 없었다. 기존 펀드가 전부 매도되면 그냥 서비스 해지하고 직접 주문해야겠다는 생각으로 진행.

Continue reading 미래에셋증권의 로보어드바이저 추가 매수하기 →

GDI의 SelectObject 함수

요즘은 GDI를 사용할 일이 없겠지만 간혹 사용할 일이 생긴다. 최근 uxtheme를 파고들다보니 다시 접하게 되었는데 GDI 정보가 생각보다 일관성이 없다.

일단 내가 오래전에 봤던 내용 중 기억에 남아있고 하던 코딩 방식은 아래와같았다.

static void TestDC()
{
    HDC hdc = GetDC(NULL);
    HDC memDC = CreateCompatibleDC(hdc);
    HBITMAP memBitmap = CreateCompatibleBitmap(hdc, 100, 100);
    HBITMAP oldBitmap = (HBITMAP)SelectObject(memDC, memBitmap);

    // ...

    SelectObject(memDC, oldBitmap);

    DeleteObject(memBitmap);
    DeleteDC(memDC);
    ReleaseDC(NULL, hdc);
}

DC 객체를 생성하고 처음 SelectObject하면 반환되는 기본 객체는 DC를 지우기 전 다시 SelectObject로 기본 객체를 선택하여 DC를 지워야한다는 것이였다.

GDI 오브젝트 개수를 확인하는 코드를 구글링하니 GetGuiResources(GetCurrentProcess(), GR_GDIOBJECTS) 이러한 코드가 나왔다(참조 링크). 이걸 참조하여 아래와같이 수정하여 실행해보았다.

Continue reading GDI의 SelectObject 함수 →

SQLite3 MSVC로 빌드시 주의사항

소스파일의 기준은 https://www.sqlite.org/download.html 이곳에서 sqlite-autoconf-VERSION.tar.gz 기준. (현재는 3380200)

소스파일 압축본 내 README.txt 파일과 https://www.sqlite.org/howtocompile.html 이곳을 참조하여 nmake "OPTS=-DSQLITE_ENABLE_STAT4=1 -DSQLITE_OMIT_JSON=1" /f Makefile.msc 이렇게 빌드하였다.

이후 sqlite3.lib 파일로 링크하면 링크 오류가 발생하고 lib 파일을 열어다보니 export된 함수가 없다는것을 알 수 있었다. make 중 dumpbin /all sqlite3.lo 명령으로 sqlite3.def 파일을 생성하는 부분이 눈에 보이는데 단순히 버그인지 아니면 MSVC의 버전이 올라가면서 컴파일러 전처리기에 차이가 발생하는건지 sqlite3.def 파일에 export될 함수들이 없어 발생하는 문제인거같다.

stack overflow의 글(https://stackoverflow.com/a/71106434)을 참조하면 식별자 SQLITE_API로 dllexport를 지정하면 된다고 되어있으며 Makefile.msc 파일을 확인해본 결과 DYNAMIC_SHELL=1을 nmake 실행 시 지정하면 되는것으로 파악되었다.

결론: nmake "OPTS=-DSQLITE_ENABLE_STAT4=1 -DSQLITE_OMIT_JSON=1" DYNAMIC_SHELL=1 /f Makefile.msc 이렇게 빌드하면 된다. sqlite3.h, sqlite3.lib, sqlite3.dll 파일들을 적당히 복사하여 사용하면 끗.

ARM 타겟 PHP 빌드 오류 해결

라즈베리파이에 올릴 용도로 buildroot의 LTS판 최신버전(2020.02.8)을 php 포함하여 빌드하는 중 아레와같은 빌드 에러가 발생하였다.

ext/standard/crc32.c:48:10: error: ‘armv8-a’ does not support feature ‘nothing’
 # pragma GCC target ("+nothing+crc")
          ^~~
ext/standard/crc32.c:48:10: note: valid feature names are: crc simd crypto nocrypto nofp
ext/standard/crc32.c:48:10: error: ‘armv8-a’ does not support feature ‘nothing’
ext/standard/crc32.c:48:10: note: valid feature names are: crc simd crypto nocrypto nofp
ext/standard/crc32.c:49:1: error: ‘armv8-a’ does not support feature ‘nothing’
 static uint32_t crc32_aarch64(uint32_t crc, char *p, size_t nr) {
 ^~~~~~
ext/standard/crc32.c:49:1: note: valid feature names are: crc simd crypto nocrypto nofp
ext/standard/crc32.c:49:1: error: ‘armv8-a’ does not support feature ‘nothing’
ext/standard/crc32.c:49:1: note: valid feature names are: crc simd crypto nocrypto nofp
ext/standard/crc32.c: In function ‘crc32_aarch64’:
ext/standard/crc32.c:49:1: error: ‘armv8-a’ does not support feature ‘nothing’
ext/standard/crc32.c:49:1: note: valid feature names are: crc simd crypto nocrypto nofp
ext/standard/crc32.c:49:17: error: ‘armv8-a’ does not support feature ‘nothing’
 static uint32_t crc32_aarch64(uint32_t crc, char *p, size_t nr) {
                 ^~~~~~~~~~~~~
ext/standard/crc32.c:49:17: note: valid feature names are: crc simd crypto nocrypto nofp
make[1]: *** [Makefile:967: ext/standard/crc32.lo] Error 1

구글링해보니 해당 파일의 위 에러가 발생하는 “+nothing+crc” 부분을 “arch=armv8-a+crc”로 바꾸니 해결되었다. 일부러 +nothing을 넣은건지 알수없고… 에러 내용도 보면 armv8-a에선 nothing을 지원하지 않는다. 이정도로 해석된다.

저런식으로 일단 빌드 안되게 해둔것이 빌드 대상 아키텍쳐가 crc 명령을 지원하는지 유무를 빌드 된 바이너리 레벨에서 확인이 안되어서 인가? 명령이 지원 안하면 실행 시 에러가 발생할것이니 빌드 레벨에서 대상 타겟이 무엇인지 명시적으로 정의를 하는것 같기도하고 음… 나중에 생각이 나고 기회가 되면 파고들어봐야겠다.