QuantX로 브린 테이프의 알고리즘 개선
9314 단어 SmartTradePython3PythonQuantx
첫 도전 QuantX!
자기 소개
나는 이과대학에서 통계를 전공한다.
나는 초보자로서 금융 방면에서 금융 지식을 조금 배웠다.
저는 SmartTrade에서 실습을 했습니다. 잘 부탁드립니다!!
개발에 적응하기 위해 QuantX로 알고리즘을 만들었습니다.qita의 첫 투고로 귀결을 시도했다.
목표
QuantX에 익숙해져서 알고리즘을 만들어 보세요.
생성할 알고리즘
브린대의 특징을 활용하여 거래를 한다.
트위터에서.σ리버스 시그널
확장할 때는 순서대로 신호가 돼요.
이 두 가지 점에 따라 우리는 전환 순서와 역스트레칭 알고리즘을 만들었다.
사이트 축소판 그림
볼린대의 사용 방법, 견해, 장력, 반신축 사용 기술 분석
완료 코드
완료된 코드는 여기.입니다.
해설
중요한 부분만 살짝 설명해 주세요.
1. 사용할 함수 만들기
확장 및 태그 지정 함수 #6~#16
def judge_expand(ar_upperband,ar_lowerband,m):
ar_volatility = ar_upperband - ar_lowerband
list_vol = ar_volatility.tolist()
list_expand = [0]*len(list_vol)
for i in range(m,len(list_vol)):
if list_vol[i] > 3*min(list_vol[i-m:i]):
list_expand[i]=1
return np.array(list_expand)
매개 변수에 대해 수조ar_upperband
,ar_lowerband
,정수m
를 채택한다.ar_upperband
, ar_lowerband
에 브린 테이프의 상하값이 저장되어 있다.브린대의 폭은 그 차이로 ar_volatility
에 저장되었고 .tolist()
에서 목록list_vol
으로 수정되었다.
또한 확장 여부를 0/1로 저장한 목록list_expand
과 list_vol
의 길이가 같고 값은 모두 0으로 준비됩니다.
이번에 확장된 상태를'지난 m일의 브린대 너비의 최소치의 3배로 정의했는데 당일 브린대 너비가 넘으면 추출된다'고 정의했다.list_expand
에서 숫자를 저장하는 방법은 아래 그림과 같다.
마지막으로 list_expand
을 그룹으로 수정합니다.
함수 #18 ~ #26 에서 대역폭 초과 여부를 확인하고 표시
#バンドの上をはみ出したかどうか判定する関数
def judge_plus_sigma(sr_upperband,sr_price):
ar_a = np.greater(sr_price,sr_upperband)
return ar_a.astype(int)
#バンドの下をはみ出したかどうか判定する関数
def judge_minus_sigma(sr_lowerband,sr_price):
ar_a = np.less(sr_price,sr_lowerband)
return ar_a.astype(int)
파라미터는pandas의seriessr_upperband
sr_lowerband
,취sr_price
입니다.sr_upperband
sr_lowerband
는 브린대 상(하)의 값이고, sr_price
는 종가다.
브린대 상(하)의 값은 마감가가 초과(하향)되면 진가ar_a
에 저장된다.마지막으로 실제 값을 1로 변경합니다.
2. 로고를 신호로 변환하는 부분 #85~#88
df_ag_buy_sig[sym] = df_minus_sigma[sym] - df_minus_sigma[sym]*df_expand[sym]
df_ag_sell_sig[sym] = df_plus_sigma[sym] - df_plus_sigma[sym]*df_expand[sym]
df_fol_buy_sig[sym] = df_plus_sigma[sym]*df_expand[sym]
df_fol_sell_sig[sym] = df_minus_sigma[sym]*df_expand[sym]
여기에 주가가 세워진 표지를 신호로 전환한다.df_
가 첨부된 모든 index 날짜,columns 브랜드의pandas.Dataframe입니다.
def judge_expand(ar_upperband,ar_lowerband,m):
ar_volatility = ar_upperband - ar_lowerband
list_vol = ar_volatility.tolist()
list_expand = [0]*len(list_vol)
for i in range(m,len(list_vol)):
if list_vol[i] > 3*min(list_vol[i-m:i]):
list_expand[i]=1
return np.array(list_expand)
#バンドの上をはみ出したかどうか判定する関数
def judge_plus_sigma(sr_upperband,sr_price):
ar_a = np.greater(sr_price,sr_upperband)
return ar_a.astype(int)
#バンドの下をはみ出したかどうか判定する関数
def judge_minus_sigma(sr_lowerband,sr_price):
ar_a = np.less(sr_price,sr_lowerband)
return ar_a.astype(int)
df_ag_buy_sig[sym] = df_minus_sigma[sym] - df_minus_sigma[sym]*df_expand[sym]
df_ag_sell_sig[sym] = df_plus_sigma[sym] - df_plus_sigma[sym]*df_expand[sym]
df_fol_buy_sig[sym] = df_plus_sigma[sym]*df_expand[sym]
df_fol_sell_sig[sym] = df_minus_sigma[sym]*df_expand[sym]
df_minus_sigma
: 최종치가 브린대 밑부분보다 낮으면 1을 넣고 그렇지 않으면 0df_plus_sigma
: 블린 주파수를 초과하면 1이고 그렇지 않으면 0df_expand
: 1로 확장 또는 0으로 확장 또한 다음 데이터 프레임에서
df_ag_buy_sig
: 역매입의 신호df_ag_sell_sig
: 역매도 신호df_fol_buy_sig
: 순차 구매 신호df_fol_sell_sig
: 순서대로 판매하는 신호위 3개의 표지의 데이터 프레임에서 아래 4개의 신호의 데이터 프레임으로 변환할 수 있으며 코드 공식을 사용하여 변환할 수 있다.
진위 시계 같은 걸 보면 쉽게 알 수 있겠지...
왼쪽 3개를 오른쪽 4개로 변환합니다.
넘다
... 보다 낮다
확장성
되팔다
되팔다
순서대로 매입하다
순서대로 팔다
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
결실
mardown 커요.α작기도 하고...
용서해 주세요. 제가 처음으로 아구였어요.
개별
한 품종에 관심을 가져보면...
미쓰비시 총연
순서대로 배열된 신호를 표시해 보았지만, 생각한 대로 움직이고 있는 것 같아!
날마다 휘두르다
이것은 신호가 확장된 후에 보내는 것으로 판정 함수의 매개 변수를 바꾸어야 한다.
최후
우선 첫 번째 알고리즘은 이 정도...
나는 이 알고리즘의 업그레이드와 다른 알고리즘의 제작 등을 끊임없이 진행하고 싶다!
학습회 홍보
SmartTrade사는 매주 수요일 18:00에 학습회를 개최한다.( https://python-algo.connpass.com/)
면책 고려 사항
이 코드와 지식을 사용한 실제 거래에서 발생하는 손익에 대해서는 일체 책임을 지지 않으니 양해해 주십시오
Reference
이 문제에 관하여(QuantX로 브린 테이프의 알고리즘 개선), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/geoha6/items/94bc8b134c06f8b51911
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(QuantX로 브린 테이프의 알고리즘 개선), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/geoha6/items/94bc8b134c06f8b51911텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)