quanstaxx의 등록된 링크

키자드에 등록된 총 169개의 포스트를 확인하실 수 있습니다.

Naver Blog

데이터를 입력받아 메모장에 저장하기

import sys name = input('이름 : ') age = input('나이 : ') phone = input('폰 번호 : ' ) data = [name, age, phone] max_index = len(data) output_file = sys.argv[1] contact = open('contact.txt','a') for i in range(len(data)): if i < (max_index-1): contact.write(data[i]+'\t') else: contact.write(data[i]+'\n') contact.close() 1) 위의 함수를 '******.py'로 저장 2) cmd실행 3) cmd에 python *****.py 'contatc.txt' 입력 4) contact.txt 확인

Naver Blog

python 32bit로 변환하는 방법

1) cmd에 conda 입력 - 알수 없는 명령어라고 나오면 anaconda프롬포트를 실행하여 conda 입력 2) set CONDA_FORCE_32BIT=1 입력 3) conda create -n python_32BIT python=3.7 anaconda

Naver Blog

파이썬을 32비트로 변환하고 증권사 api따오자!

파이썬을 통해 증권사가 제공하는 api를 받아오려면 설치되어 있는 파이썬이 32bit 이어야 한다. 하지만 대부분의 컴퓨터가 64bit 이고, 파이썬 홈페이지에 있는 다운로드 파일들은 모두 64비트이다. 64bit 파이썬으로 증권사 API에 접속하면 무조건!! 오류가 발생한다. 이를 해결하기 위한 방법은 32비트 파이썬을 설치하던가, 아니면 64비트 파이썬은 32비트로 바꾸는 것이다. 앞서 언급한것처럼 파이썬 홈페이지에 있는 다운로드 파일은 모두 64비트이기 때문에 첫번째 방법은 힘들기 때문에 두번째 방법을 사용해야 한다. 두번째 방법은 굉장히 간단하다 1. CMD 실행 2. CMD에 CONDA 입력 * 만약 cmd에서 conda를 입력하였는데 오류가 발생한다면 cmd를 끄고, anaconda prompt를 실행하여 conda를 입력한다. conda를 입력하고 나서 밑에 뭔가 주루룩 나오면 된것이다 3. cmd에 set CONDA_FORCE_32BIT=1 입력 4. conda cre

Naver Blog

코스피 200선물 로우데이터를 딕셔너리로 정리

요 데이터를 딕셔너리로 정리했다 with open('e:/future.txt','r') as f: data = f.read() data = data.split('\n') date = [] close = [] for item in data: item = item.split('\t') date.append(item[0]) close.append(item[1]) future = {} for i,k in enumerate(date): val = close[i] future[k] = val

Naver Blog

종목 주가데이터 가져오기(싸이보스)

from pandas import DataFrame import win32com.client import win32com def substockChart(Code,Term): stockChart = win32com.client.Dispatch('CpSysDib.StockChart') stockChart.SetInputValue(0,Code) stockChart.SetInputValue(1,ord('2')) stockChart.SetInputValue(4,Term) stockChart.SetInputValue(5,[0,2,3,4,5]) stockChart.SetInputValue(6,ord('D')) stockChart.BlockRequest() num = stockChart.GetHeaderValue(3) data = [] for i in range(num): tempData ={} tempData['Date'] = stockChart.GetDataValue(0,i) tempData

Naver Blog

나스닥 선물 트레이딩 전략

나스닥 선물 지수가 가진 특징은 명확하다. 그것은 바로 상승추세가 굉장히 강하고 오래 이어진다는 것이다. 그래서 나스닥 지수에서는 매수 추세추종 전략은 잘 먹히는 반면 매도 추세추종 전략은 안좋은 성과를 보인다. 이러한 나스닥 지수의 특성을 반영하여 매수 포지션 트레이딩 전략은 포지션을 최대한 길게 보유하도록 청산로직을 구성하고, 매도 포지션 트레이딩 전략은 타임프레임을 줄여서 포지션 보유기간을 짧게 하는 청산로직을 구성하였다 백테스팅 결과값은 다음과 같다 1. 나스닥 매수 트레이딩 성과 - 타임프레임 : 5분봉 - 수수료 : 0.002% * 2 - 슬리피지 : 0.5pt * 2 2. 매도포지션 트레이딩 - 타임프레임 : 1분봉 - 수수료 : 0.002% * 2 - 슬리피지 : 0.5pt * 2 매도포지션은 타임프레임을 늘릴수록 성과가 안 좋아진다. 지금 개발한 나스닥 선물 트레이딩 전략은 낮은 초기에 적은 자본을 가지고 운영할 계획이다. 이에 트레이딩 1회당 감내할 수 있는 변동폭

Naver Blog

파이썬 다시 시작!

이번주 내내 코딩공장에서 열심히 파이썬을 공부했다. from PyQt5.QAxContainer import * from PyQt5.QtCore import * from config.errorCode import * class Kiwoom(QAxWidget): def __init__(self): super().__init__() print('Kiwoom 클래스 입니다') ########eventloop 모음### self.login_event_loop = None self.detail_account_info_event_loop = None self.detail_account_info_event_loop_2 = None ######################## #####변수모음 self.account_num = None ######################## #########계좌관련변수 self.use_money = 0 self.use_money_percent = 0.5 ###

Naver Blog

피봇을 활용한 트레이딩 전략

예전에 코스피에 피봇을 적용하면 어떨까,,,? 라는 생각을 해보고 전략을 조금씩 만들고 있는중 인베스트라에 있는 피봇 전략을 참고해서 조금씩 수정 보완하는중 인베스트라는 피봇라인을 총 7개를 사용하는데 괜찮은거 같음, 이렇게 해야 진입/청산 로직을 세분화 할 수 있고 베팅사이즈를 섬세하게 조절할 수 있기 때문 와꾸 나오네! 요번주말까지 만들어보자

Naver Blog

가상화폐 트레이딩 시작

오늘부터 가상화폐 트레이딩을 시작한다 예스트레이더코인을 활용하여 자동으로 트레이딩을 수행하며 주로 거래하는 가상화폐는 비트코인과 이더리움 그리고 거래량이 많은 알트코인 2~3개 정도이다. 우선 가상화폐 트레이딩 경험이 전혀 없으니 비트코인과 이더리움에 각각 만원씩 투자하여 조금씩 매매경험을 쌓고 트레이딩 전략을 수정 보완해나갈 예정이다. 약 한달정도는 적은 금액으로 돌려보고 전략이 어느정도 안정되었다 싶으면 증액할 계획이다 백테스팅 결과는 아래와 같다. 분봉 데이터가 별로 없어서 백테스팅 결과값에 대한 신뢰도는 낮지만 적어도 깡통을 차게 만드는 전략은 아니라고 생각한다. 수수료 : 0.1%, 슬리피지 : 5틱 1. 이더리움 5분봉 2. 비트코인 5분봉 자동 매매 시스템, 파란선은 진입가 얼른 파이썬 능력치를 높여서 비트파이낸스로 가서 선물거래를 하고싶다 2021-02-14 진입 전략을 조금 수정하였다.

Naver Blog

마이크로 다우 선물 포지션 백테스팅

현재 마이크로 나스닥을 돌리고 있는데 다우까지 돌릴 예정 예전에 만들어놓은 시스템인데 수정보완중 진입/청산 전략은 나스닥과 거의 비슷하며 Risk Point를 수정함 백테스팅 상 1회 트레이딩 Risk를 높이면 손익이 올라가는 추세를 보임, 차트를 보면 굉장히 불규칙한 흐름을 보여서 리스크와 손익간의 상관관계가 낮아보이나 추세선을 그려보면 손익그래프와 비슷한 패턴을 보이고 있음 수수료 : 2틱 슬리피지 : 4틱

Naver Blog

다우선물 시스템 개선

전략의 특징 1. 래리윌리엄스 변동성 돌파전략을 활용하여 초기진입 2. 트레이더가 감내할 수 있는 Risk를 외부 변수로 둠 3. Risk 값은 (전일 고가 - 전일 저가) * k 값이 400 이상일 떄 높아짐, 즉 비 이성적으로 시장의 변동성이 확대되었을 때 그 상황에 맞춰 Risk값을 올려줘야함, 그렇지 않으면 휩소에 엄청나게 털림 4. 청산로직은 추적청산전략을 사용 5. 금요일에는 종가청산, 월~ 목에는 종가청산 없음

Naver Blog

내가 가고 싶고 향후 나아가야 할 방향을 명확하게 제시한 글

지렸다리 ,,, https://brunch.co.kr/@qraft/10 AI 자산운용 보고서 (1) 자산운용의 혁신은 외부로 잘 드러나지 않는다. | 운용의 혁신은 외부로 잘 드러나지 않는다. 자산운용의 수요자인 투자자(고객)는 자산운용사의 브랜드와 수익률에는 관심이 높지만, 실제 자산이 운용되는 방식에 대해서는 상대적으로 무관심하다. 그리고 자산운용은 상대평가/제로썸의 성격을 지니기 때문에 자산운용업자는 힘겹게 이룬 혁신을 혼자 오래 독점하려고 한다. 그래서, 자산운용의 혁신은 외부로 잘 드러나지 않 brunch.co.kr

Naver Blog

빗코 마진거래용 레버리지에 따라 청산로직 변경

마진은 5,10,20배 세개를 사용한다 5배 = 전 거래가 손실일 떄 10배 = 변동성이 좀 있을때 20배 = 변동성이 낮을때 레버리지가 20배일 경우 분할매도(비중 절반축소) 레버리지가 10배, 5배 일 경우 분할매도는 없음 매도전략도 만들어야지

Naver Blog

바이비트 시세 데이터를 판다스로 전환

import ccxt import pandas as pd bybit = ccxt.bybit() df = bybit.fetch_ohlcv('BTC/USDT',timeframe='1m', since=None, limit=200) columns = ['time', 'open', 'high', 'low', 'close', 'vol'] # 열 이름 주기 df = pd.DataFrame(df,columns=columns) # 판다스로 변환 df.index = df['time'] # 인덱스에 'time' del df['time'] # 'time' 열을 제거함 print(df)

Naver Blog

matplotlib.pyplot as plt 로 차트 그리기

import pyupbit import matplotlib.pyplot as plt ticker = 'KRW-XRP' df = pyupbit.get_ohlcv(ticker) plt.plot(df['close']) plt.plot(df['open']) plt.show()

Naver Blog

시가매수 종가매도 백테스팅 로직

import pandas as pd import numpy as np import time stock_list = ['대한뉴팜','파마리서치','위지윅스튜디오','민앤지','포인트엔지니어링','삼성전자'] df = pd.read_excel('',index_col=0) # print(df.iloc[2]) # print(df.iloc[0,0]) # 시가 # print(df.iloc[0,1]) # 고가 # print(df.iloc[0,2]) # 저가 # print(df.iloc[0,3]) # 종가 price_data = [] acc_ror = 1 for i in range(len(df.index)): if i <= 1: continue open_1td = df.iloc[i-1,0] low_2td = df.iloc[i-2,2] low_1td = df.iloc[i-1,2] close_2td = df.iloc[i-2,3] close_1td = df.iloc[i-1,3] # print('1일전

Naver Blog

데이터프레임 다중시트 엑셀 파일 만들기

import pandas as pd import numpy as np import time from pykrx import stock import datetime import pprint import pandas as pd from pandas import ExcelWriter now = datetime.datetime.now() today = now.strftime('%Y%m%d') start_date = '20191231' stock_list = ['060310', '054620', '265520', '211270', '035760', '051500'] big_data = {} for stock_code in stock_list: df = stock.get_market_ohlcv_by_date(start_date,today,stock_code) stock_name = stock.get_market_ticker_name(stock_code) # print(df.ilog[2]) #

Naver Blog

pykrx로 종목데이터 저장

from pykrx import stock import pandas as pd from pandas import ExcelWriter import time code_list = ['000660'] start_date = '20180101' end_date = '20210501' all_data = {} for code in code_list: df = stock.get_market_ohlcv_by_date(start_date,end_date,code) stock_name = stock.get_market_ticker_name(code) print(df) all_data[stock_name] = df with pd.ExcelWriter('%s.xlsx'%stock_name) as writer: for key,value in all_data.items(): value.to_excel(writer,sheet_name=key)

Naver Blog

pykrx로 전종목 코드 뽑고 종목명 저장

from pykrx import stock import pandas as pd stock_list = stock.get_market_ticker_list(market='ALL') code_name = [] for code in stock_list: stock_name = stock.get_market_ticker_name(code) data = [code,stock_name] code_name.append(data) print(stock_name,code) df = pd.DataFrame(code_name,columns=['종목코드','종목명']) df = df.sort_values(by='종목코드',ascending=True) df.set_index(df['종목코드']) df.to_excel('종목코드.xlsx') # df = pd.read_excel('종목코드.xlsx',index_col=0) # # # print(df.index) # data = [] # for code in

Naver Blog

5일 리밸런싱 수정중

from pykrx import stock import pandas as pd from pandas import ExcelWriter import time code_list = ['000660','005930','091990','068760'] for code in ['000660']: stock_name = stock.get_market_ticker_name(code) df = pd.read_excel('C:/Users/신용환/PycharmProjects/KRX/시총상위 주가데이터.xlsx',sheet_name=stock_name) del df['거래량'] df['cpd_5td_close'] = df['종가'].shift(5) df['cpd_1td_close'] = df['종가'].shift(1) df['cpd_5td_open'] = df['시가'].shift(5) df['exit'] = df['종가'].shift(-4)*(1-0.0028) df['profit'] = df['exi

Naver Blog

리밸런싱 데이터

import pandas as pd from pykrx import stock import time code_name_list = pd.read_excel('종목코드.xlsx',index_col=0) code_name = 'SK하이닉스' start_date = '20180101' end_date = '20210415' rebal_term = 5 code_num = code_name_list.loc[code_name][1] # df = stock.get_market_ohlcv_by_date(start_date,end_date,code_num) # df.to_excel('%s.xlsx' % code_name) df = pd.read_excel('%s.xlsx' % code_name) df['cpd_5td_close'] = df['종가'].shift(rebal_term) df['cpd_1td_close'] = df['종가'].shift(1) df['cpd_5td_open'] = df['시

Naver Blog

조건만족 + 리밸런싱 기간 조절 진입/청산

import pandas as pd from pykrx import stock import time code_name_list = pd.read_excel('종목코드.xlsx',index_col=0) code_name = '위지윅스튜디오' start_date = '20170728' end_date = '20210510' rebal_term = 5 code_num = code_name_list.loc[code_name][1] df = stock.get_market_ohlcv_by_date(start_date,end_date,code_num) df.to_excel('%s.xlsx' % code_name) df = pd.read_excel('%s.xlsx' % code_name) df['cpd_5td_close'] = df['종가'].shift(rebal_term) df['cpd_1td_close'] = df['종가'].shift(1) df['cpd_5td_open'] = df['시가']

Naver Blog

opendartreader 를 활용하여 재무데이터 가져오기

import pandas as pd import OpenDartReader import csv import openpyxl from pandas import ExcelWriter date = 2018 code_name = '삼성전자' api_key = '' dart = OpenDartReader(api_key) df = dart.finstate_all('005930', str(date)) df = pd.DataFrame(df) df.to_excel('.xlsx') df = pd.read_excel('.xlsx',index_col=0) df = df.drop(['rcept_no','reprt_code','corp_code','sj_div','account_id','account_detail','ord','thstrm_nm','frmtrm_nm','bfefrmtrm_nm','thstrm_add_amount'],axis='columns') df.columns = ['연도','재무제표','

Naver Blog

pykrx 에서 주가데이터를 받아서 mysql로 데이터저장

import pandas as pd from sqlalchemy import create_engine import pymysql from pykrx import stock pymysql.install_as_MySQLdb() import string start = '20100101' end = '20210514' all_code_list = stock.get_market_ticker_list(market='ALL') engine = create_engine("mysql+mysqldb://이름:비밀번호@호스트/데이터베이스", encoding='utf-8') for code in all_code_list: stock_name = stock.get_market_ticker_name(code) if '스팩' in stock_name: continue df = stock.get_market_ohlcv_by_date(start,end,code) try: conn = engine.connect()

Naver Blog

mysql 에서 주가데이터 import

import pymysql import xlrd import pandas as pd host = '' user = '' password = '' db = '' chartset = 'utf8' conn = pymysql.connect(host= host, user=user,password=password,db=db,charset = chartset) price_data = [] try: curs = conn.cursor() sql = 'SELECT * from 삼성전자' curs.execute(sql) result = curs.fetchall() finally: conn.close() columns = ['date','open','high','low','close','volume'] result = pd.DataFrame(result,columns=columns) result.set_index('date',inplace=True)

Naver Blog

미국 데이터 볼 수 있는곳

https://lazyquant.tistory.com/27 미국 주식 데이터 수집 및 활용 사이트 추천!(Investing.com, finviz, iex, stockrow) 안녕하세요, 오늘은 미국 주식 데이터를 수집하고 활용할 수 있는 사이트를 추천해드리려고 합니다. 코로나로 인한 폭락장에서 미국 주식을 약간 매수했었습니다. 한동안 오른 후 전체적으로 미미한 수익률을 내.. lazyquant.tistory.com

Naver Blog

Opendart github

https://github.com/FinanceData/OpenDartReader#readme FinanceData/OpenDartReader Open DART Reader. Contribute to FinanceData/OpenDartReader development by creating an account on GitHub. github.com

Naver Blog

재무데이터 10년 이상 주는곳 어딨누

import pandas as pd import OpenDartReader import numpy as np date = 2015 date2 = date - 3 date3 = date2 - 3 date4 = date3 - 3 year_list = [date,date2,date3,date4] api_key = '' dart = OpenDartReader(api_key) print(date) df = dart.finstate('005930', str(date)) df = pd.DataFrame(df) print(df) # df.to_excel('df.xlsx') # df = df.drop(['corp_code','rcept_no','reprt_code','bsns_year','sj_div','sj_nm','account_detail','thstrm_nm','frmtrm_nm','bfefrmtrm_nm','ord','thstrm_add_amount'],axis='columns') # df

Naver Blog

1,2분기 재무데이터 가져오기

from sqlalchemy import create_engine import pymysql import pandas as pd import OpenDartReader from pykrx import stock import string import time import sys import numpy as np api_key = '' dart = OpenDartReader(api_key) code = '214180' year = '2020' def first_second_quarter(code,year): df = dart.finstate(code,year,reprt_code = 11012) # 1분기 : 11013, 반기보고서 : 11012, 3분기 : 11014, 사업보고서 : 11011 df = pd.DataFrame(df) drop_columns = ['rcept_no','reprt_code','bsns_year','corp_code','stock_code','fs_div','

Naver Blog

2015년부터 연간 재무데이터 생성

from sqlalchemy import create_engine import pymysql import pandas as pd import OpenDartReader from pykrx import stock import string df = pd.read_excel('우선주.xlsx') upper_code = df['Symbol'] upper_all_code = [] for code in upper_code: upper_all_code.append(code[1:]) pymysql.install_as_MySQLdb() engine = create_engine("mysql+mysqldb://root:[email protected]/재무데이터", encoding='utf-8') date = 2020 date2 = date - 3 date3 = date2 - 3 all_code_name = stock.get_market_ticker_list(market='ALL') code_list = se

Naver Blog

분기 재무데이터 받기 모듈

만드느라 힘들었다 ;; 첨부파일 우선주.xlsx 파일 다운로드 from sqlalchemy import create_engine import pymysql import pandas as pd import OpenDartReader pymysql.install_as_MySQLdb() engine = create_engine("mysql+mysqldb://name입력:비밀번호입력@host입력/db명입력", encoding='utf-8') api_key = '' dart = OpenDartReader(api_key) def first_second_quarter(code,year): df = dart.finstate(code,year,reprt_code = 11012) # 1분기 : 11013, 반기보고서 : 11012, 3분기 : 11014, 사업보고서 : 11011 df = pd.DataFrame(df) if len(df.index) == 0: print(year,'1,2분기 재무데이터

Naver Blog

[공유] [Python] SQLite3 / 원격 DB(MariaDB)/데이터베이스 실습

Anything [공유] [Python] SQLite3 / 원격 DB(MariaDB)/데이터베이스 실습 Quantstaxx 2021. 5. 25. 1:48 이웃추가 본문 기타 기능 출처 [Python] SQLite3 / 원격 DB(MariaDB)/데이터베이스 실습 by 냠냠코드 Python SQLite3 / 원격 DBMariaDB/데이터베이스 실습 1. SQLite3 : python에 기본으로 설치되어 있다. 개인용 데이터베이스 - 굉장히 가볍다는 특징이 있다... blog.naver.com 스크랩된 글은 재스크랩이 불가능합니다.

Naver Blog

빗코 매수전략

INPUT : Buy_trail(10),p1(5),p2(20),p3(60); var : top(0),bot(0),fast(0),mid(0),slow(0),mult(0),recnt(0),width_sum(0),i(0),bet(0); fast = ma(c,p1); mid = ma(c,p2); slow = ma(c,p3); width_sum = 0; for i = 1 to 3 begin width_sum = width_sum + (h[i] - l[i])/medianprice[i]; # 밴드폭 end; ##### 레버리지 조절 ##### if positionprofit(1) < 0 then bet = 5; # 최근 거래에서 손실 발생시 레버리지 5배 else if width_sum * 100 <= 0.5 then bet = 30; # 변동성이 0.5 이하면 레버레지 30배 else if width_sum * 100 <= 1 then bet = 20; # 변동성이 1 이하면 레버리지 20배

Naver Blog

빗코 매도전략

input : p1(5),p2(20),p3(60),trail(100); var : fast(0),mid(0),slow(0),p(0),q(0),i(0),Short_entry(0),mult(0),width_sum(0),bet(0); fast = ma(c,p1); mid = ma(c,p2); slow = ma(c,p3); var : death(falsE); death = fast < mid and mid < slow; ##### 레버리지 조절 ##### /*if positionprofit(1) < 0 then bet = 5; # 최근 거래에서 손실 발생시 레버리지 5배 else */if width_sum * 100 <= 0.5 then bet = 30; # 변동성이 0.5 이하면 레버레지 30배 else if width_sum * 100 <= 1 then bet = 20; # 변동성이 1 이하면 레버리지 20배 else bet = 10; # 그 외에 레버리지는 최소 10배 ##### co

Naver Blog

알고리즘 트레이딩 관련 사이트

https://www.reddit.com/r/algotrading/comments/nterow/math_behind_leverage_and_position_sizing/ Math behind leverage and position sizing? When I look at my back test and i change the leverage, sometimes the strategy works completely, other times increasing the leverage completely... www.reddit.com https://www.kaggle.com/chumajin/optiver-realized-eda-for-starter-english-version Optiver Realized: EDA for starter(English version) Explore and run machine learning code with Kaggle Notebooks | Using da

Naver Blog

비트코인 매수/매도전략 완성

전략에 대한 설명은 나중에 ,,, 녹색선이 매수전략 남색선이 매도전략 빨간선이 두 전략 합친거

Naver Blog

파이썬으로 RSI값 구하기

from pykrx import stock import datetime import numpy as np def RSI(input, period, code): # input : RSI 변수, period = 봉갯수, code = '종목코드' period = max(200,period) end = datetime.datetime.now() start = end - datetime.timedelta(days=period) price = stock.get_market_ohlcv_by_date(fromdate=start, todate=end, ticker=code) del price['거래량'] price['Up_amt'] = np.where(price['종가'] - price['종가'].shift(1) > 0, price['종가'] - price['종가'].shift(1), 0) price['Down_amt'] = np.where(price['종가'] - price['종가'].shift(

Naver Blog

백테스팅 툴

from pykrx import stock import datetime import numpy as np import pandas as pd from dateutil.parser import parse import time import matplotlib.pyplot as plt start = '20100101' end = '20210617' df = stock.get_market_ohlcv_by_date(fromdate = start, todate = end, ticker='005930') del df['거래량'] short_ema = df['종가'].ewm(span = 12).mean() long_ema = df['종가'].ewm(span = 26).mean() macd = round(short_ema - long_ema,2) signal = macd.ewm(span =9).mean() df['macd'] = macd df['macd_osc'] = round(macd - sign

Naver Blog

MACD 데이터 뽑기

from pykrx import stock import datetime import numpy as np import pandas as pd from dateutil.parser import parse def MACD(short,long,signal,start_date,code): start_date = str(start_date) start = parse(start_date) end = datetime.datetime.now() gap = (end - start) if gap.days < short: start = end - datetime.timedelta(days = short + 1) else: start = start_date price_data = stock.get_market_ohlcv_by_date(fromdate=start, todate = end, ticker = code) del price_data['거래량'] short_ema = price_data['종가'].

Naver Blog

DMI 만들기

from pykrx import stock from dateutil.parser import parse import datetime import numpy as np def DI_PLUS(code,period = 14,start_date = datetime.datetime.now() - datetime.timedelta(days=200),end_date = datetime.datetime.now()): start = str(start_date) start = parse(start) end = str(end_date) end = parse(end) price = stock.get_market_ohlcv_by_date(fromdate = start,todate=end,ticker = code) price['truehigh'] = np.where(price.종가.shift(1) > price.고가,price.종가.shift(1),price.고가) price['truelow'] = np.w

Naver Blog

백테스팅 툴

from pykrx import stock import datetime import numpy as np import time df= stock.get_market_ohlcv_by_date(fromdate='20120227',todate=datetime.datetime.now(),ticker='005930') del df['거래량'] while True: try: entry_cond = df.종가.shift(2) < df.종가.shift(1) df['진입가'] = np.where(entry_cond, df['시가'], '') entry_date = df.index[entry_cond][0] rebal_date = df[entry_date:].index[21] entry_price = df.loc[df['진입가'] != '', '진입가'][0] for index,row in df[entry_date:].iterrows(): close = row['종가'] # close = close

Naver Blog

코인 데이터 받아서 변동성 돌파전략 백테스팅 하기

import pandas as pd import pyupbit import time import numpy as np import datetime last_date = datetime.datetime.now() df = [] while True: try: minute_price = pyupbit.get_ohlcv(ticker='KRW-BTC', interval='minute5', count=200,to=last_date) last_date = minute_price.index[0] time.sleep(0.07) df.append(minute_price) except: df = pd.concat(df) df = df.sort_index() break df = df[['open','high','low','close']] minute_data = pd.DataFrame(df) last_date = datetime.datetime.now() df = [] while True: try: da

Naver Blog

업비트 상장 코인 일봉 및 분봉데이터 수집 및 MYSQL에 데이터 적재

import pandas as pd import pyupbit import time import numpy as np import datetime from sqlalchemy import create_engine import pymysql pymysql.install_as_MySQLdb() daily_engine = create_engine("mysql+mysqldb://root:[email protected]/***일봉 DB명 입력***", encoding='utf-8',pool_size = 100000,max_overflow = 0) minute_engine = create_engine("mysql+mysqldb://root:[email protected]/***분봉 DB명 입력***", encoding='utf-8',pool_size = 100000,max_overflow = 0) ticker_list = pyupbit.get_tickers(fiat='KRW') def create_min

Naver Blog

변동성 돌파전략 단일종목 백테스터

import pandas as pd from pykrx import stock import datetime import numpy as np import time import matplotlib.pyplot as plt import math import tick def back_testing(code,date): df = stock.get_market_ohlcv_by_date(fromdate=date, todate=datetime.datetime.now(), ticker=code) df = df.reset_index() df['날짜'] = df['날짜'].dt.strftime('%Y%m%d') df = df.set_index('날짜') dayopen_1td = df['시가'].shift(1) dayhigh_1td = df['고가'].shift(1) daylow_1td = df['저가'].shift(1) dayopen = df['시가'] ##########################

Naver Blog

호가단위 조정 함수

from 백테스팅.Backtester import * import math backtest = Backtester() class Adj_hoga: def __init__(self): self.kp = backtest.universe('코스피') self.kq = backtest.universe('코스닥') def unit(self, stock_code, price): if stock_code in self.kp: # 49가 코스피 if price < 1000: hogaUnit = 1 elif price < 5000: hogaUnit = 5 elif price < 10000: hogaUnit = 10 elif price < 50000: hogaUnit = 50 elif price < 100000: hogaUnit = 100 elif price < 500000: hogaUnit = 500 else: hogaUnit = 1000 else: if price < 1000: hogaUnit =

Naver Blog

파이썬 공부에 도움이 되는 사이트

https://wikidocs.net/134425 00-04 이 책을 읽기 전에 이 책을 읽기 전에 미리 알아두어야 할 사항에 대해서 살펴보자. ## 파이썬 버전 이 책은 파이썬 3.9 버전을 기준으로 작성되었다. 하지만 이 책에서 설명하는 라이브러 ... wikidocs.net

Naver Blog

나스닥 Trix 전략 (k값과 청산시점을 유동적으로 조절)

https://github.com/mc-yonga/Global_Future/commit/1783aa8d458eb35e7dcdbbce26f75f1fbe6c4b6e

Naver Blog

나스닥 단타 시스템 개선

1. 전략명 : 30포인트 * n 2. 전략 설명 - 조건 : 진입 이후 최대수익이 매입가대비 30포인트 * n - 매도조건 : 매입가 + 30 * n - 최근 10개봉에서 골든크로스가 발생하거나 최근 10 개봉 변동성이 너무 낮으면 진입가에 가중치를 부여 3. 개선사항 - 익절조건을 충족하지 않으면 Lowest(L,15) ==> Lowest(L,30) 으로 수정 - 트레일링 스탑 제거 ==> 수정전 코드에서는 트레일링 스탑 기능이 활용될 수 없어서 삭제 - setstoploss (50,pointstop) 추가 - 썸머타임여부에 따라 트레이딩 시간을 조절 4. 백테스팅 결과 - 개선전 - 개선후

Naver Blog

나스닥 변동성 돌파전략 수정

1. 코드 추가 - 썸머타임 시간에 맞춰 금요일 장마감 직전에 포지션 청산 - 역배열 청산 추가 - 역배열 or 손절이면 재진입가는 고가 + 10 ==> 가격이 고가를 빠르게 돌파해야 진입가능, 고가 + 10을 돌파하지 못하면 진입가는 계속 올라갈 수 있음 - 직전 포지션 손익이 < 0 이면 다음 포지션의 수익은 트레일링 스탑이 아니라 목표가 지정주문으로 전환 - 목표가 청산 이후 신규 포지션은 청산가격 + 10 2. 개선점 - mdd가 낮아짐 - 코드를 개선하기 전보다 안정적으로 수익을 쌓아감 - 승률이 3%낮아졌으나 손익비가 0.3 증가 3. 백테스팅 결과 - 개선전 - 개선후

Naver Blog

2021-10-31 check_price 함수 오류

[오류사항] - 급등하는 코인을 매매할 때 진입하자마자 바로 청산하는 오류가 있음 - 진입이름 [문제 원인] - check_price 함수(진입이후 고가를 계산하는 코드)와 매도조건 코드에 문제가 있어서 진입이후 청산을 계속 반복하였음 - 진입명을 결정하는 조건문이 반대로 되어 있었음 [해결 과정] - 진입이후 고가를 웹소켓으로 받은 당일 고가데이터를 사용

Naver Blog

[YesTrader] setstoptrailing 대신 쓸수 있는 코드

/* if MarketPosition == -1 Then { if entry_timing_band_width > 12 Then { if Lowest(l,BarsSinceEntry) <= EntryPrice *(1 - 2 / 100) Then ExitShort("TS -a",AtStoP,LOWEST(L,BarsSinceEntry) + ABS(LowesT(L,BarsSinceEntry) - EntryPricE) * ts_down); Else ExitShorT("Losscut - a",AtStop,EntryPrice * (1 + 2 / 100)); } else if entry_timing_band_width > 8 Then { if Lowest(l,BarsSinceEntry) <= EntryPrice *(1 - ts_target1 / 100) Then ExitShort("TS - 1",AtStoP,LOWEST(L,BarsSinceEntry) + ABS(LowesT(L,BarsSinceEn

Naver Blog

BTC, ETH 변동성 돌파전략 완성!

[이더리움 백테스팅 데이터] [비트코인 백테스팅 데이터] - 2021-11-24 일 부터 전략 운용 시작 - Noise 비율을 사용하여 K값을 계산 - 8시 40분에 청산 - 목표가 : 매수가 * 1.1 - 손절가 : 매수가 * 0.95

Naver Blog

나스닥 스윙전략 개발 (단타전략 version2)

[기존 전략] [전략 수정 후] - 수익률 : 136% >> 173% - 매매횟수 : 1541회 >> 1431회 - 승률 : 32.90% >> 67.09% - 손익비 : 2.72 >> 0.76 - 평균손익 : 4.29 포인트 >> 5.72포인트 [Key Point] - 기존전략은 목표가/손절가를 계산할 때 진입가 대비 + / - n 포인트로 계산하였으나 - 신규전략은 목표가 /손절가를 진입가 대비 + / - n%로 계산

Naver Blog

해외 금융데이터

https://pythonrepo.com/repo/JerBouma-FinanceDatabase This is a database of 180.000+ symbols containing Equities, ETFs, Funds, Indices, Futures, Options, Currencies, Cryptocurrencies and Money Markets. | PythonRepo JerBouma/FinanceDatabase, Finance Database As a private investor, the sheer amount of information that can be found on the internet is rather daunting. pythonrepo.com https://tariat.tistory.com/1151 미국기업 재무제표 데이터 수집하는 방법은?! 데이터를 수집하는 방법은 여러가지가 있다. 가장 쉽게는 투자 사이트에서 제공하는 데이터를 일일이 복사하는 방법이

Naver Blog

나스닥 매수포지션 스윙 트레이딩 전략,version 2.5

version 1과 version 2을 합친 2.5버전 완성 매매횟수를 좀 줄임

Naver Blog

mplfinance 가격데이터 시각화

https://pypi.org/project/mplfinance/#description mplfinance Utilities for the visualization, and visual analysis, of financial data pypi.org import mplfinance as mpf from Binance.Binance import * binance = Binance_Class() ticker = 'BTC/USDT' frdate = '20220201' # daily = binance.get_daily_ohlcv(ticker,frdate) # mpf.plot(daily,type='candle',mav=(3,6,9),volume=True,show_nontrading=True) intraday = binance.get_minute_ohlcv(ticker,frdate=frdate,interval= 5) #intraday = intraday.drop('volume',axis=1)

Naver Blog

비트겟 카피 트레이더 설명서

https://coinpick.com/bitget_copy_trading/33768 12.비트겟(Bitget) 비트코인 카피트레이딩 하는법 - Bitget 카피트레이딩 - 코인픽 12. 비트겟(Bitget) 비트코인 카피트레이딩 하는법 비트겟(Bitget) 선물 거래소가 다른 암호화폐 거래소와 가장 차별화 되는 기능은 단연코 카피 트레이딩 입니다. 카피 트레이딩(Copy-Trading)은 거래소 API 기능을 통해서 선택하신 트레이더의 트레이딩 전략을 추종하는 투자 방법입니다. 이는 미러 트레이딩(Mirror-Trading) 또는 소셜 트레이딩(Social-Trading)이라고 불리며 버튼 몇 번으로 손쉽게 투자할 수 있다는... coinpick.com https://bitgetlimited.github.io/apidoc/en/swap/#public-candlestick-chart bitget API Docs Changelog March 24, 2021【Add v3 trader pr

Naver Blog

바이비트 역추세 전략 1편 - 백테스팅 및 트레이딩 시스템 개발 완료

드디어 ,,, 바이비트 api를 활용하여 역매매 레버리지 전략 개발을 완료하였다. 매매할 종목은 BTC/USDT, ETH/USDT, XRP/USDT 세 종목이며, 레버리지는 5배를 사용한다. 포지션 진입/청산 주문방식은 limit이며 손절만 market을 사용한다. 바이비트는 지정가 주문시 0.00025 수수료를 지급하기 때문에 청산가/진입가 - 1 + 0.00025 * 2 * 레버리지 5배가 최종 수익률이된다. 레버리지만 바꿔서 테스트를 해본 결과다, 약 3~5배정도가 적당한듯

Naver Blog

바이비트 역추세 전략 2편 - 수익률 계산 코드 수정

이 전략의 주문 방식은 신규매수, 목표가 청산은 지정가주문방식을 사용하며 손절만 시장가 주문방식을 사용한다. 그래서 수익률에 목표가 청산시 수익률에 0.00025 * 2를 더해줘야 하고 손절시 -0.00025 + 0.00075인 0.0005를 차감해줘야 한다. 기존에 돌리던 백테스팅 코드는 모든 거래에 수익률에 0.00025를 더해주고 있었는데, 목표가 청산으로 마감한 거래는 (수익률 + 0.00025 * 2) * 레버리지로 최종 수익률을 계산하고, 손절로 마감한 거래는 (수익률 -0.0005)* 레버리지로 계산하였다. 그리고 이번에는 레버리지와 손절폭을 최적화하여 각 종목별로 성과가 높은 최적값을 분석하였다. 1. BTC/USDT - 레버리지 >> 5 - 손절 >> 2 종목 : BTC/USDT, 최종수익률 : 31126484.66%, mdd : -14.16%, 매매횟수 : 764, 승률 : 86.39%, 손익비 : 3.35, lvg : 5, loss : 2, 시작일 : 2017-0

Naver Blog

바이비트 역추세 전략 3편 - 백테스팅 코드 수정

최근에 개발한 역매매 전략 백테스팅 코드에서 엄청난! 결함을 발견하였다. [전략에 사용한 파라미터값] - 레버리지 : 4배 - 손절폭 : 1.5% - 볼밴 : 50, 2 - adx 기간 : 14 - 타임프레임 : 5분봉 [백테스팅 결과] - 수익률 : 2020788.22% - mdd : -10.53% - 매매 시작일 : 2017-08-21 - 매매횟수 : 767 - 손익비 : 3.16 백테스팅 결과보소 ,,,,결과를 보고 금방 부자가 될 수 있겠다! 라는 생각을 잠깐 했지만 ,,,, 백테스팅 결과가 너무 비현실적으로 잘 나와서 분명히 어느 부분에 결함이 있을것이라고 생각했고 오랜 기간 추적해본 결과! 동일한 캔들에서 진입과 청산이 이루어질 때 수익률이 과대평가 된다는 결함을 발견하였다. 우선 문제가 되는 코드는 다음과 같다 try: target_cond = high.loc[entry_time:] >= mid.shift(1).loc[entry_time:] target_time = ta

Naver Blog

바이비트 역추세 전략 4편 - 변수 최적화

https://blog.naver.com/okshin23432/222648803160 바이비트 역추세 전략 3편 - 백테스팅 코드 수정 최근에 개발한 역매매 전략 백테스팅 코드에서 엄청난! 결함을 발견하였다. [전략에 사용한 파라미터값] - ... blog.naver.com 코드 수정 이후 레버리지와 손절폭, 분봉과 adx period 4가지 변수를 최적화 하였다. [BTC/USDT] 요 차트는 백테스팅 기간이 21년부터~ [ETH/USDT] 레버리지 2배, 손절폭 8.5%, 5분봉, adx 기간 16 - 이더리움은 레버리지2배, 손절폭 3%, ADX_Period 18로 사용 [XRP/USDT] 우선 롱 전략은 이정도로 마무리 하고,각 티커별로 수익률을 극대화 하는 파라미터값으로 세팅하여 새로운 시스템을 운용한다. 매도전략은 현재 최적화 작업 진행중이고 마무리 되면 각 종목별로 최적 변수값을 찾아서 셋팅할 예정이다.

Naver Blog

바이비트 역매매 전략 5편 - 매도 포지션

매도포지션 최적화 작업이 완료되었다. BTC/USDT

Naver Blog

이더리움 역추세전략 구상

매수조건 1) band %b >= 80 2) 저가 > 중심선 3) trix(14) > trix(20) 지금 돌리고 있는 역추세 매수전략에 상기조건을 추가하여 볼밴 중심선에서 진입하는 전략을 백테스팅 해보자

Naver Blog

나스닥 매도전략 진입 타이밍 조정

현재 매도진입가를 60이평 * (1 - 변수값 / 100) 으로 해놓았음, 변수값을 하드코딩으로 넣어놧는데 이를 시장상황에 따라 유동적으로 값이 계속 바뀌도록 수정 Ex) 일봉기준 5, 20, 60일이 역배열이면 값을 줄이기

Naver Blog

시장 하락기에 베팅사이즈를 줄이고 리스크를 늘리기

추세추종 매매전략은 시장에 노이즈가 많이 발생할 때 손실이 확대된다. 최근 러시아 vs 우크라이나 사태로 인해 글로벌 금융시장이 전반적으로 침체되어 있으며 불규칙적인 움직임이 발생하여 추세추종 전략을 운용하는데 어려움이 많다. 그리고 내 개인적인 경험을 미루어 보았을 때 하락추세에서 발생하는 노이즈가 상승추세에서 발생하는 노이즈보다 훨씬 Activity하고 스트레스를 많이 준다. 최근과 같은 시장상황에서는 베팅사이즈를 줄이고 감내해야 하는 변동성을 늘리는게 좋다. 예를들면 베팅사이즈를 1/2로 줄이고, 감내해야 하는 변동폭(리스크)를 2배로 늘리는 것이다. 그런데 이 방식은 너무 뻔하다 ;; 누구라도 생각할 수 있는 방법인데 좀더 신박한 방법이 없을까

Naver Blog

바이비트 역매매 전략 6 - 중심선 매수, 볼밴 상단 매도

https://blog.naver.com/okshin23432/222651360408 이더리움 역추세전략 구상 매수조건 1) band %b >= 80 2) 저가 > 중심선 3) trix(14) > trix(20) 지금 돌리고 있는 역... blog.naver.com 현재 운용하고 있는 역추세 매수전략은 볼밴 하단에서 매수하여 볼밴 중심선에서 매도하는데, 진입/청산 전략을 수정하여 볼밴 중심선에서 매수, 볼밴 상단에서 매도를 하면 어떨지 테스트를 해보았다. XRP/USDT 이더는 너무 안나와서 패스 ;; 지금 할게 너무 많아서 일단 대충 올려놓고 나중에 제대로 분석해봐야겠다. 일단 새로운 전략을 만들어볼 필요성은 있는걸로!

Naver Blog

나스닥 매수포지션 스윙 트레이딩 전략,version 3.0

프랙탈 원리를 이용하여 나스닥 매수포지션 스윙트레이딩 전략을 업그레이드 하였다. 이번 업데이트의 핵심은 프랙탈 원리를 응용하여 분봉 데이터에 일봉데이터를 결합함으로써 최근 시장의 추세를 명확하게 정의하고, 시장상황에 따라 진입시그널과 포지션 진입시 감내해야 하는 변동성을 유동적으로 조절한다는 점이다. 코드를 업데이트 하기 전에는 시장의 추세를 파악할 때 분봉 데이터만 활용하였는데 이러한 데이터 분석방식의 오류는 다음과 같다. 1. 일봉상으로는 시장이 하락세를 보이고 있으나 분봉으로 시장의 추세를 파악할 경우 상승세를 보이는 경우가 있다. 2. 즉, 각기 다른 타임프레임으로 시장의 추세를 파악하였을 때 상반된 결과가 나온다면 시장 리스크가 확대되었다고 판단을 내릴 수 있다. 그리고 이러한 판단하에 보수적으로 신규 포지션을 진입하고, 평소보다 무겁게 포지션을 보유해야 한다. 오랜기간 상기 오류에 대해 고민해왔고 연구한 결과 적절한 솔루션을 도출하였다. 이 솔루션은 비단 나스닥 뿐만 아니

Naver Blog

코인 웹소켓 오류날 때 참고

https://igotit.tistory.com/entry/bybit-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9B%B9%EC%86%8C%EC%BC%93-%EC%A2%85%EB%A3%8C-%EC%98%A4%EB%A5%98-%EB%B0%8F-%ED%95%B4%EA%B2%B0%EC%B1%85 bybit. 파이썬 웹소켓 종료 오류 및 해결책. websockets.exceptions.ConnectionClosedError: code = 1006 오류 요점. 파이썬에서 바이빗 과 통신하는 WebSocket 프로그램 실행 중에 1주일에 1회 혹은 재수없는 경우엔 수시간 만에 파이썬 프로그램이 종료되는 경우 있다. 아래 화면은 종료된 시점에 보이는 모습. 오류.. igotit.tistory.com

Naver Blog

나스닥 30포인트 따먹기 전략

에전에 운용하던 전략을 살짝 수정하여 안정적으로 수익을 쌓아가도록 하였다. 이 전략에서 새로 개발하여 사용한 코드는 N개봉 변동성 * 전일종가 이다. n_volitary = N개봉변동성(10); n_vol_point = (ma(n_volitary,10) / 100) * DayClose(1); 최근 10개 변동성을 계산하고 이를 10일 이동평균화 시켜 전일 고가를 곱하였는데, 이 값이 일정수준을 넘어서면 진입가격 + @를 시켜주었다. 최근 시장 변동성이 내가 감내할 수 있는 수준을 크게 넘어서면 손절할 가능성이 매우 높아지므로 차라리 진입을 안하는것 보다는 진입장벽을 높였다.

Naver Blog

마켓메이킹 전략 기초

https://blog.naver.com/chunjein/220069839337 33. 단순 마켓메이킹 (Market Making) 전략 알고리즘 트레이딩 (Algorithmic Trading) - 전략 (33) 단순 마켓메이킹 (Market Making) 전략 상대호... blog.naver.com https://blog.naver.com/chunjein/220155709684 34. 마켓메이킹 (Market Making) 전략 - 단순한 재고관리 전략 알고리즘 트레이딩 (Algorithmic Trading) - 전략 (34) 마켓메이킹 (Market Making) 전략 - 단순한 재... blog.naver.com https://blog.naver.com/chunjein/220161040338 35. Bid-Ask Bouncing (BAB) 척도 알고리즘 트레이딩 (Algorithmic Trading) - 전략 (35) Bid-Ask Bouncing (BAB) 척도 마켓메이킹 .

Naver Blog

gspread docs

https://docs.gspread.org/en/latest/user-guide.html#creating-a-spreadsheet Examples of gspread Usage — gspread 5.3.2 documentation Opening a Spreadsheet You can open a spreadsheet by its title as it appears in Google Docs: sh = gc . open ( 'My poor gym results' ) If you want to be specific, use a key (which can be extracted from the spreadsheet’s url): sht1 = gc . open_by_key ( '0BmgG6nO_6dprdS1MN3d3MkdPa142WFRrdnRRUWl1UFE' ) O... docs.gspread.org

Naver Blog

나스닥 매도전략

- 검은선을 하향돌파 한 이후 lowest(l,n) 돌파진입 - 청산은 highest(h,n)을 사용하거나 trix, dmi를 사용하면 괜찮을듯

Naver Blog

Alpha Trend

In Magic Trend we had some problems, Alpha Trend tries to solve those problems such as: 1-To minimize stop losses and overcome sideways market conditions. 2-To have more accurate BUY/SELL signals during trending market conditions. 3- To have significant support and resistance levels. 4- To bring together indicators from different categories that are compatible with each other and make a meaningful combination regarding momentum, trend, volatility , volume and trailing stop loss. >> 매직트렌드에서 발생한 몇

Naver Blog

나스닥 변동성 돌파전략 개선

해외선물 매매 초창기에 운용했다가 폐기시킨 변동성 돌파전략을 수정보완하였다 실수로 코드를 잘못 적었는데 백테스팅 결과가 굉장히 우수해서 기록해둔다. 전략 운용시간을 24시간이 아닌 자정 12시부터 장 마감까지로 설정하면 성과가 굉장이 우수하다 [매매시간이 자정부터 장 마감까지인 전략] [매매시간이 24시간인 전략] 최종 성과는 매매시간이 24시간 전략이 더 우수하나 수익률 곡선과 mdd를 봤을 때 자정부터 장 마감까지 거래하는 전략이 더 좋아보인다 개장이후부터 자정까지 매매하는 전략을 따로 개발해봐야 겠다

Naver Blog

파이썬으로 PDF 파일 읽기

sample = '리포트.pdf' from io import StringIO from pdfminer.converter import TextConverter from pdfminer.layout import LAParams from pdfminer.pdfdocument import PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.pdfpage import PDFPage from pdfminer.pdfparser import PDFParser output_string = StringIO() with open('리포트.pdf', 'rb') as in_file: parser = PDFParser(in_file) doc = PDFDocument(parser) rsrcmgr = PDFResourceManager() device = TextConverter(rsrcmgr,

Naver Blog

프로세스 죽었을 때 재실행

https://i.k-june.com/wp/6508 파이썬 프로세스가 죽었을 때 자동으로 재실행시키는 법 – 1. 크론(Cron)을 이용한 방법 24시간 멈추지 않고 계속 가동되어야 하는 파이썬 프로그램이 있는데 종종 죽어버릴 때가 있다. 그래서 해결책을 연구하다가 그 중의 한가지 방법인 크론을 이용하는 방법을 기록해 두고자 한다. 먼저 무한루프로 실행되는 run24h.py라는 간단한 프로그램을 작성한다. import time while True: print ('Hello World') time.sleep(5) 5초마다 계속 헬로월드를 출력해주는 프로그램이다. 다음은 이 파이썬 프로그램이 중단되었을 경우, 프로세스가 살아있는지 검사를 해서 다시 실행하는 코드이다. 편의상 이... i.k-june.com

Naver Blog

윈도우 10 cmd 스케쥴러 추가,삭제

스케쥴러 추가 >> schtasks /create /tn "binance spot daily update" /tr "C:\Users\용가\Desktop\프로젝트\바이낸스\Binance\ignore\test.py" /sc daily /st 00:00 /ed 2099/12/31 스케쥴러 삭제 >> schTasks /delete /f /tn "test" https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=superyeoju&logNo=221274899573 작업스케줄러(Schtasks) cmd 입력방법의 이해 작업스케줄러(schtasks)를 cmd로 입력하는 방법 출처 : Microsoft Docs Windows 2008 server , Windows... m.blog.naver.com https://ychcom.tistory.com/entry/schtasks-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%9F

Naver Blog

나스닥 30포인트 따먹기 전략 ver2

https://blog.naver.com/okshin23432/222677853779 나스닥 30포인트 따먹기 전략 에전에 운용하던 전략을 살짝 수정하여 안정적으로 수익을 쌓아가도록 하였다. 이 전략에서 새로 개발하여 ... blog.naver.com 기존에 운용하던 전략을 수정보완하였다. 가장 큰 변화는 진입가 산출방식이며 새로 추가된 로직은 고가 index와 저가 index를 산출해서 비교하는 것 이다 진입가는 최근 20개봉의 고가 + 특정 조건에 부합할 경우 진입가에 multiple point 를 가산하여 진입가격을 높이는 방법을 사용했으나 이번에 새로 개발한 진입가 산출방식은 고가, 저가, 종가의 평균값에 multiple point를 가산하였다 그리고 최근 10개봉 중 고가 index와 저가 index를 구하였고 1) 저가 index - 고가 index 값이 3 이상이고, 변동성(point로 환산)이 고가 index와 저가 index를 차감한 값에 30을 곱한 값보다 낮으면

Naver Blog

도커 컨테이너, 이미지 삭제 방법

https://www.lainyzine.com/ko/article/docker-rm-removing-docker-containers/#%EB%A1%9C%EC%BB%AC-%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%98-%EB%AA%A8%EB%93%A0-docker-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EB%A5%BC-%EC%82%AD%EC%A0%9C%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95 docker rm 사용법: Docker 컨테이너를 삭제하는 방법 docker rm 명령어를 사용하면 특정한 컨테이너를 삭제할 수 있습니다. 이 글에서는 Docker 컨테이너를 삭제하는 다양한 방법에 대해서 소개합니다. www.lainyzine.com https://www.lainyzine.com/ko/article/docker-rmi-removing-docker-images/ docker rmi 사용법: Docker 이미지를 삭

Naver Blog

vectorization 참고

https://www.oreilly.com/library/view/python-for-algorithmic/9781492053347/ch04.html

Naver Blog

[퀀트투자전략] 잔여이익모델을 활용한 적정주가 계산 (22년 4분기 재무데이터 기준)

안녕하세요~! 퀀스택스 입니다. 오늘은 가치투자자 관점에서 잔여이익모델(RIM)을 활용하여 전 종목의 적정주가를 계산해보고 관심있는 종목의 상승여력이 얼마나 되는지 확인하는 방법에 대해 알려드리겠습니다. 우선 잔여이익모델에 대한 설명은 아래의 링크를 참고하시기 바랍니다. https://m.blog.naver.com/think__ings/222115790213 주식 RIM 잔여이익모델 공식으로 기업 적정 주가 계산하기 안녕하세요! 오늘은 기업의 적정가치를 구하는 여러가지 방법중에서 주식 Rim 공식 으로 적정주가 구하는 ... m.blog.naver.com 잔여이익모델을 활용한 기업의 적정가치를 계산하는 공식은 아래와 같습니다. 아래의 공식대로 퀀트박스에서 데이터를 조합하면 아래와 같은 형태가 됩니다. 적정가치 = 자본총계 + [{자기자본 * (ROE - 할인율)} / 할인율] 기대수익률 = 적정가치 / 시가총액 - 1 그리고 적정가치 계산식에 있는 '할인율'은 한국신용평가의 등급별

Naver Blog

[퀀트투자전략] 시장추세에 따라 매수타이밍을 유동적으로 조절하기 (feat. 변동성 돌파전략)

안녕하세요 ~! 퀀스택스 입니다. 오늘은 시장의 추세에 따라 변동성 돌파전략의 매수가격을 유동적으로 조절하여 트레이딩을 수행하는 새로운 버전의 변동성 돌파전략을 소개해드리도록 하겠습니다. 우선 변동성 돌파전략의 진입가격을 계산하는 공식부터 살펴보겠습니다. 진입가격 = RANGE * K + 당일시가 RANGE 는 변동폭을 의미하며, 저는 보통 전일고가 - 전일저가를 사용합니다. K값은 보통 0 ~ 1 사이의 값을 사용하며, K값이 클수록 진입가격이 높아집니다. 얼마전 시스트레이더님께서 K값은 0.5으로 고정한 상태에서 Range 값을 전일시가 - 전일저가를 사용했을 때 코스닥 ETF를 매매하는 변동성 돌파전략의 성과가 가장 우수하다는 댓글을 남겨주셨습니다. 실제로 투자전략을 구현해보니 Range를 전일시가 - 전일저가로 사용했을 때의 성과가 가장 높았고, 전일고가 - 전일시가가 가장 낮은 성과를 기록하였습니다. 자세한 내용은 아래의 투자전략 검증결과를 참고하시기 바랍니다. 누적수익률

Naver Blog

[퀀트투자전략] 슈퍼 ETF 전략개선 (systrader79님께 무한 감사)

안녕하세요~! 퀀스택스 입니다. 오늘은 예전에 소개해드린 슈퍼 ETF 투자전략을 두 단계에 걸쳐 수익성을 개선해보았습니다. 전에 작성한 글을 못보신 분들은 아래의 링크를 참고하시기 바랍니다. https://blog.naver.com/quanstaxx/223073356778 [퀀트투자전략] 슈퍼 ETF 전략 안녕하세요~! 퀀스택스 입니다. 오늘은 '슈퍼 ETF' 전략을 소개해 드리도록 하겠습니다 슈퍼 ... blog.naver.com [모의투자 진행상황] 슈퍼 ETF 전략을 처음 소개해드리고 나서 약 1주일간 키움증권 API을 활용한 트레이딩 시스템을 개발하였으며, 개발이 완료된 이후부터 지금까지 약 한달동안 모의투자를 수행하면서 트레이딩 시스템을 수정보완하고 있습니다. 안정화는 거의 완료되었으며 2주정도 모의투자를 더 진행해보고 실제투자로 전환할 계획입니다. 모의투자 주문내역과 체결내역을 살펴보면 '지정가'로 주문을 넣기 때문에 슬리피지는 없으며 체결은 전부 되는편입니다. 그리고 백

Naver Blog

[퀀트 투자 전략] 빨래줄 전략 (feat. 백석꾼님)

안녕하세요 ~! 퀀스택스 입니다. 오늘 소개해드릴 전략은 친애하는 블로그 이웃인 백석꾼님께서 개발한 '빨래줄 전략' 입니다. 백테스팅 성과를 보면 아시겠지만 누적수익률 곡선이 빨래줄처럼 우상향을 그리고 있어 투자전략의 이름을 '빨래줄'로 만드신듯 합니다 빨래줄 전략에 대한 자세한 내용은 아래에 있는 백석꾼님 블로그를 참고하시기 바랍니다. https://blog.naver.com/xerts/223095512814 KODEX 레버리지 빨랫줄전략 개선 안녕하세요 주말 잘 보내고 계신가요? 장마도 아닌데 몇일째 비가 오는것 같네요. 어제 이비인후과를 갔는... blog.naver.com 투자전략 검증 - 1 언제나 그렇듯이 백석꾼님이 소개해주신 투자전의 상세조건을 보면 굉장히 간단합니다. 아래의 매수조건을 충족하는날에 장중 주가가 매수가격을 돌파하면 매수하고, 매수조건을 미충족 하는날에 시가로 청산하는 굉장히 단순한 전략입니다. [매수조건] 1) 전일 거래량 < 3일 평균 거래량 2) 전일

Naver Blog

바이비트 트레이딩 시스템 구성

안녕하세요 ~! 퀀스택스 입니다. 드디어!! 오늘 바이비트 트레이딩 시스템 개발이 완료되었습니다. UI 작업은 아직 마무리 안되었습니다만 전략을 운용하는데는 지장이 없습니다. 이번 개발 결과물 덕분에 앞으로는 새로운 전략을 운용할 경우 '전략 분석기'만 새로 개발하면 되고 나머지 리시버, 주문기, 주문확인기, 체결확인기, 지갑확인기는 새로운 전략 분석기에만 붙이면 됩니다. 아래의 시스템 구성을 참고하시기 바랍니다. 오늘 소개해드린 투자전략에 대한 질문이 있거나 혹은 파이썬 코드를 받고 싶으신분들은 퀀스택스 커뮤니티 커뮤니티에서 요청하시기 바랍니다. * 비번 : quanstax Quant 커뮤니티 #퀀트킹 #퀀트박스 #퀀트투자 #퀀트 #젠포트 #테일러 #국내주식 #주식투자 open.kakao.com

Naver Blog

[퀀트투자전략] 이더리움 전략 개선중

안녕하세요~! 퀀스택스 입니다. 요즘 국내주식 투자전략과 시스템을 개발하느라 가상화폐 전략개발과 시스템 개발에 다소 소홀했었는데요, 그래서 오늘은 정말 오랜만에 가상화폐 투자전략을 개선해보았습니다. 우선 현재 운용하고 있는 가상화폐 투자전략은 변동성 돌파전략 기반의 이더리움 롱/숏 전략 이며, 전일 주가흐름을 분석하여 변동성 돌파전략 진입가격 산출공식의 K값과 레버리지 비율, 베팅사이즈를 동시에 조절합니다. 지금 새벽 1시가 다 되어가서 자러가야 하니 전략에 대한 내용은 나중에 자세하게 설명하도록 하고 ,,, 전략을 개선하기 전과 후의 백테스팅 결과만 공유하겠습니다. 아래의 결과를 보시면 아시겠지만 전략개선은 두 단계로 진행하였습니다. 첫번째 개선전략은 베팅사이즈만 수정한 전략이고 두번째 개선전략은 베팅사이즈 수정 + 진입가격 산출공식 수정 전략 입니다. 두번째 개선전략의 수익성이 여타 전략대비 압도적으로 높으나 그만큼 MDD도 높아진 모습입니다. 그래서 수익성을 조금 낮추더라도 M

Naver Blog

[퀀트투자전략] 직장인 투자전략2 (변동성 돌파전략 짱!)

안녕하세요, 퀀스택스 입니다 ~! 지난주에는 KODEX 레버리지 단일종목을 매매하는 '직장인 투자전략'을 소개해 드렸는데요, 오늘은 직장인 투자전략을 KODEX 코스닥150 레버리지 단일종목에 적용했을 때 어떤 결과가 나오는지에 대해 보여드리도록 하겠습니다. 직장인 투자전략을 모르시는분들은 하단에 있는 글을 보고 오시기 바랍니다 ^^ https://blog.naver.com/okshin23432/223080021842 [퀀트투자전략] 초강추 !! 직장인 투자전략 (이보다 따라하기 쉬운전략은 없다) 안녕하세요~! 퀀스택스 입니다. 오늘은 친애하는 '백석꾼' 님이 개발하신 '직장인 투자전략... blog.naver.com [코스피 레버리지 ETF VS 코스닥 레버리지 ETF] 우선 직장인 투자전략을 코스피 레버리지와 코스닥 레버리지 ETF에 적용했을 때 각각 어떠한 성과가 나오느지를 비교해보았습니다. 아래의 성과 그래프에서 파란색선과 주황색선은 각각 코스피 레버리지, 코스닥 레버리지 전

Naver Blog

[퀀트투자 시스템] 직장인 투자전략 개발

안녕하세요~! 퀀스택스 입니다 다들 연휴는 잘 보내셨나요?? 저는 이번 연휴기간동안 트레이딩 시스템을 개발하면서 매우 알차게 보냈습니다. 최근에 소개해드렸던 직장인 투자전략(코스닥 레버리지) 매매시스템 개발을 1차로 마무리 했구요, 5월 2일부터 모의투자를 진행하면서 오류를 하나씩 잡아나갈 계획입니다 https://blog.naver.com/okshin23432/223086716794 [퀀트투자전략] 직장인 투자전략2 (변동성 돌파전략 짱!) 안녕하세요, 퀀스택스 입니다 ~! 지난주에는 KODEX 레버리지 단일종목을 매매하는 '직장인 투자... blog.naver.com 이번에 개발한 시스템의 구조 이미지 입니다. 두번째 이미지를 보시면 프로세스가 5개로 되어 있는데요, 실제로 돌아가는 프로세스는 Receiver, Strategy, Ordercheck 이 세가지 입니다. 시스템 안정화가 마무리 되고 언제 기회가 된다면 이번에 개발한 시스템을 좀 더 구체적으로 설명을 드려보겠습니다.

Naver Blog

[바이비트] ret_code : 10002오류 났을 때 해결방법

이번에 바이비트 시스템을 갈아 엎으려고 다시 개발하려고 하는데, 주문 테스트를 하던 중 자꾸 10002 에러가 나서 확인해보니 ,, 아래의 사이트에 들어가서 맨 밑에 보면 윈도우 시간대를 변경하는 방법이 나와있음 https://github.com/tiagosiebler/awesome-crypto-examples/wiki/Timestamp-for-this-request-is-outside-of-the-recvWindow Timestamp for this request is outside of the recvWindow Examples for working with crypto exchange APIs & WebSockets in Node.js & TypeScript. Algo trading snippets & examples. - tiagosiebler/awesome-crypto-examples github.com 아래와 같이 하면 됨~!

Naver Blog

[퀀트투자전략] 슈퍼트렌드 투자전략 맛보기

안녕하세요~! 퀀스택스입니다. 최근에 제가 운영하는 커뮤니티에서 '슈퍼 트렌드'를 활용한 투자전략을 운용하시는분들이 꽤 많다는걸 알았습니다. 그래서 저도 이번에 해당 지표를 활용한 투자전략을 간단하게 만들어 보았습니다. 슈퍼 트렌드 전략이란? 간단하게 소개를 해드리자면 주가 주변에 두개의 트렌드 라인을 그리고 주가가 상승 트렌드 라인을 상향 돌파하면 상승추세에 진입한 것으로 판단하고 매수, 주가가 하락 트렌드라인을 하향 돌파하면 하락추세에 진입한 것으로 판단하여 매도 하는 매우 간단한 전략입니다. 자세한 내용은 하단의 링크를 참고하시기 바랍니다. https://enrichmoney.in/knowledge-center-chapter/super-trend Supertrend Indicator: Best ATR Indicator, Chart, Formula, Strategy for Intraday Option Trading in NS Super Trend The super trend is

Naver Blog

바이비트 트레이딩 시스템 설계

가상화폐 투자전략을 고도화 하고 그에 걸맞는 트레이딩 시스템을 갖추고자 아래와 같은 구조로 트레이딩 시스템을 개발하고자 합니다. 참고로 아래 사진에는 안나와있지만 UI 프로세스를 별도로 열어서 전략에서 발생하는 여러가지 이벤트를 관리합니다. 퀀트투자 관련 자유롭게 이야기를 나눌 수 있는 퀀스택스 커뮤니티에 입장하세요~ * 비번 : quanstax https://open.kakao.com/o/gasnoL8e Quant 커뮤니티 #퀀트킹 #퀀트박스 #퀀트투자 #퀀트 #젠포트 #테일러 #국내주식 #주식투자 open.kakao.com

Naver Blog

키움증권 api로 일봉 데이터 수집 (비수정주가)

안녕하세요~! 퀀스택스 입니다. 키움증권 API 를 활용하여 일봉 데이터를 수집하고 몽고DB에 저장하는 코드를 공유해 드리도록 하겠습니다 참고로 수집하는 데이터는 수정주가가 아니라 '비수정주가' 이구요, 비수정주가를 수집하는 이유는 개별종목별 수정비율과 비수정주가를 곱하면 보다 정확한 수정주가를 구할 수 있기 때문입니다. 이 방법은 추후에 공개하도록 하겠습니다. 아래의 코드는 반드시 32비트 가상환경을 만드신 후에 실행해야 합니다. 그리고 아래에 있는 두개의 코드는 하나의 파일입니다. 500자 이상 소스코드를 작성할 수 없어서 분리하여 작성했습니다. 그러므로 하나의 파일에 두개의 코드를 복붙해서 실행시키시면 됩니다. import pandas as pd from PyQt5.QAxContainer import * import pythoncom from PyQt5.QtWidgets import * import sys import queue import time from pykrx impo

Naver Blog

Catch Your Smash Day with Larry Williams

요거 보면서 전략을 하나씩 구현해볼 계획 https://blog.roboforex.com/blog/2020/02/13/catch-your-smash-day-with-larry-williams/ Catch Your Smash Day with Larry Williams - R Blog - RoboForex In this article, we will discuss the trading methods of a famous exchange trader Larry Williams. His expertise is confirmed by his victory in a prestigious world futures championship Robbins World Cup with a phenomenal result — over 11000% profit in a year. blog.roboforex.com

Naver Blog

[퀀트투자전략] 스매시 트레이딩 전략

안녕하세요~! 퀀스택스 입니다. 오늘은 제가 가장 존경하는 트레이더인 래리윌리엄스의 '스매쉬 전략'을 소개해 드리도록 하겠습니다. 래리윌리엄스는 스매시 전략을 이용해서 1년만에 11000% 이상의 수익률을 기록했다고 하였는데요, 아래의 링크를 타고 들어가시면 스매시 전략에 대한 상세한 설명을 확인하실 수 있습니다. https://blog.roboforex.com/blog/2020/02/13/catch-your-smash-day-with-larry-williams/ Catch Your Smash Day with Larry Williams - R Blog - RoboForex In this article, we will discuss the trading methods of a famous exchange trader Larry Williams. His expertise is confirmed by his victory in a prestigious world futures champi

Naver Blog

시,고,저,종 팩터별로 Collection을 만들어서 저장 (feat, 벡터연산)

벡터연산을 편리하기 위해 일봉데이터의 시,고,저,종 데이터를 팩터별로 collection 을 만들어서 저장하는 코드 import traceback import datetime import pymongo import pandas as pd from pykrx import stock if __name__ == '__main__': client = pymongo.MongoClient('localhost',27017) all_tickers = stock.get_market_ticker_list(market = 'KOSPI') + stock.get_market_ticker_list(market = 'KOSDAQ') db = client['stock_daily_vector'] open_c = db['open'] high_c = db['high'] low_c = db['low'] close_c= db['close'] volume_c = db['volume'] amount_c = db['amoun

Naver Blog

[퀀트투자전략] 슈퍼 ETF 전략

안녕하세요~! 퀀스택스 입니다. 오늘은 '슈퍼 ETF' 전략을 소개해 드리도록 하겠습니다 슈퍼 ETF 전략이란? 주요 산업 및 섹터 ETF 31개를 선별하고 이 중에서 상승탄력이 강한 상위 5개의 ETF를 데이트레딩 하는 전략입니다. 최근 위와 같은 짤이 돌아다닐정도로 에코프로 3형제를 중심으로 2차전지 섹터가 초 강세를 보였고 코스닥지수의 상승을 견인하였습니다. 그런데 말입니다, 에코프로의 3형제의 초강세는 언제까지 이어질까요? 향후 주가흐름이 어떻게 될지는 알 수 없지만 적어도 에코프로 3형제의 주가 상승세는 언젠가는 꺾이게 될 것이고, 에코프로 3형제에서 출회된 자금은 기대수익률이 높은 섹터로 이동하면서 새로운 섹터가 강세를 보이기 시작할 것입니다. 그렇다면 에코프로 3형제가 저물고 난 이후에 국내 주식시장을 주도할 섹터는 과연 어떤 섹터일까요? 이러한 섹터를 선별하여 트레이딩 하는 전략이 바로 슈퍼 ETF 전략 입니다. [매수조건] 국내 시장을 주도하는 섹터를 선별하는 방법은

Naver Blog

[퀀트투자전략] 백석꾼님의 전략을 자체적으로 검증해보기

안녕하세요~! 퀀스택스 입니다. 정말 오랜만에 백석꾼님의 블로그에 들어가서 이것저것 살펴보다가 한눈에봐도 수익률 곡선이 매우 날카롭게 우상향 하는 전략을 보게 되었습니다. https://blog.naver.com/xerts/223073491173 KODEX레버리지 과최적화(?)의 결과 안녕하세요 오늘은 여러분들께 빨랫줄 같은 전략 성과 차트를 소개해 드리고자 합니다. 트레이딩 난이도가 ... blog.naver.com 그래서 자체적으로 검증을 해보았습니다. 참고로 매수가격 산출공식이 이해가 되지 않아 이전에 작성한 글을 보면서 대충 짐작하여 매수가격 산출공식을 만들었습니다. 매수가격 : (전일고가 - 전일시가) * K + 당일시가 * K 값은 0.7을 사용함 [검증결과] 검증기간 : 2016년 1월 ~ 누적수익률 : 306.69% (누적수익률 749%) 연복리 수익률 : 11.26% (17.7%) MDD : 14.81% (14%) * 괄호안의 값은 백석꾼님의 검증결과 값 검증해본 결

Naver Blog

[퀀트투자전략] 초강추 !! 직장인 투자전략 (이보다 따라하기 쉬운전략은 없다)

안녕하세요~! 퀀스택스 입니다. 오늘은 친애하는 '백석꾼' 님이 개발하신 '직장인 투자전략' 을 소개해 드리도록 하겠습니다. [직장인 투자전략이란?] 대부분의 직장인은 회사에서 각자 업무를 수행하느라 실시간으로 투자판단을 내리고 이를 실천하기가 매우 어렵습니다. 하지만 주식시장이 개장하기 전에 미리 대응방안을 결정하고 매수/매도 주문을 수행할 수 있다면? 보다 쉽게 투자전략을 운용할 수 있을겁니다. 이러한 논리를 기반으로 개발된 투자전략이 바로 백석꾼님이 개발하신 '직장인 투자전략' 이며, 'KODEX 레버리지(122630)' 단일 종목을 매매하고 주식시장이 개장하기 전에 주문을 수행하므로 모든 투자자들이 쉽게 운용할 수 있으면서도 성과측면에서도 굉장히 강력한 전략이라고 할 수 있습니다. 어제 제가 쓴 트레이딩 전략들을 쭉 훑어보다가 문득 이런생각이 들었습니다. "블로그에 들어와서 글 봐주시는 분들은 대부분 직장인일텐데, 블로그에 소개된 전략은 돌파전략을 기반으로 한 전략들이다. 이

Naver Blog

[자산배분전략] PAA, LAA, VAA 정리

안녕하세요~! 퀀스택스 입니다. 오늘 쉬면서 웹서핑을 하다가 우연히 이 기사를 보게 되었는데요, 국내 퀀트의 대중화를 이끌고 계신 강환국님께서 해당 기사를 통해 여러가지 자산배분전략을 소개해주셨습니다. https://weekly.donga.com/List/3/all/11/3102871/1 “20년간 1억→16억 동적자산배분 투자로 파이어족 가능” 오래전부터 투자 현인들은 “추세는 당신의 친구”라고 강조했다. 주식이나 자산시장은 추세가 형성되면 당분간 유지되는 특성이 있다. ‘할 수 있다! 퀀트 투자’ 저자 강환국(38) … weekly.donga.com 상기 기사에 소개된 자산배분전략은 PAA, LAA, VAA 총 세가지 전략입니다. 오늘은 기사 내용을 보고 세가지 전략략을 구현하기 위한 조건을 정리해보도로 하겠습니다. 그리고 오늘 정리한 내용을 토대로 조만간 각 자산배분전략을 검증해보고, 기본 전략을 저만의 방식으로 수정보완 하여 투자전략을 개선시켜보도록 하겠습니다. 참고로 오늘

1 2