지니를 찾아
2019년 11월 5일 화요일
vscode 에서 python 그래프가 안보일때?
mport matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
x = np.linspace(0, 20, 100)
plt.plot(x, np.sin(x))
plt.show()
실행 했을 시 vscode 에서 plt.show() 가 아무것도 안보이는 경우....
1. jupyter extention 설치
https://marketplace.visualstudio.com/items?itemName=donjayamanne.jupyter
2. 소스 가장 윗라인에 "#%%" 를 쓴다.
3. "Run Cell" 누르면 됨
참고 : https://stackoverflow.com/questions/49992300/how-to-show-graph-in-visual-studio-code-itself
2019년 11월 4일 월요일
jupyter notebook 에 가상환경 커널 추가하기
해당 가상환경에 간다.
$ conda activate 가상환경
가상환경에서 ipykernel 설치
$ pip install ipykernel
주피너 노트북에 가상환경 추가
$ python -m ipykernel install --user --name [virtualEnv] --display-name "[displayKenrelName]"
주피터 노트북 실행...
2019년 11월 3일 일요일
vscode (visual studion code) conda 가상환경
2019년 9월 23일 월요일
Forex super scalping binary options
https://www.forexstrategiesresources.com
https://www.amtradingtips.com
해당 사이트에 많은 strategy 가 있음.....
https://www.forexstrategiesresources.com/binary-options-trading-strategies/104-binary-superscalping-system/
https://www.amtradingtips.com
해당 사이트에 많은 strategy 가 있음.....
https://www.forexstrategiesresources.com/binary-options-trading-strategies/104-binary-superscalping-system/
Trend CCI with RSI
Markets: Forex (EUR/USD, GBP/USD, AUD/USD, USD/CHF, USD/CAD, NZF/USD, USD/JPY,) Indicies (S&P500, Dow Jones, DAX, FTSE100) and Gold.
Time Frame 5 min, 15min, 30min.
Expiry Time (4-6 candles).
Trading Rules Binary Superscalping System
Buy Call or Buy
Trend CCI (170) crossed the zero line upwards (green bar >0);
Entry CCI (34) crosses upward the zero line ;
RSI (Relative Strength Index) indicator value is greater than 55 level;
Heiken Ashi Smoothed indicator is color blue (optional).
Buy Put or Sell
Trend CCI (170) crossed the zero line downwards (red bar <0);
Entry CCI (34) crosses downward the zero line ;
RSI indicator value is lower than 45 level;
Heiken Ashi Smoothed indicator is color red (optiona).
Tips:Do not open trades against the trend on the next time frame. Should also be considered Fibo and Pivot levels as support and resistance levels when deciding whether to enter on the market . Buy above resistance, Sell below support.
Exit position for Scalping options:
Entry CCI (34) crosses in opposite direction trend CCI (170),
Profit Target:5 min time frame 7-10 pips, 15 min time frame (9-14 pips), 30 min time frame (15- 18 pips).
Make Profit at fibopivot levels.
Initial stop loss on the previous swing.
In the pictures binary superscalping system.
2019년 9월 17일 화요일
backtrader 백테스트
python 백테스트
https://www.backtrader.com/
https://github.com/backtrader/backtrader
https://backtest-rookies.com/
를 통하여 backtest 해보기...
1. 설치
pip install backtrader
2. tutorial
https://www.backtrader.com/
https://github.com/backtrader/backtrader
https://backtest-rookies.com/
를 통하여 backtest 해보기...
1. 설치
pip install backtrader
2. tutorial
import backtrader as bt
from datetime import datetime
class SmaCrossSignal(bt.SignalStrategy):
# list of parameters which are configurable for the strategy
params = dict(
pfast=10, # period for the fast moving average
pslow=30 # period for the slow moving average
)
def __init__(self):
sma1 = bt.ind.SMA(period=self.p.pfast) # fast moving average
sma2 = bt.ind.SMA(period=self.p.pslow) # slow moving average
crossover = bt.ind.CrossOver(sma1, sma2) # crossover signal
self.signal_add(bt.SIGNAL_LONG, crossover) # use it as LONG signal
if __name__ == "__main__":
cerebro = bt.Cerebro()
# Add a strategy
cerebro.addstrategy(SmaCrossSignal)
# Create a data feed
data = bt.feeds.YahooFinanceData(dataname='MSFT',
fromdate=datetime(2011, 1, 1),
todate=datetime(2012, 12, 31))
cerebro.adddata(data)
# Run over everything
cerebro.run()
# Plot the result
cerebro.plot(style='candlestick')
2019년 9월 15일 일요일
docker
Docker 설치 (ubuntu 18.04)
$ curl -fsSL https://get.docker.com/ | sudo sh
$ curl -fsSL https://get.docker.com/ | sudo sh
도커는 root 권한이 필요하다.
sudo 없이 실행하기 위해서는
$ sudo usermod -aG docker your-user # your-user 사용자에게 권한주기
2019년 9월 10일 화요일
Zipline 백테스팅
Zipline은 알고리즘 트레이딩 라이브러리로서 백테스팅 기능을 제공합니다
Zipline 은 quantopian 에서 만든 오픈소스이다.
quantopian
https://www.quantopian.com/
zipline
https://github.com/quantopian/zipline
기본 사용법
https://www.zipline.io/beginner-tutorial
conda 를 통한 가상환경 설정....
집라인은 python 3.5 버전까지 지원하여,
최신버전(3.7)에서는 conda env 를 통하여 3.5버전을 사용하면 쉽게 할수 있다.
$ conda create -n py35 python=3.5 anaconda
마지막에 anaconda 는 아나콘다 페키지를 설치 하는듯함.
env list
$ conda env list
env 활성화
$ conda activate 이름
env 삭제
$ conda env remove -n 이름
1. 설치 ( os: ubuntu 18.04 ) (콘다를 이용하여 설치 하는것을 추천함.)
conda env 를 통하여 3.5 python 환경을 만들자.
$ conda create -n zipline_env python=3.5
- install with pip
$ pip install zipline
- pip uninstall 페키지
$ pip uninstall (페키지명)
https://www.zipline.io/install 에 보면 pip 를 사용하여 설치 하는것이 복잡하다고 나와있다.
자세한 사항은 링크를 통해 확인 필요합니다.
(설치는 되는데 아무것도 안되는듯 하다...)
- install with conda
$ conda install -c Quantopian zipline
conda install 로 하면 zipline 에서 필요한 페키지 들을
- conda version 4.7.11 에서 문제가 있는 듯 // https://github.com/quantopian/zipline/issues/2514 )
- conda version 4.7.12 에서는 설치 됨.
conda 페키지 설치 (해당 버전)
$ conda install 페키지이름=버전이름
$ conda install -c conda-forge 페키지이름=버전이름
conda 페키지 삭제
$ conda remove 페키지이름
2. Tutorial
import pandas_datareader.data as web import datetime import matplotlib.pyplot as plt from zipline.api import order, symbol from zipline.algorithm import TradingAlgorithm # datastart = datetime.datetime(2010, 1, 1) end = datetime.datetime(2016, 3, 19) data = web.DataReader("AAPL", "yahoo", start, end) data = data[['Adj Close']] data.columns = ['AAPL'] data = data.tz_localize('UTC') def initialize(context): pass def handle_data(context, data): order(symbol('AAPL'), 1) algo = TradingAlgorithm(initialize=initialize, handle_data=handle_data) result = algo.run(data) plt.plot(result.index, result.portfolio_value) plt.show()
참고: https://wikidocs.net/4429
zipline 1.3.0 기준입니다.
위와 같이 하면 아래와 같은 에러가 나옴.
$ /home/kj/anaconda3/envs/zipline/bin/python /home/kj/PycharmProjects/stock/zipline_.py Traceback (most recent call last): File "/home/kj/PycharmProjects/stock/zipline_.py", line 40, in <module> algo = TradingAlgorithm(initialize=initialize, handle_data=handle_data) File "/home/kj/anaconda3/envs/zipline/lib/python3.5/site-packages/zipline/algorithm.py", line 279, in __init__ self.trading_environment = TradingEnvironment() File "/home/kj/anaconda3/envs/zipline/lib/python3.5/site-packages/zipline/finance/trading.py", line 103, in __init__ self.bm_symbol, File "/home/kj/anaconda3/envs/zipline/lib/python3.5/site-packages/zipline/data/loader.py", line 149, in load_market_data environ, File "/home/kj/anaconda3/envs/zipline/lib/python3.5/site-packages/zipline/data/loader.py", line 216, in ensure_benchmark_data data = get_benchmark_returns(symbol) File "/home/kj/anaconda3/envs/zipline/lib/python3.5/site-packages/zipline/data/benchmarks.py", line 35, in get_benchmark_returns data = r.json() File "/home/kj/anaconda3/envs/zipline/lib/python3.5/site-packages/requests/models.py", line 897, in json return complexjson.loads(self.text, **kwargs) File "/home/kj/anaconda3/envs/zipline/lib/python3.5/json/__init__.py", line 319, in loads return _default_decoder.decode(s) File "/home/kj/anaconda3/envs/zipline/lib/python3.5/json/decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/home/kj/anaconda3/envs/zipline/lib/python3.5/json/decoder.py", line 357, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
json.decoder.JSONDecodeError 의 에러 가 난다.
해당 에러는 아래 링크를 통해 해결해 볼수 있을 것 같다.
https://github.com/quantopian/zipline/issues/2480
https://blog.naver.com/rhgkrsus1/221621557450
윗 링크에 따르면,
Zipline에서 benchmark.py 통하여 데이터를 받아오는 것에 실패
-> None 를 Json으로 전달해서 에러가 나는 것으로 보여진다.
해당 에러를 고치는 방법은
1. https://iextrading.com/developer/#sunset-schedule 회원 가입(무료), PUBLISHABLE 토큰을 받는다.
2. zipline 이 설치 되어 있는 폴더에서 zipline\data\benchmark.py 파일을 열어서
r = requests.get(
'https://api.iextrading.com/1.0/stock/{}/chart/5y'.format(symbol)
)
해당 소스를 수정한다.
~~ 요기서 중요~~~
conda 가상환경을 사용중이라면
anaconda 설치 폴더에 가상 envs 라는 폴더안에 있는 zipline 에서 수정해야 한다
ex) 우분투 anaconda3/envs/(가상환경이름)/lib/python3.5/site-packages/zipline/data/benchmarks.py
IEX_KEY = '키키키키키키키'
r = requests.get( "https://cloud.iexapis.com/stable/stock/{}/chart/5y?chartCloseOnly=True&token={}".format(symbol, IEX_KEY) ) # r = requests.get( # 'https://api.iextrading.com/1.0/stock/{}/chart/5y'.format(symbol) # )
마지막 수정 : 19년 11월 08일
2019년 9월 9일 월요일
실시간 주식 데이터 얻기
Polygon.io
Alpaca.markets
Alpha vantage -
회원 가입하면 키를 받을 수 있음.
www.alphavantage.co/
https://alpha-vantage.readthedocs.io/en/latest/
https://medium.com/@samanamp/fetching-live-stock-market-data-with-python-and-alphavantage-7d0ff8a8d2e4
symble = ex) NQ / 달 / 년 .
나스닥 NQU19.CME
골드 GCZ19.CMX
오일 CLV19.NYM
F January
G February
H March
J April
K May
M June
N July
Q August
U September
V October
X November
Z December
==================================================
https://github.com/FinanceData/FinanceDataReader/
일봉 데이터 부터 가능 (분봉은 어떻게 하는지??)
=================================================
Alpaca - 아직 안해봤음.
https://app.alpaca.markets/signup
ORATS
https://interactivebrokers.github.io/tws-api/market_data.html
Alpha vantage -
회원 가입하면 키를 받을 수 있음.
www.alphavantage.co/
https://alpha-vantage.readthedocs.io/en/latest/
https://medium.com/@samanamp/fetching-live-stock-market-data-with-python-and-alphavantage-7d0ff8a8d2e4
from alpha_vantage.timeseries import TimeSeriests = TimeSeries(key="키키키키키키", output_format='pandas') data, meta_data = ts.get_intraday(symbol='NQU19.CME', interval='1min', outputsize='full') print(meta_data)# pandas data 타임은 미 동부시간대/
symble = ex) NQ / 달 / 년 .
나스닥 NQU19.CME
골드 GCZ19.CMX
오일 CLV19.NYM
F January
G February
H March
J April
K May
M June
N July
Q August
U September
V October
X November
Z December
==================================================
https://github.com/FinanceData/FinanceDataReader/
일봉 데이터 부터 가능 (분봉은 어떻게 하는지??)
=================================================
Alpaca - 아직 안해봤음.
https://app.alpaca.markets/signup
피드 구독하기:
글 (Atom)