资源加载中... loading...

TA.Lowest

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参数用于设置属性,可选:OpenCloseLowHighVolumeOpenInterest。 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()收盘价数据。 CloseHighLowOpenVolume如同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