o
    i                     @   sT   d Z ddlZddlZddlmZ dd Zddd	Zd
d Zdd Zedkr(	 dS dS )u:   
火币K线监控分析脚本
过滤型连续上涨策略
    N)datetimec                 C   sL   | dkrdS | dkrdS | dkrdS | dkrdS | d	krd
S | dkr$dS dS )u$   根据连续上涨数量返回评级   u   SS级   u   S级	   u   A级   u   B级   u   C级   u   D级N )consecutive_countr	   r	   +/root/.openclaw/workspace/huobi_analysis.py	get_grade   s   r      333333?c              	   C   s  t | dk rddg fS g }t| D ]-\}}|d }|d }|| | d }||kr+dn||k r1dnd	}	||||||	d
 qd}
d}d}d}tt |D ]}|| d dkrXqMd}d}d}d}g }g }t|t |D ]Z}|| }|d dkr|d7 }d}||d 7 }|d || qk|d dkr|dkr|dkrt|d | }||k rqk|d7 }||kr n|t|d 7 }|d || qk||
kr|}
| }|}|}|
dkr nqM|| }|
||r|fS g fS )uX  
    过滤型连续上涨分析
    
    参数:
    - klines: K线数据列表（按时间倒序，最新在前）
    - max_reverse: 允许的最大连续反向K线数量（默认2）
    - small_reverse_threshold: 小幅回调阈值（默认0.3，即30%）
    
    返回:
    - (连续上涨数量, 净涨幅, K线序列符号列表)
    r   r   g        openclosed   ZupZdownZneutral)indexr   r   
change_pct	directionNr      r   u   🔺u   ⬇️
   )len	enumerateappendrangeabscopy)klinesZmax_reverseZsmall_reverse_thresholdZcandle_changesikZ
open_priceZclose_pricer   r   Zmax_consecutiveZbest_sequenceZbest_up_gainsZbest_down_lossesZ	start_idxZconsecutive_upZreverse_countZtotal_up_gainsZtotal_down_lossessequenceZsequence_indicesZcandleZrationet_gainr	   r	   r   analyze_filtered_consecutive_up   sv   

	


r"   c                 C   sV   | ||r
|d d nddd}t |\}}}|dkr)t|}|r)||||d|d< |S )u   分析单个币种和周期r   r   N)symbolperiodcurrent_priceanalysisr   )r
   r!   grader    r&   )r"   r   )r#   r$   Zklines_dataresultr
   r!   r    r'   r	   r	   r   analyze_symbolx   s   
r)   c                 C   s   t | }|dg S )u   解析火币API响应data)jsonloadsget)Zjson_strr*   r	   r	   r   parse_kline_response   s   
r.   __main__)r   r   )	__doc__r+   timer   r   r"   r)   r.   __name__r	   r	   r	   r   <module>   s   
[