비트코인 자동매매 / 인공지능 / 최적시간 설정 (00시 - 07시)

2021. 12. 27. 21:55코딩

반응형

Facebook prophet을 통해서 비트코인의 최대수익이 나는 시간을 검토해 보면, 아래와 같이 

(매번 다를 수 있지만)

 

00시를 기준으로 가장 낮았고, 5시를 기준으로 가장 높고 13시 기준으로 다시 두번째로 높았던 거을 알 수 있습니다.

 

자동매매 코인을 올려놓았을 때, 수익 극대화를 위해서 코드 설정 시간을 저는 00시에는 매수 시작이고, 매도는 0700시 기준으로 하고자 합니다.

 

24시간 기준으로 0900 시에 매수를 하고, 다음날 08:59시에 매도를 하니, 수익이 많이 발생하지 않았습니다.

 

이번시간에는  (00시 - 07시) 세팅 방법에 대해서 알려드리고,  (00시 - 07시) 기준에서 수익이 어떻게 변했는지 다음 블로그에 소개하겠습니다.

 

from fbprophet import Prophet

기존 코드 입니다.

##반복문 시작
while True:
    try:
        now = datetime.datetime.now()
        start_time = get_start_time("KRW-BTC")
        end_time = start_time + datetime.timedelta(days=1)

        #09:00 부터 다음날 08:59:50 초까지 해당 시간이 만족하면, 매수목표가 설정
        if start_time < now < end_time - datetime.timedelta(seconds=10):
            target_price = get_target_price("KRW-BTC", 0.035)   #변동폭 k (최적값 확인 )    #변동률 k 0.27 
            ma10 = get_ma10("KRW-BTC")
            current_price = get_current_price("KRW-BTC")
            if target_price < current_price and ma10 < current_price:
                krw = get_balance("KRW")
                if krw > 5000:
                    buy_result = upbit.buy_market_order("KRW-BTC", krw*0.9995)
                    post_message(myToken,"#stock", "BTC buy : " +str(buy_result)) #Slack

 

 

수정 코드 입니다.

import pyupbit
import time
import datetime

def get_start_time(ticker):
    """시작 시간 조회"""
    df = pyupbit.get_ohlcv(ticker, interval="day", count=1)
    start_time = df.index[0]
    return start_time

now = datetime.datetime.now()
start_time = get_start_time("KRW-BTC") + datetime.timedelta(hours=-9) + datetime.timedelta(hours=22)
end_time = start_time + datetime.timedelta(minutes=10)
       
print(start_time)
print(end_time)

 

위에서 보시는 것처럼, 예를 들어 22시에 매수 22시 10분에 매도를 하면, 위와 같이 설정하면 됩니다.

아래는 터미널에서 시간을 불러왔습니다.

 

 

아래 코드에 해당하는 시간이 09시 이므로, 이 시간을 기준으로 +/- 시간을 해주면 원하는 시간을 설정할 수 있습니다.

get_start_time("KRW-BTC"
 
반응형