Pine Script Developer 是一个专门用于编写生产级 Pine Script v6 代码的技能,面向 TradingView 平台。它旨在帮助开发者实现指标、策略或任何 Pine Script 脚本,并严格遵循 TradingView 的指南和最佳实践。
用途
该技能主要用于在 TradingView 上开发高质量的 Pine Script v6 脚本。它适用于需要编写指标、策略、警报条件或任何自定义脚本的场景。通过提供详细的语法规则、代码结构模板和最佳实践,它帮助开发者避免常见错误并提高代码质量。
主要能力
- Pine Script v6 精通:全面理解 v6 语法、所有内置函数及其正确用法、变量作用域和命名空间、序列与简单值的区别、请求函数(如 request.security 和 request.security_lower_tf)。
- TradingView 环境:了解平台限制(如 500 根历史引用、500 个 plot/hline/fill 输出、64 个绘图对象、40 个 security() 调用、100KB 编译脚本大小、表格最多 100 个单元格、数组最多 100,000 个元素)、执行模型和计算阶段、实时与历史 K 线状态、警报系统能力与约束、库开发标准。
- 代码质量标准:编写干净、可读的代码结构,正确处理 na 值,高效计算以减少加载时间,适当使用 var/varip 进行持久化,以及正确的类型声明。
- 行换行规则:严格遵循 Pine Script 的续行规则,包括缩进规则(续行必须比第一行缩进更多)、在运算符或逗号后换行、函数参数缩进、不使用显式续行字符。特别强调三元运算符必须保持在同一行,或使用中间变量。
- 脚本结构模板:提供标准的脚本结构,包括版本声明、指标/策略声明、输入、计算、条件、绘图和警报部分。
- plot 作用域限制:禁止在局部作用域中使用 plot(),并提供替代方案,如条件绘图或使用 line.new、label.new、box.new 进行动态绘图。
- 最佳实践:避免重绘(使用 barstate.isconfirmed、正确使用 request.security 的 lookahead 参数)、性能优化(减少 security() 调用、缓存重复计算、使用 switch 代替多个 if、优化数组操作)、用户体验(逻辑分组输入、提供工具提示、合理默认值、清晰标签)、错误处理(检查 na 值、处理边界情况、数据不可用时的优雅降级)。
- 代码审查清单:提供详细的检查项,包括版本声明、标题和 overlay 设置、输入工具提示和分组、无重绘问题、na 值处理、高效计算、清晰变量名、复杂逻辑注释、绘图样式、警报条件等。
使用方式
该技能通过文档访问和项目文件管理来使用。主要文档参考包括:
/docs/pinescript-v6/quick-reference/syntax-basics.md- 核心语法和结构/docs/pinescript-v6/reference-tables/function-index.md- 完整函数参考/docs/pinescript-v6/core-concepts/execution-model.md- 理解 Pine Script 执行/docs/pinescript-v6/core-concepts/repainting.md- 避免重绘问题/docs/pinescript-v6/quick-reference/limitations.md- 平台限制和变通方法
在项目文件管理方面,建议从重命名 blank.pine 开始新项目,始终将工作保存到 /projects/[project-name].pine,除非多文件项目需要,否则不要创建新文件,并更新文件头以包含准确的项目信息。
适用场景
该技能适用于任何需要在 TradingView 上编写 Pine Script v6 代码的场景,包括开发技术指标、交易策略、警报系统、自定义绘图等。它特别适合需要生产级代码质量、避免常见语法错误、优化性能并遵循平台最佳实践的开发者。
限制
该技能受限于 TradingView 平台本身的约束,如历史引用限制、绘图对象数量限制、security() 调用次数限制、编译脚本大小限制等。此外,它不提供关于交易策略盈利能力的保证,也不涉及具体交易建议。所有代码需在 TradingView 环境中测试和验证。