关键词:thinkScript、量化交易、自定义指标、策略回溯、技术分析、移动平均、波动率、股票警报
想用技术神器把市场拉近到指尖,却卡在“不会写代码”?thinkScript® 帮你把编程门槛降到最低:只需拖拽式思维 + 几句“类英语”脚本,就能在 thinkorswim® 上打造完全属于你自己的技术指标。本篇实战指南按操作流拆分,从第一段代码到第一笔模拟交易,一站式带你通关。
为什么一定要学 thinkScript?
- 自研指标更贴合个人交易风格,消除通用指标滞后性。
- 一次编写,多终端同步:图表、行情列表、移动警报一个不落。
- 无需专业背景:def、plot 等“类英语”命令写完就能跑。
入门温泉:用 Charts 面板写第一段代码
step-by-step 流程
- 打开 Charts → 右侧点击 Studies → 点 Edit studies…
- 在弹窗 Edit Studies and Strategies 左下角点击 Create
- 删掉示例代码,直接粘你的脚本(下方示范:10-30 天均线交叉)
代码示例:MyFirstCross
def ten = reference SimpleMovingAvg(length = 10);
def thirty = reference SimpleMovingAvg(length = 30);
plot S10 = ten;
plot S30 = thirty;
- def 建“变量名”,类似中文“设”
- reference 调用系统自带的 SimpleMovingAvg,省时不踩坑
- plot 让两线实时画在图上,即见即得
保存后点击 Apply,图表立即长出两条光亮的均线。
用 MarketWatch 打造动态行情列
不仅 K 图能用,行情报价表也能“私人订制”。场景:想看某只股票的 3 个月 IV 分位点(隐含波动率高低),系统自带的是 1 年期,咱换个 60 日版本。
只需七步
- MarketWatch → Quotes → 右上角齿轮 → Customize…
- 拉到 Available Items,双击任意 Custom 行
- 在 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;
- Apply → 给列起个直观名字 “IV_60”
- 回到表头立刻看到 实时 3M IV Rank:高还是低一眼扫清
策略回溯:一条代码跑完 10 年盈亏
写策略≠拍脑袋,要让历史数据告诉我们行不行。继续用 10-30 均线举个例子。
打开策略入口
- Charts → Studies → Edit studies…
- 左上角切到 Strategies → Create
- 粘贴策略代码,直接复用上方
MyFirstCross
变量:
AddOrder(OrderType.BUY_AUTO, S10 crosses above S30, tickColor = GetColor(6));
AddOrder(OrderType.SELL_AUTO, S10 crosses below S30, tickColor = GetColor(5));
- AddOrder → 标记买卖点
- GetColor(6) 绿色箭头多头,GetColor(5) 红色箭头空头
- 命名如 MovingAvgCross_Strategy,点击 OK & Apply
图表瞬间出现箭头,右键任一箭头 → Show Report 弹出完整理赔表单。胜率、最大回撤、盈亏比一次过完筛,心中有数再去实盘。
额外增值:自定义警报
让市场替你盯盘,条件触发推送到手机。
五步搞定
- MarketWatch → Alerts → Study Alert
- 切到 thinkScript Editor 删掉默认,输入:
plot alarm = SimpleMovingAvg(30) > SimpleMovingAvg(10);
- 设 Trigger If → alarm equals true
- Create Alert → 记得去 Setup → Application Settings → Notifications 勾上 Alert is triggered
- 短信+APP 推送,行情动起来立刻通知
常见问题 FAQ
Q1:写错语法后全篇红色怎么办?
A:每行末尾必须有分号 ;
,函数括号成对,错行都会以红色高亮提示,按提示逐行排雷即可。
Q2:想改均线颜色、粗细?
A:在 plot
末尾加 , color = Color.RED, linewidth = 2
等参数即可。
Q3:能否一次性把策略改到 60 分钟级别?
A:在右上角 Aggregation 选择 1H,脚本自动按新周期计算,无需重写。
Q4:策略带手续费吗?
A:报告仅按理论 P&L,未算滑点与佣金,需线下再扣实际成本。
Q5:def 和 input 有什么区别?
A:def
是固定值;input
则允许在实际图表中实时修改,适合做参数面板。
Q6:能在手机端修改脚本吗?
A:目前移动端仅支持查看已加载脚本的结果,编辑仍需桌面端完成。
写在最后
用 thinkScript 自定义技术指标不难,难的是把交易系统化地拆分、验证并落地。从一条均线交叉开始,你已拥有改写盈亏底层逻辑的钥匙。下一段代码,也许就是量化的密码。