求助编写Tradestation EasyLanguage手动可调的指定价格上20Ticks画线脚本
解决Tradestation EasyLanguage手动指定价格上方20 ticks画线问题
原代码问题点
- 未定义可手动调整的
PriceToCheck参数,无法自定义指定价格 - 直接加20是固定数值,未基于SPY的tick单位(SPY最小变动单位为0.01,20 ticks应为0.20)计算,用
TickSize()函数能适配不同品种的tick规则 - 冗余的if-else逻辑无实际作用,两个分支赋值完全一致
正确脚本实现
基础版(始终显示指定价格上方20 ticks的绿线)
// 定义可手动调整的输入参数,默认值400.00,加载脚本时可修改 Input: PriceToCheck(400.00); Var: PlotPrice(0); // 计算指定价格+20 ticks的目标价格 PlotPrice = PriceToCheck + (20 * TickSize()); // 绘制绿色水平线条 Plot1(PlotPrice, "Price Line", Green);
进阶版(价格达标后才显示线条)
如果需要仅当SPY收盘价达到或超过指定价格时才显示绿线,可使用以下代码:
Input: PriceToCheck(400.00); Var: PlotPrice(0), ShowLine(False); // 当收盘价≥指定价格时,触发显示开关 if Close >= PriceToCheck then ShowLine = True; // 满足条件时绘制线条 if ShowLine then begin PlotPrice = PriceToCheck + (20 * TickSize()); Plot1(PlotPrice, "Price Line", Green); end;
代码说明
Input: PriceToCheck(400.00);:创建可手动修改的参数,你在Tradestation中加载脚本时,能在参数设置界面调整目标价格TickSize():自动获取当前品种的最小变动单位,确保20 ticks的计算准确,避免硬编码数值带来的适配问题Plot1():Tradestation的绘图函数,用于绘制指定价格的水平线条,设置线条名称和颜色为绿色
内容的提问来源于stack exchange,提问作者P R H
相关产品推荐
相关产品推荐

