零基础打造专属交易指标:thinkScript 从入门到实战

·

关键词:thinkScript、量化交易、自定义指标、策略回溯、技术分析、移动平均、波动率、股票警报

想用技术神器把市场拉近到指尖,却卡在“不会写代码”?thinkScript® 帮你把编程门槛降到最低:只需拖拽式思维 + 几句“类英语”脚本,就能在 thinkorswim® 上打造完全属于你自己的技术指标。本篇实战指南按操作流拆分,从第一段代码到第一笔模拟交易,一站式带你通关。


为什么一定要学 thinkScript?


入门温泉:用 Charts 面板写第一段代码

step-by-step 流程

  1. 打开 Charts → 右侧点击 Studies → 点 Edit studies…
  2. 在弹窗 Edit Studies and Strategies 左下角点击 Create
  3. 删掉示例代码,直接粘你的脚本(下方示范:10-30 天均线交叉)

代码示例:MyFirstCross

def ten   = reference SimpleMovingAvg(length = 10);
def thirty = reference SimpleMovingAvg(length = 30);

plot S10  = ten;
plot S30  = thirty;

保存后点击 Apply,图表立即长出两条光亮的均线。


用 MarketWatch 打造动态行情列

不仅 K 图能用,行情报价表也能“私人订制”。场景:想看某只股票的 3 个月 IV 分位点(隐含波动率高低),系统自带的是 1 年期,咱换个 60 日版本。

只需七步

  1. MarketWatchQuotes → 右上角齿轮 → Customize…
  2. 拉到 Available Items,双击任意 Custom
  3. thinkScript Editor 填入:
def ivol   = imp_volatility(period = AggregationPeriod.DAY);
def lowvol = lowest(ivol, 60);
def highvol = highest(ivol, 60);
def currentvol = if !IsNaN(ivol) then ivol else 0;

plot IV_60Rank = 100 * (currentvol - lowvol) / max(highvol - lowvol, 0.001);
label IV_60Rank;
  1. Apply → 给列起个直观名字 “IV_60”
  2. 回到表头立刻看到 实时 3M IV Rank:高还是低一眼扫清

👉 想冲出固化框架,体验更高效的进阶功能?


策略回溯:一条代码跑完 10 年盈亏

写策略≠拍脑袋,要让历史数据告诉我们行不行。继续用 10-30 均线举个例子。

打开策略入口

  1. ChartsStudiesEdit studies…
  2. 左上角切到 StrategiesCreate
  3. 粘贴策略代码,直接复用上方 MyFirstCross 变量:
AddOrder(OrderType.BUY_AUTO,  S10 crosses above S30, tickColor = GetColor(6));
AddOrder(OrderType.SELL_AUTO, S10 crosses below S30, tickColor = GetColor(5));
  1. 命名如 MovingAvgCross_Strategy,点击 OK & Apply

图表瞬间出现箭头,右键任一箭头 → Show Report 弹出完整理赔表单。胜率、最大回撤、盈亏比一次过完筛,心中有数再去实盘。


额外增值:自定义警报

让市场替你盯盘,条件触发推送到手机。

五步搞定

  1. MarketWatch → Alerts → Study Alert
  2. 切到 thinkScript Editor 删掉默认,输入:
plot alarm = SimpleMovingAvg(30) > SimpleMovingAvg(10);
  1. Trigger Ifalarm equals true
  2. Create Alert → 记得去 Setup → Application Settings → Notifications 勾上 Alert is triggered
  3. 短信+APP 推送,行情动起来立刻通知

👉 一键解锁量化神器,无门槛实现策略自动化


常见问题 FAQ

Q1:写错语法后全篇红色怎么办?
A:每行末尾必须有分号 ;,函数括号成对,错行都会以红色高亮提示,按提示逐行排雷即可。

Q2:想改均线颜色、粗细?
A:在 plot 末尾加 , color = Color.RED, linewidth = 2 等参数即可。

Q3:能否一次性把策略改到 60 分钟级别?
A:在右上角 Aggregation 选择 1H,脚本自动按新周期计算,无需重写。

Q4:策略带手续费吗?
A:报告仅按理论 P&L,未算滑点与佣金,需线下再扣实际成本。

Q5:definput 有什么区别?
A:def 是固定值;input 则允许在实际图表中实时修改,适合做参数面板。

Q6:能在手机端修改脚本吗?
A:目前移动端仅支持查看已加载脚本的结果,编辑仍需桌面端完成。


写在最后

用 thinkScript 自定义技术指标不难,难的是把交易系统化地拆分、验证并落地。从一条均线交叉开始,你已拥有改写盈亏底层逻辑的钥匙。下一段代码,也许就是量化的密码。