inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Phát triển bot giao dịch thuật toán bitcoin

Chiến lược giao dịch và backtest (kỹ thuật giao dịch ngược xu hướng)

베이지안에서 질문있습니다.

288

Jc

1 câu hỏi đã được viết

0


pbounds = {
    'revenue_rate' : (0.005,0.015),
    'max_loss_rate' : (0.05,0.3),
    'increase_rate' : (0.1,0.4),
    'buy_cnt_limit' : (5,20),
    'buy_amt_unit' : (10,20)
}


여기서 buy_cnt_limit은 사실 정수가 나와야 하는데. 베이지안 최적화 후에 반올림하여 수정하는 방법밖에 없을까요?

 

pandas 투자 퀀트

Câu trả lời 2

0

multicoreit

안녕하세요 Jc님

베이지안 함수에서는 기본적으로 소수점 단위로 데이터를 반환합니다.

정수로 사용하고 싶을 실 경우 데이터를 활용하는 run_test 함수에서 반올림하셔야 합니다.

제공해 드린 예제를 보시면 반올림(round)해서 사용하는 부분을 확인하실 수 있습니다.

감사합니다.

def black_box_function....

revenue = run_test(config_data)

def run_test(config):

set_wma_s = list_wma_s [int(round(config['wma_s'],0))]

0

communityai8509

안녕하세요, 인프런 AI 인턴이에요.

베이지안 최적화를 사용해야하는 목적이 알려져 있다면, buy_cnt_limit 값을 정수로 설정하려는 것이 이해됩니다.
베이지안 최적화는 연속적인 값을 최적화하는데 주로 사용되기 때문에 정수 값을 최적화하기가 어려울 수 있습니다.

buy_cnt_limit 값을 정수로 설정하려면 반올림을 사용하는 방법이 있을 것입니다. 예를 들어, 반올림 함수인 round()를 사용하면 됩니다.
다음은 베이지안 최적화 결과를 반올림하여 정수로 변환하는 예시 코드입니다.

from bayes_opt import BayesianOptimization

# 최적화 함수
def target_func(revenue_rate, max_loss_rate, increase_rate, buy_cnt_limit, buy_amt_unit):
    # buy_cnt_limit를 반올림하여 정수로 변환
    buy_cnt_limit = round(buy_cnt_limit)

    # 최적화하고자 하는 로직 수행
    # ...

    # 결과 반환
    return optimized_result

# 범위 설정
pbounds = {
    'revenue_rate' : (0.005,0.015),
    'max_loss_rate' : (0.05,0.3),
    'increase_rate' : (0.1,0.4),
    'buy_cnt_limit' : (5,20),
    'buy_amt_unit' : (10,20)
}

# 최적화 수행
optimizer = BayesianOptimization(target_func, pbounds)
optimizer.maximize()

# 최적화 결과 출력
buy_cnt_limit = round(optimizer.max['params']['buy_cnt_limit'])
print("Optimized buy_cnt_limit:", buy_cnt_limit)

위의 코드는 베이지안 최적화 라이브러리인 BayesianOptimization을 사용하는 예시입니다.
target_func 함수에서 buy_cnt_limit를 반올림하여 정수로 변환한 후 최적화 로직을 수행하고, 최적화 결과를 출력합니다.
다른 최적화 라이브러리를 사용한다면 해당 라이브러리의 문서를 참고하여 반올림하는 방법을 찾아보시기 바랍니다.

반올림을 통해 buy_cnt_limit 값을 정수로 변환할 수 있습니다. 하지만 정수로 변환되지 않은 값으로 최적화를 수행하고 그 결과를 반올림하는 방법도 고려할 수 있습니다. 따라서 결과와 유의미한 값을 산출하는 방식을 선택하시면 될 것 같습니다.

추가적으로, 해당 질문은 베이지안 최적화에 관한 것이며 프로그래밍 관련 질문이므로 답변을 드릴 수 있었습니다.
더 궁금한 점이 있다면 언제든지 물어보세요!

바이낸스 오픈 API가 없습니다..

0

247

1

ta 모듈을 못 찾습니다

0

482

1

데이터수집하기 오류

0

330

1

바이낸스 오픈 API 깃허브 링크

0

759

1

데이터 수집하기 오류 질문

0

487

1

BinanceApiException

0

577

2

target 값 0

0

273

1

This access key is incorrect.

0

554

2

현재가 가져올때 request를 사용하는 이유

0

444

3

error code 400 관련 질문

0

317

1

'NoneType' object is not subscriptable 오류 문의 (robobits.py)

0

297

1

부분 매수로 인한 check_open_cnt 문제

0

243

1

리눅스에서 파이썬 실행하기

1

2285

1

업비트 아이디 1개로 robobits.py 파일을 몇개까지 실행 할 수 있을까요?

0

300

1

robobits_adv2.py 파일에서 TypeError: 'NoneType' object is not subscriptable 오류 발생하면서 멈췄어요.

0

903

2

로그기록을 파일로 저장 하고 싶습니다.

0

999

1

매수 금액설정

0

426

3

오픈건수가 아닌 자산비율 100%구매방법

0

274

1

리플 뿐만이 아닌 다른 종목들

0

234

1

1분 데이터를 끌어올 수 없습니다

0

261

1

module not find 에러 문의

0

285

2

read_json오류 문의

0

470

2

WMAIndicator에서 오래 걸리는게 정상인가요?

0

215

1

pbound 관련 질문드립니다.

0

234

1