본문 바로가기
카테고리 없음

게만아님 46번 전략 수익 검증시 사용한 코드

by 천장만보며 2024. 2. 27.
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
반응형