728x90
반응형
https://certifiedman.tistory.com/1298
게만아님 46번 전략 수익을 검증해본 썰
게만아님 46번 전략을 검증해 보았다. https://blog.naver.com/zacra/223349033981 업비트 자동매매 30분봉 구간 돌파 + 트레일링 스탑 단타 전략! 코인 상승장이 다시 돌아왔나요? 뭐 제 알 바아니죠. 저는 제
certifiedman.tistory.com
게만아님 46번 전략 수익 검증에 사용한 코드입니다.
46번 전략에 대해서는 아래의 블로그 참조하세요.
https://blog.naver.com/zacra/223349033981
업비트 자동매매 30분봉 구간 돌파 + 트레일링 스탑 단타 전략!
코인 상승장이 다시 돌아왔나요? 뭐 제 알 바아니죠. 저는 제가 만든 파이썬 자동매매 봇에 투자를 맡긴 상...
blog.naver.com
자료는 업비트 사이트에서 하나하나 긁어왔다.
import pandas as pd
# 파일 불러오기
df = pd.read_excel('코인거래내역.xlsx', sheet_name='로우데이터')
일단 가볍게 파일을 불러왔다.
# Remove 'KRW' and convert values from string to numeric for '거래금액' and '수수료'
df['거래금액'] = df['거래금액'].str.replace('KRW', '').str.replace(',', '').astype(float)
def correct_fees(value):
if 'GAS' in value:
return 0.0 # Assuming GAS fees are not relevant for profit calculation
try:
return float(value.replace('KRW', '').replace(',', ''))
except ValueError: # In case there are other unexpected non-numeric values
return 0.0
df['수수료'] = df['수수료'].apply(correct_fees)
거래금액, 수수료 등에 붙어있는 KRW를 제거하는 코드이다.
수수료는 GAS라는 코인에서 에러가 발생하는 걸 chatGPT가 해결해준 코드를 그대로 썼다.
# Apply the function to calculate profit for each row
df['수익금액'] = df.apply(lambda row: row['거래금액'] - row['수수료'] if row['종류'] == '매도' else - (row['거래금액'] + row['수수료']), axis=1)
수익금액을 구하는 코드다.
매도금액에서 수수료를 빼고 매수금액을 빼는 코드이다.
만약 잘못됐다면 알려주기 바란다.
# Group by '코인' and sum up the '수익금액' to get the total profit per coin
profit_summary_corrected = df.groupby('코인')['수익금액'].sum().reset_index()
# 코인별 매수 횟수를 계산
buy_counts = df[df['종류'] == '매수'].groupby('코인')['종류'].count().reset_index(name='매수횟수')
# profit_summary_corrected 데이터프레임에 매수 횟수 병합
profit_summary_with_buys = pd.merge(profit_summary_corrected, buy_counts, on='코인', how='left')
코인별로 수익금액을 합치는 코드와 매수 횟수를 계산하는 코드이다.
728x90
반응형