保持敬畏之心
交易是一场持久战

Pine Script(38):指标与策略的基础函数设置

#Pine Script入门教学

在PineScript的世界里,我们主要开发两种程序:“分析师”(指标)和“交易员”(策略)。

分析师的工作是观察市场、进行计算,并在图表上画出各种线条和信号来给你提供建议。它通过indicator()函数进行声明。交易员更进一步,不仅会分析,还会根据分析结果直接进行模拟的买卖,并给出一份详细的回测结果。它通过strategy()函数进行声明。

虽然它们的最终目标不同,但都需要进行一些基础的函数设置。今天我们就来详细梳理一下它们的设置项,看看哪些是通用的基本信息,又有哪些是各自专属的特殊能力。

一、 通用设置:指标与策略的“基本信息”

以下这些参数,无论是在indicator()还是strategy()函数中,用法和效果都完全一样。掌握了一套,就等于两套都掌握了。

1. 身份标识
  • title (脚本标题):脚本的完整全名,会显示在图表、数据窗口、警报窗口等所有地方。这是每个脚本都应该有的“姓名”。
  • shorttitle (脚本短标题):脚本的简称或缩写,主要显示在图表左上角,用于节省空间。
2. 图表布局
  • overlay (叠加在主图):一个布尔值(truefalse)。设为true,脚本会直接画在主图的K线上(如MA均线);设为false,脚本会在下方开一个新的独立窗口(如MACD, RSI)。
  • scale (价格坐标轴):指定脚本使用哪个价格轴。scale.right用右轴(默认),scale.left用左轴,scale.none则表示脚本不依赖价格轴,自成一派。
  • linktoseries (绑定到主序列):一个布尔值。设为true后,会把脚本“锁死”在主图上,用户无法再把它拖到其他窗口。
3. 数值显示
  • format (绘图数值格式):决定脚本画出的数值在价格轴上如何显示。
    • format.price:按价格格式显示,自动匹配小数位数。
    • format.volume:按成交量格式显示,自动带上K, M, B等单位。
    • format.percent:按百分比格式显示。
  • precision (绘图数值精度):直接用数字指定绘图数值保留几位小数。这只影响显示,不影响内部计算的精度。
4. 绘图与性能
  • max_labels_count (最大标签数量):图表上允许画出的label的最大数量,最多可设为500。
  • max_lines_count (最大线条数量):图表上允许画出的line的最大数量,最多可设为500。
  • max_boxes_count (最大方框数量):图表上允许画出的box的最大数量,最多可设为500。
  • explicit_plot_zorder (显式绘图Z轴顺序):设为true时,各种绘图(plot, fill等)的叠放顺序会严格按照它们在代码里出现的顺序来,后写的会盖住先写的。
  • max_bars_back (最大回溯K线数):告诉脚本在计算时最多需要回看多少根历史K线。大部分情况程序会自动计算,少数复杂情况下需要手动指定。

二、 指标专属的能力

指标虽然不能模拟交易,但它有两个策略望尘莫及的能力,都和处理多时间周期有关:

  • timeframe (计算周期):允许指标在不同于当前图表的时间周期上进行计算。这是实现“大周期判断,小周期入场”分析的利器,比如在1小时图上看日线级别的均线。
  • timeframe_gaps (不同周期数据合并方式):在使用timeframe时,如何处理高周期数据在低周期图表上的“空隙”,是连成一条线还是保留缺口。

三、 策略专属的“交易与回测工具箱”

策略配备了一整套完善的工具箱,用于精细化地控制交易行为和回测参数。

1. 核心回测设置
  • initial_capital (初始资金):设定回测开始时账户里有多少钱。
  • currency (账户货币):设定账户的货币,如currency.USD, currency.EUR
2. 仓位与订单管理
  • pyramiding (金字塔加仓):允许在同方向上最多加仓几次。默认为0,即不允许加仓。
  • default_qty_type (默认数量类型):下单时,默认按什么方式计算手数,比如固定手数(strategy.fixed)、按资金百分比(strategy.percent_of_equity)或按固定现金价值(strategy.cash)。
  • default_qty_value (默认数量值):配合上一条,填入具体的数值,比如100股,或者资金的2%。
  • close_entries_rule (平仓规则顺序):如果有多笔同向持仓,平仓时是“先进先出”("FIFO")还是“后进先出”("LIFO")。
3. 交易成本模拟
  • slippage (滑点):为市价单和止损单在回测中模拟几个tick的滑点。
  • commission_type (佣金类型):设置佣金的计算方式,是按固定金额、成交额百分比,还是按每股/每手计算。
  • commission_value (佣金值):配合上一条,填入具体的佣金数值。
4. 计算与执行精细控制
  • calc_on_order_fills (订单成交时重新计算):设为true后,每次订单成交,策略都会立刻重新计算一次,而不是等到K线走完。
  • calc_on_every_tick (每个Tick都计算):设为true后,在实时行情中,价格每跳动一次,策略就计算一次,以追求最快的信号,但会极大增加计算量。
  • process_orders_on_close (K线收盘时处理订单):允许策略在K线结束的那个瞬间,就用收盘价去尝试撮合订单。
  • backtest_fill_limits_assumption (限价单成交假设):在回测中,价格需要穿过限价单多少个tick,才认为该订单成交。

总结

无论是指标)还是策略,它们都需要进行一系列的基础设置。但指标拥有跨时间周期计算的能力,而策略则配备了从资金、仓位到成本、执行等一整套完善的交易与回测工具箱,搞清楚这些设置,是你写出专业脚本的第一步。

赞(0)
未经允许不得转载:图道交易 » Pine Script(38):指标与策略的基础函数设置
分享到

评论 抢沙发

登录

找回密码

注册