- 5
- 0
- 约6.92千字
- 约 59页
- 2019-05-19 发布于天津
- 举报
序列参数 Params numericSeries Price(1); numeric Length(5); Vars numeric smallest(999999); // 初始值很重要! numeric i; Begin if(CurrentBar Length -1) { return InvalidNumeric; } for i=1 to Length-1 { if(Price[i] = smallest) { smallest =Price[i]; } } return smallest; End 没完没了的新需求 得到最低值与最低值的位置 没完没了的新需求 Params numericSeries Price(1); numericRef Position; Vars numericSeries smallest(999999); numericSeries i; Begin if(CurrentBar == 0) { smallest = Price; I = 0; Position = i; return smallest; }else { smallest = smallest[1]; I = i[1]; } if(price = smallest) { samllest = price; I = currentBar; } return smallest; End 关于常量和变量的定义 常量是用来代替一个数或字符串的名称 。在公式整个执行过程中不发生改变。 变量是一个存储值的地址,当变量被声明之后,就可以在脚本中使用变量,可以对其赋值,也可以在其他地方引用变量的值进行计算,要对变量进行操作,直接使用变量名称即可。 变量的主要用处在于它可以存放计算或比较的结果,以方便在之后的脚本中直接引用运算的值,而无需重现计算过程。 关于变量的类型 TradeBlazer公式支持有三种基本数据类型:数值型(Numeric)、字符串(String)、布尔型(Bool)。 为了通过用户函数返回多个值,我们对三种数据类型进行了扩展,增加了引用数据类型。另外,为了对变量,参数进行回溯,我们增加了序列数据类型。因此,我们的数据类型共有九种 9种数据类型 Bool布尔型。 BoolRef布尔型引用。 BoolSeries和周期长度一致的Bool型序列值。 Numeric数值型。 NumericRef数值型引用。 NumericSeries和周期长度一致的Numeric型序列值。 String字符串。 StringRef字符串引用。 StringSeries和周期长度一致的String型序列值。 关于参数 参数是一个预先声明的地址,用来存放输入参数的值,在声明之后,您就可以在接下来的公式中使用该参数的名称来引用其值。 参数的值在公式的内部是不能够被修改,在整个程序中一直保持不变,不能对参数进行赋值操作(引用参数是个特例)。参数的好处在于您可以在调用执行技术分析,交易指令的时候才指定相应的参数,而不需要重新编译。 详细使用参见帮助文件-公式系统-参数 交易策略-完整的交易系统 通常单个交易指令只完成建仓或平仓的单个动作,而一个完整的交易策略应该至少包含建仓、平仓交易指令,并且根据需要加上止损,获利等锁定风险和收益的交易指令。多个交易指令的组合才能更加有效的帮助我们完整的进行交易,因此,我们将多个交易指令的有效组合称之为交易策略。 交易策略的运行机制(1) 假定我们创建一个交易策略,该交易策略由以下交易指令组成,并按照如下顺序应用到超级图表中。 交易策略的运行机制(2) 当我们将该交易策略应用到超级图表上时,TradeBlazer公式将会从图表的第一个Bar开始执行交易策略,在第一个Bar上首先执行多头建仓指令A,可能会产生交易委托(开仓),该委托可能被设置为在当前Bar执行,也可以被设置为延迟到下一个Bar执行。当多头建仓指令A执行完成之后,将按顺序调用多头平仓指令B,同时该指令会判断当前的持仓状态,仓位等信息,当条件满足的时候会产生交易委托(平仓)。 交易策略的运行机制(3) 接下来依次执行止损平仓指令C和获利平仓指令D,当四个交易指令在第一个Bar上都执行完之后,将会移到第二个Bar执行,这时候,系统会首先读取上一个Bar是否有延迟的交易委托,如果有延迟的交易委托,对这些委托先进行处理,然后像第一个Bar一样,依次调用各个交易指令。以此类推,从图表的第一个Bar到最后一个Bar,全部执行完成之后,整个交易策略执行完毕。在整个执行过程产生的所有交易委托被
原创力文档

文档评论(0)