151 lines
3.9 KiB
Bash
Executable File
151 lines
3.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# BAA 전략 API 호출 예제 스크립트
|
|
# 사용법: ./baa_api_examples.sh
|
|
|
|
# 서버 URL (필요시 수정)
|
|
BASE_URL="http://localhost:8000/api"
|
|
|
|
echo "=================================="
|
|
echo "BAA 전략 API 호출 예제"
|
|
echo "=================================="
|
|
echo ""
|
|
|
|
# 색상 코드
|
|
GREEN='\033[0;32m'
|
|
BLUE='\033[0;34m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# ===================================
|
|
# 1. 사용 가능한 전략 구현체 목록 조회
|
|
# ===================================
|
|
echo -e "${BLUE}[1] 사용 가능한 전략 구현체 목록 조회${NC}"
|
|
echo "curl -X GET ${BASE_URL}/strategies/implementations/"
|
|
echo ""
|
|
curl -X GET "${BASE_URL}/strategies/implementations/" \
|
|
-H "Content-Type: application/json" | jq '.'
|
|
echo ""
|
|
echo ""
|
|
|
|
# ===================================
|
|
# 2. BAA-G12 시뮬레이션 모드 실행
|
|
# ===================================
|
|
echo -e "${BLUE}[2] BAA-G12 시뮬레이션 모드 실행${NC}"
|
|
SIMULATION_PAYLOAD='{
|
|
"strategy_name": "BoldAssetAllocation",
|
|
"version": "1.0.0",
|
|
"parameters": {
|
|
"initial_capital": 100000,
|
|
"variant": "BAA-G12",
|
|
"use_real_data": false
|
|
}
|
|
}'
|
|
|
|
echo "curl -X POST ${BASE_URL}/strategies/execute/"
|
|
echo "Payload:"
|
|
echo "$SIMULATION_PAYLOAD" | jq '.'
|
|
echo ""
|
|
|
|
EXEC_ID=$(curl -s -X POST "${BASE_URL}/strategies/execute/" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$SIMULATION_PAYLOAD" | jq -r '.execution_id')
|
|
|
|
echo -e "${GREEN}실행 ID: $EXEC_ID${NC}"
|
|
echo ""
|
|
|
|
# 실행 완료 대기
|
|
echo "실행 완료 대기 중..."
|
|
sleep 3
|
|
|
|
# 결과 조회
|
|
echo -e "${BLUE}시뮬레이션 결과 조회${NC}"
|
|
curl -s -X GET "${BASE_URL}/executions/${EXEC_ID}/" | jq '.'
|
|
echo ""
|
|
echo ""
|
|
|
|
# ===================================
|
|
# 3. BAA-G4 실제 데이터 모드 (현재 날짜)
|
|
# ===================================
|
|
echo -e "${BLUE}[3] BAA-G4 실제 데이터 모드 - 현재 날짜 기준 포트폴리오${NC}"
|
|
REAL_DATA_PAYLOAD='{
|
|
"strategy_name": "BoldAssetAllocation",
|
|
"version": "1.0.0",
|
|
"parameters": {
|
|
"initial_capital": 50000,
|
|
"variant": "BAA-G4",
|
|
"use_real_data": true,
|
|
"as_of_date": null
|
|
}
|
|
}'
|
|
|
|
echo "curl -X POST ${BASE_URL}/strategies/execute/"
|
|
echo "Payload:"
|
|
echo "$REAL_DATA_PAYLOAD" | jq '.'
|
|
echo ""
|
|
|
|
EXEC_ID2=$(curl -s -X POST "${BASE_URL}/strategies/execute/" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$REAL_DATA_PAYLOAD" | jq -r '.execution_id')
|
|
|
|
echo -e "${GREEN}실행 ID: $EXEC_ID2${NC}"
|
|
echo ""
|
|
|
|
# 실행 완료 대기 (실제 데이터는 더 오래 걸림)
|
|
echo "데이터 다운로드 및 계산 중..."
|
|
sleep 10
|
|
|
|
# 결과 조회
|
|
echo -e "${BLUE}실제 포트폴리오 결과 조회${NC}"
|
|
curl -s -X GET "${BASE_URL}/executions/${EXEC_ID2}/" | jq '.'
|
|
echo ""
|
|
echo ""
|
|
|
|
# ===================================
|
|
# 4. BAA-G12 특정 날짜 기준
|
|
# ===================================
|
|
echo -e "${BLUE}[4] BAA-G12 특정 날짜 기준 (2024-01-31)${NC}"
|
|
DATE_PAYLOAD='{
|
|
"strategy_name": "BoldAssetAllocation",
|
|
"version": "1.0.0",
|
|
"parameters": {
|
|
"initial_capital": 100000,
|
|
"variant": "BAA-G12",
|
|
"use_real_data": true,
|
|
"as_of_date": "2024-01-31"
|
|
}
|
|
}'
|
|
|
|
echo "curl -X POST ${BASE_URL}/strategies/execute/"
|
|
echo "Payload:"
|
|
echo "$DATE_PAYLOAD" | jq '.'
|
|
echo ""
|
|
|
|
EXEC_ID3=$(curl -s -X POST "${BASE_URL}/strategies/execute/" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$DATE_PAYLOAD" | jq -r '.execution_id')
|
|
|
|
echo -e "${GREEN}실행 ID: $EXEC_ID3${NC}"
|
|
echo ""
|
|
|
|
# 실행 완료 대기
|
|
echo "데이터 다운로드 및 계산 중..."
|
|
sleep 10
|
|
|
|
# 결과 조회
|
|
echo -e "${BLUE}특정 날짜 포트폴리오 결과 조회${NC}"
|
|
curl -s -X GET "${BASE_URL}/executions/${EXEC_ID3}/" | jq '.'
|
|
echo ""
|
|
echo ""
|
|
|
|
# ===================================
|
|
# 5. 실행 상태 조회만 하기
|
|
# ===================================
|
|
echo -e "${YELLOW}[5] 특정 실행 ID 상태 조회 예제${NC}"
|
|
echo "curl -X GET ${BASE_URL}/executions/{execution_id}/"
|
|
echo ""
|
|
echo "예: curl -X GET ${BASE_URL}/executions/${EXEC_ID}/"
|
|
echo ""
|
|
|
|
echo -e "${GREEN}모든 테스트 완료!${NC}"
|