/* *
*  @ brief
*  This script shows the real-time computation workflow for all 158 Alpha158 factors.
*  Each factor is written as an independent streamEngineParser example, following
*  the style of gtja191StreamTest.dos.
*  @ FileName: alpha158StreamTest.dos
*/

use alpha158

dataFilePath = "/YOURDIR/datatest.csv"
hisDataRaw = loadText(dataFilePath)
hisDataBase = select securityid as SecurityID, tradetime as TradeTime, open, close, high, low, vol, vwap from hisDataRaw order by securityid, tradetime
hisData = select *, cumcount(TradeTime) as timeIndex from hisDataBase context by SecurityID

// Clear existing stream engines before running this demo.
def dropAllStreamEngines(){
    engineStatus = getStreamEngineStat()
    allCurrentEngineTypes = engineStatus.keys()
    for(eachEngineType in allCurrentEngineTypes){
        engineInfoTable = engineStatus[eachEngineType]
        for(eachEngineName in engineInfoTable.name){
            try{
                dropStreamEngine(eachEngineName)
                print("drop stream engine", eachEngineName, "success")
            }
            catch(ex){
                print("drop stream engine", eachEngineName, "failed:", ex)
            }
        }
    }
}

dropAllStreamEngines()

inputSchema = table(
    1:0,
    ["SecurityID", "TradeTime", "open", "close", "high", "low", "vol", "vwap", "timeIndex"],
    [SYMBOL, TIMESTAMP, DOUBLE, DOUBLE, DOUBLE, DOUBLE, DOUBLE, DOUBLE, INT]
)

inputData = select SecurityID, TradeTime, open, close, high, low, vol, vwap, timeIndex from hisData order by TradeTime



// Alpha158 factor 1: klen
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, klen(high, low, open)]>
streamEngine = streamEngineParser(
    name="alpha158KlenParser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 2: kmid
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, kmid(close, open)]>
streamEngine = streamEngineParser(
    name="alpha158KmidParser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 3: kmid2
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, kmid2(close, high, low, open)]>
streamEngine = streamEngineParser(
    name="alpha158Kmid2Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 4: kup
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, kup(close, high, open)]>
streamEngine = streamEngineParser(
    name="alpha158KupParser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 5: kup2
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, kup2(close, high, low, open)]>
streamEngine = streamEngineParser(
    name="alpha158Kup2Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 6: klow
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, klow(close, low, open)]>
streamEngine = streamEngineParser(
    name="alpha158KlowParser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 7: klow2
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, klow2(close, high, low, open)]>
streamEngine = streamEngineParser(
    name="alpha158Klow2Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 8: ksft
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, ksft(close, high, low, open)]>
streamEngine = streamEngineParser(
    name="alpha158KsftParser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 9: ksft2
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, ksft2(close, high, low, open)]>
streamEngine = streamEngineParser(
    name="alpha158Ksft2Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 10: open0
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, open0(open, close)]>
streamEngine = streamEngineParser(
    name="alpha158Open0Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 11: high0
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, high0(high, close)]>
streamEngine = streamEngineParser(
    name="alpha158High0Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 12: low0
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, low0(low, close)]>
streamEngine = streamEngineParser(
    name="alpha158Low0Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 13: vwap0
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vwap0(vwap, close)]>
streamEngine = streamEngineParser(
    name="alpha158Vwap0Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 14: roc5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, roc5(close)]>
streamEngine = streamEngineParser(
    name="alpha158Roc5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 15: roc10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, roc10(close)]>
streamEngine = streamEngineParser(
    name="alpha158Roc10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 16: roc20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, roc20(close)]>
streamEngine = streamEngineParser(
    name="alpha158Roc20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 17: roc30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, roc30(close)]>
streamEngine = streamEngineParser(
    name="alpha158Roc30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 18: roc60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, roc60(close)]>
streamEngine = streamEngineParser(
    name="alpha158Roc60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 19: ma5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, ma5(close)]>
streamEngine = streamEngineParser(
    name="alpha158Ma5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 20: ma10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, ma10(close)]>
streamEngine = streamEngineParser(
    name="alpha158Ma10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 21: ma20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, ma20(close)]>
streamEngine = streamEngineParser(
    name="alpha158Ma20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 22: ma30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, ma30(close)]>
streamEngine = streamEngineParser(
    name="alpha158Ma30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 23: ma60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, ma60(close)]>
streamEngine = streamEngineParser(
    name="alpha158Ma60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 24: beta5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, beta5(close)]>
streamEngine = streamEngineParser(
    name="alpha158Beta5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 25: beta10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, beta10(close)]>
streamEngine = streamEngineParser(
    name="alpha158Beta10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 26: beta20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, beta20(close)]>
streamEngine = streamEngineParser(
    name="alpha158Beta20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 27: beta30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, beta30(close)]>
streamEngine = streamEngineParser(
    name="alpha158Beta30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 28: beta60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, beta60(close)]>
streamEngine = streamEngineParser(
    name="alpha158Beta60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 29: rsquare5
// rsquare uses timeIndex for streamEngineParser compatibility.
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, mcorr(close, timeIndex, 5) * mcorr(close, timeIndex, 5)]>
streamEngine = streamEngineParser(
    name="alpha158Rsquare5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 30: rsquare10
// rsquare uses timeIndex for streamEngineParser compatibility.
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, mcorr(close, timeIndex, 10) * mcorr(close, timeIndex, 10)]>
streamEngine = streamEngineParser(
    name="alpha158Rsquare10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 31: rsquare20
// rsquare uses timeIndex for streamEngineParser compatibility.
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, mcorr(close, timeIndex, 20) * mcorr(close, timeIndex, 20)]>
streamEngine = streamEngineParser(
    name="alpha158Rsquare20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 32: rsquare30
// rsquare uses timeIndex for streamEngineParser compatibility.
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, mcorr(close, timeIndex, 30) * mcorr(close, timeIndex, 30)]>
streamEngine = streamEngineParser(
    name="alpha158Rsquare30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 33: rsquare60
// rsquare uses timeIndex for streamEngineParser compatibility.
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, mcorr(close, timeIndex, 60) * mcorr(close, timeIndex, 60)]>
streamEngine = streamEngineParser(
    name="alpha158Rsquare60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 34: resi5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, resi5(close)]>
streamEngine = streamEngineParser(
    name="alpha158Resi5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 35: resi10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, resi10(close)]>
streamEngine = streamEngineParser(
    name="alpha158Resi10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 36: resi20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, resi20(close)]>
streamEngine = streamEngineParser(
    name="alpha158Resi20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 37: resi30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, resi30(close)]>
streamEngine = streamEngineParser(
    name="alpha158Resi30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 38: resi60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, resi60(close)]>
streamEngine = streamEngineParser(
    name="alpha158Resi60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 39: std5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, std5(close)]>
streamEngine = streamEngineParser(
    name="alpha158Std5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 40: std10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, std10(close)]>
streamEngine = streamEngineParser(
    name="alpha158Std10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 41: std20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, std20(close)]>
streamEngine = streamEngineParser(
    name="alpha158Std20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 42: std30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, std30(close)]>
streamEngine = streamEngineParser(
    name="alpha158Std30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 43: std60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, std60(close)]>
streamEngine = streamEngineParser(
    name="alpha158Std60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 44: max5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, max5(high, close)]>
streamEngine = streamEngineParser(
    name="alpha158Max5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 45: max10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, max10(high, close)]>
streamEngine = streamEngineParser(
    name="alpha158Max10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 46: max20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, max20(high, close)]>
streamEngine = streamEngineParser(
    name="alpha158Max20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 47: max30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, max30(high, close)]>
streamEngine = streamEngineParser(
    name="alpha158Max30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 48: max60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, max60(high, close)]>
streamEngine = streamEngineParser(
    name="alpha158Max60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 49: min5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, min5(low, close)]>
streamEngine = streamEngineParser(
    name="alpha158Min5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 50: min10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, min10(low, close)]>
streamEngine = streamEngineParser(
    name="alpha158Min10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 51: min20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, min20(low, close)]>
streamEngine = streamEngineParser(
    name="alpha158Min20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 52: min30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, min30(low, close)]>
streamEngine = streamEngineParser(
    name="alpha158Min30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 53: min60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, min60(low, close)]>
streamEngine = streamEngineParser(
    name="alpha158Min60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 54: quantile80_5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, quantile80_5(close)]>
streamEngine = streamEngineParser(
    name="alpha158Quantile80_5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 55: quantile80_10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, quantile80_10(close)]>
streamEngine = streamEngineParser(
    name="alpha158Quantile80_10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 56: quantile80_20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, quantile80_20(close)]>
streamEngine = streamEngineParser(
    name="alpha158Quantile80_20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 57: quantile80_30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, quantile80_30(close)]>
streamEngine = streamEngineParser(
    name="alpha158Quantile80_30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 58: quantile80_60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, quantile80_60(close)]>
streamEngine = streamEngineParser(
    name="alpha158Quantile80_60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 59: quantile20_5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, quantile20_5(close)]>
streamEngine = streamEngineParser(
    name="alpha158Quantile20_5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 60: quantile20_10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, quantile20_10(close)]>
streamEngine = streamEngineParser(
    name="alpha158Quantile20_10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 61: quantile20_20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, quantile20_20(close)]>
streamEngine = streamEngineParser(
    name="alpha158Quantile20_20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 62: quantile20_30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, quantile20_30(close)]>
streamEngine = streamEngineParser(
    name="alpha158Quantile20_30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 63: quantile20_60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, quantile20_60(close)]>
streamEngine = streamEngineParser(
    name="alpha158Quantile20_60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 64: rsv5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, rsv5(close, high, low)]>
streamEngine = streamEngineParser(
    name="alpha158Rsv5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 65: rsv10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, rsv10(close, high, low)]>
streamEngine = streamEngineParser(
    name="alpha158Rsv10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 66: rsv20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, rsv20(close, high, low)]>
streamEngine = streamEngineParser(
    name="alpha158Rsv20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 67: rsv30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, rsv30(close, high, low)]>
streamEngine = streamEngineParser(
    name="alpha158Rsv30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 68: rsv60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, rsv60(close, high, low)]>
streamEngine = streamEngineParser(
    name="alpha158Rsv60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 69: imax5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imax5(high)]>
streamEngine = streamEngineParser(
    name="alpha158Imax5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 70: imax10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imax10(high)]>
streamEngine = streamEngineParser(
    name="alpha158Imax10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 71: imax20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imax20(high)]>
streamEngine = streamEngineParser(
    name="alpha158Imax20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 72: imax30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imax30(high)]>
streamEngine = streamEngineParser(
    name="alpha158Imax30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 73: imax60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imax60(high)]>
streamEngine = streamEngineParser(
    name="alpha158Imax60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 74: imin5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imin5(low)]>
streamEngine = streamEngineParser(
    name="alpha158Imin5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 75: imin10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imin10(low)]>
streamEngine = streamEngineParser(
    name="alpha158Imin10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 76: imin20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imin20(low)]>
streamEngine = streamEngineParser(
    name="alpha158Imin20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 77: imin30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imin30(low)]>
streamEngine = streamEngineParser(
    name="alpha158Imin30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 78: imin60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imin60(low)]>
streamEngine = streamEngineParser(
    name="alpha158Imin60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 79: imxd5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imxd5(high, low)]>
streamEngine = streamEngineParser(
    name="alpha158Imxd5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 80: imxd10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imxd10(high, low)]>
streamEngine = streamEngineParser(
    name="alpha158Imxd10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 81: imxd20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imxd20(high, low)]>
streamEngine = streamEngineParser(
    name="alpha158Imxd20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 82: imxd30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imxd30(high, low)]>
streamEngine = streamEngineParser(
    name="alpha158Imxd30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 83: imxd60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, imxd60(high, low)]>
streamEngine = streamEngineParser(
    name="alpha158Imxd60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 84: corr5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, corr5(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Corr5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 85: corr10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, corr10(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Corr10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 86: corr20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, corr20(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Corr20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 87: corr30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, corr30(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Corr30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 88: corr60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, corr60(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Corr60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 89: cord5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cord5(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Cord5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 90: cord10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cord10(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Cord10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 91: cord20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cord20(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Cord20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 92: cord30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cord30(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Cord30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 93: cord60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cord60(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Cord60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 94: cntp5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntp5(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntp5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 95: cntp10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntp10(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntp10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 96: cntp20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntp20(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntp20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 97: cntp30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntp30(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntp30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 98: cntp60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntp60(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntp60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 99: cntn5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntn5(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntn5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 100: cntn10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntn10(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntn10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 101: cntn20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntn20(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntn20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 102: cntn30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntn30(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntn30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 103: cntn60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntn60(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntn60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 104: cntd5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntd5(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntd5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 105: cntd10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntd10(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntd10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 106: cntd20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntd20(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntd20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 107: cntd30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntd30(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntd30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 108: cntd60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, cntd60(close)]>
streamEngine = streamEngineParser(
    name="alpha158Cntd60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 109: sump5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sump5(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sump5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 110: sump10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sump10(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sump10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 111: sump20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sump20(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sump20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 112: sump30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sump30(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sump30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 113: sump60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sump60(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sump60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 114: sumn5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sumn5(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sumn5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 115: sumn10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sumn10(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sumn10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 116: sumn20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sumn20(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sumn20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 117: sumn30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sumn30(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sumn30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 118: sumn60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sumn60(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sumn60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 119: sumd5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sumd5(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sumd5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 120: sumd10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sumd10(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sumd10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 121: sumd20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sumd20(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sumd20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 122: sumd30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sumd30(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sumd30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 123: sumd60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, sumd60(close)]>
streamEngine = streamEngineParser(
    name="alpha158Sumd60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 124: vma5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vma5(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vma5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 125: vma10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vma10(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vma10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 126: vma20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vma20(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vma20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 127: vma30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vma30(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vma30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 128: vma60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vma60(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vma60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 129: vstd5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vstd5(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vstd5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 130: vstd10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vstd10(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vstd10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 131: vstd20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vstd20(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vstd20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 132: vstd30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vstd30(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vstd30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 133: vstd60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vstd60(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vstd60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 134: wvma5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, wvma5(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Wvma5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 135: wvma10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, wvma10(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Wvma10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 136: wvma20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, wvma20(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Wvma20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 137: wvma30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, wvma30(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Wvma30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 138: wvma60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, wvma60(close, vol)]>
streamEngine = streamEngineParser(
    name="alpha158Wvma60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 139: vsump5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsump5(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsump5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 140: vsump10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsump10(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsump10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 141: vsump20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsump20(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsump20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 142: vsump30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsump30(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsump30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 143: vsump60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsump60(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsump60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 144: vsumn5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsumn5(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsumn5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 145: vsumn10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsumn10(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsumn10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 146: vsumn20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsumn20(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsumn20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 147: vsumn30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsumn30(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsumn30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 148: vsumn60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsumn60(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsumn60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 149: vsumd5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsumd5(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsumd5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 150: vsumd10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsumd10(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsumd10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 151: vsumd20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsumd20(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsumd20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 152: vsumd30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsumd30(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsumd30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 153: vsumd60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, vsumd60(vol)]>
streamEngine = streamEngineParser(
    name="alpha158Vsumd60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 154: rank5
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, rank5(close)]>
streamEngine = streamEngineParser(
    name="alpha158Rank5Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 155: rank10
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, rank10(close)]>
streamEngine = streamEngineParser(
    name="alpha158Rank10Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 156: rank20
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, rank20(close)]>
streamEngine = streamEngineParser(
    name="alpha158Rank20Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 157: rank30
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, rank30(close)]>
streamEngine = streamEngineParser(
    name="alpha158Rank30Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()


// Alpha158 factor 158: rank60
resultStream = table(10000:0, ["SecurityID", "TradeTime", "factor"], [SYMBOL, TIMESTAMP, DOUBLE])
metrics = <[SecurityID, rank60(close)]>
streamEngine = streamEngineParser(
    name="alpha158Rank60Parser",
    metrics=metrics,
    dummyTable=inputSchema,
    outputTable=resultStream,
    keyColumn="SecurityID",
    timeColumn=`TradeTime,
    triggeringPattern='keyCount',
    triggeringInterval=4000
)
streamEngine.append!(inputData)
res = exec factor from resultStream pivot by TradeTime, SecurityID
getStreamEngineStat()
dropAllStreamEngines()
