#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
股票估值分析入口脚本

直接运行此脚本可以分析指定股票的PE/PB历史分位数
"""

import sys
import os
import argparse
from valuation_analysis.pe_pb_analysis import ValuationAnalyzer


def parse_args():
    """解析命令行参数"""
    parser = argparse.ArgumentParser(description="股票PE/PB估值分析工具")
    
    parser.add_argument('--stock', '-s', type=str, required=True, 
                      help='股票代码，例如：601138')
    parser.add_argument('--start-date', type=str, default='2018-01-01',
                      help='起始日期 (默认: 2018-01-01)')
    parser.add_argument('--metrics', type=str, default='pe,pb',
                      help='分析指标，用逗号分隔 (默认: pe,pb)')
    
    return parser.parse_args()


def main():
    """主函数"""
    args = parse_args()
    
    # 解析参数
    stock_code = args.stock
    start_date = args.start_date
    metrics = args.metrics.split(',')
    
    print(f"开始分析股票 {stock_code} 的估值情况...")
    
    # 创建分析器并运行分析
    analyzer = ValuationAnalyzer()
    result = analyzer.analyze_stock_valuation(stock_code, start_date, metrics)
    
    # 输出结果
    if not result['success']:
        print(f"分析失败: {result.get('message', '未知错误')}")
        return 1
    
    # 打印分析结果
    stock_name = result['stock_name']
    analysis_date = result['analysis_date']
    
    print("\n" + "="*50)
    print(f"股票代码: {stock_code}")
    print(f"股票名称: {stock_name}")
    print(f"分析日期: {analysis_date}")
    print("="*50)
    
    for metric in result['metrics']:
        metric_data = result['metrics'][metric]
        metric_name = "PE" if metric == "pe" else "PB"
        
        print(f"\n{metric_name}分析结果:")
        print("-"*30)
        print(f"当前{metric_name}: {metric_data['current']:.2f}")
        print(f"{metric_name}百分位: {metric_data['percentile']:.2f}%")
        print(f"历史最小值: {metric_data['min']:.2f}")
        print(f"历史最大值: {metric_data['max']:.2f}")
        print(f"历史均值: {metric_data['mean']:.2f}")
        print(f"历史中位数: {metric_data['median']:.2f}")
        print(f"第一四分位数: {metric_data['q1']:.2f}")
        print(f"第三四分位数: {metric_data['q3']:.2f}")
        print(f"估值曲线图: {metric_data['chart_path']}")
        
    print("\n" + "="*50)
    print(f"分析完成，图表已保存到results/valuation_analysis/目录下")
    
    return 0


if __name__ == "__main__":
    sys.exit(main()) 