TA.Lowest()
函数用于计算周期最低价。
TA.Lowest()
函数返回最近一定周期内的某个属性的最小值,不包含当前Bar。
number
TA.Lowest(inReal) TA.Lowest(inReal, period, attr)
inReal
参数用于指定K线数据。
inReal
true
{@struct/Record Record}结构数组、数值数组
period
参数用于设置周期。
period
false
number
attr
参数用于设置属性,可选:Open
、Close
、Low
、High
、Volume
、OpenInterest
。
attr
false
string
function main() {
var records = exchange.GetRecords()
var lowestForOpen = TA.Lowest(records, 10, "Open")
Log(lowestForOpen)
}
def main():
records = exchange.GetRecords()
lowestForOpen = TA.Lowest(records, 10, "Open")
Log(lowestForOpen)
void main() {
auto records = exchange.GetRecords();
auto lowestForOpen = TA.Lowest(records.Open(), 10);
Log(lowestForOpen);
}
测试TA.Lowest()
函数:
例如调用TA.Lowest(records, 30, "Low")
函数,如果周期参数period
设置为0
, 指计算inReal
参数传入的K线数据的所有Bar
;如果属性参数attr
不指定,则视为inReal
参数传入的K线数据为普通数组。
C++
策略中TA.Highest()
、TA.Lowest()
函数的使用需注意,Highest()
、Lowest()
函数各自只有2个参数,
并且第一个参数传入的不是auto r = exchange.GetRecords()
函数调用时获取的K线数据r
。
需要调用r
的方法,传入具体属性数据。例如传入r.Close()
收盘价数据。
Close
、High
、Low
、Open
、Volume
如同r.Close()
调用方式。
C++
语言策略的测试范例:
void main() {
Records r;
r.Valid = true;
for (auto i = 0; i < 10; i++) {
Record ele;
ele.Time = i * 100000;
ele.High = i * 10000;
ele.Low = i * 1000;
ele.Close = i * 100;
ele.Open = i * 10;
ele.Volume = i * 1;
r.push_back(ele);
}
for(int j = 0; j < r.size(); j++){
Log(r[j]);
}
// 注意:第一个参数传入的不是r,需要调用r.Close()
auto highest = TA.Highest(r.Close(), 8);
Log(highest);
}
{@fun/TA/TA.MACD TA.MACD}, {@fun/TA/TA.KDJ TA.KDJ}, {@fun/TA/TA.RSI TA.RSI}, {@fun/TA/TA.ATR TA.ATR}, {@fun/TA/TA.OBV TA.OBV}, {@fun/TA/TA.MA TA.MA}, {@fun/TA/TA.EMA TA.EMA}, {@fun/TA/TA.BOLL TA.BOLL}, {@fun/TA/TA.Alligator TA.Alligator}, {@fun/TA/TA.CMF TA.CMF}, {@fun/TA/TA.Highest TA.Highest}
TA.Highest TA.SMA