inflearn logo
강의

講義

知識共有

ビットコインアルゴリズムトレーディングボットの開発

取引戦略とバックテスト(逆傾向売買技術)

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

288

Jc

投稿した質問数 1

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 투자 퀀트

回答 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

233

1

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

0

261

1

module not find 에러 문의

0

285

2

read_json오류 문의

0

470

2

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

0

215

1

pbound 관련 질문드립니다.

0

234

1