如何仅在伦敦/纽约交易时段绘图及显示Fractal(分形)?
仅在伦敦/纽约交易时段绘图及显示分形的实现方法
一、定义伦敦&纽约交易时段的判断条件
首先需要明确两个交易时段的时间范围,通过逻辑或(or)判断当前K线是否处于任意一个目标时段内。建议明确指定时区,避免夏令时等时区转换误差:
// 定义伦敦交易时段(GMT时区,常规时段08:00-16:00) london_session = input.session("0800-1600", "伦敦交易时段", timezone="GMT") // 定义纽约交易时段(EST时区,常规时段08:00-16:00) ny_session = input.session("0800-1600", "纽约交易时段", timezone="EST") // 判断当前K线是否处于伦敦或纽约时段(:1234567表示包含一周所有日期,按需可改为:12345仅保留工作日) in_target_session = time(timeframe.period, london_session + ":1234567") or time(timeframe.period, ny_session + ":1234567")
二、仅在目标时段显示分形
你之前的代码错误在于直接用if语句包裹plotshape,Pine Script的绘图函数需通过condition参数控制显示时机。修改后的分形代码如下:
// 假设你已提前定义filteredtopf变量 plotshape( series=filteredtopf, title='Top Fractals', style=shape.triangledown, location=location.abovebar, color=color.new(color.white, 0), offset=-2, display=display.all - display.price_scale - display.status_line, condition=in_target_session // 核心控制:仅在目标时段显示分形 )
三、仅在目标时段绘图的通用方法
如果是其他指标绘图(如均线、趋势线等),同样通过condition参数实现:
// 示例:仅在目标时段绘制20周期SMA均线 sma_val = ta.sma(close, 20) plot(sma_val, title="SMA 20", color=color.blue, condition=in_target_session)
内容的提问来源于stack exchange,提问作者Marcel Fernandes
相关产品推荐
相关产品推荐

