重要更新提示:增补139个公式指标函数

Discussion in '强者博弈证券期货自动交易系统' started by yzwyq, Jan 10, 2013.

  1. 本软件春节前最重要的一次更新,已经上传。

    本次更新主要是在语法层支持向量运算,也就是指标运算。

    考虑到指标算法的标准性,这次所有公式类指标全部来自

    开源ta-lib-0.4.0-msvc指标库。
    AD Chaikin A/D Line
    ADOSC Chaikin A/D Oscillator
    ADX Average Directional Movement Index
    ADXR Average Directional Movement Index Rating
    APO Absolute Price Oscillator
    AROON Aroon
    AROONOSC Aroon Oscillator
    ATR Average True Range
    AVGPRICE Average Price
    BBANDS Bollinger Bands
    BETA Beta
    BOP Balance Of Power
    CCI Commodity Channel Index
    CDL2CROWS Two Crows
    CDL3BLACKCROWS Three Black Crows
    CDL3INSIDE Three Inside Up/Down
    CDL3LINESTRIKE Three-Line Strike
    CDL3OUTSIDE Three Outside Up/Down
    CDL3STARSINSOUTH Three Stars In The South
    CDL3WHITESOLDIERS Three Advancing White Soldiers
    CDLABANDONEDBABY Abandoned Baby
    CDLADVANCEBLOCK Advance Block
    CDLBELTHOLD Belt-hold
    CDLBREAKAWAY Breakaway
    CDLCLOSINGMARUBOZU Closing Marubozu
    CDLCONCEALBABYSWALL Concealing Baby Swallow
    CDLCOUNTERATTACK Counterattack
    CDLDARKCLOUDCOVER Dark Cloud Cover
    CDLDOJI Doji
    CDLDOJISTAR Doji Star
    CDLDRAGONFLYDOJI Dragonfly Doji
    CDLENGULFING Engulfing Pattern
    CDLEVENINGDOJISTAR Evening Doji Star
    CDLEVENINGSTAR Evening Star
    CDLGAPSIDESIDEWHITE Up/Down-gap side-by-side white lines
    CDLGRAVESTONEDOJI Gravestone Doji
    CDLHAMMER Hammer
    CDLHANGINGMAN Hanging Man
    CDLHARAMI Harami Pattern
    CDLHARAMICROSS Harami Cross Pattern
    CDLHIGHWAVE High-Wave Candle
    CDLHIKKAKE Hikkake Pattern
    CDLHIKKAKEMOD Modified Hikkake Pattern
    CDLHOMINGPIGEON Homing Pigeon
    CDLIDENTICAL3CROWS Identical Three Crows
    CDLINNECK In-Neck Pattern
    CDLINVERTEDHAMMER Inverted Hammer
    CDLKICKING Kicking
    CDLKICKINGBYLENGTH Kicking - bull/bear determined by the longer marubozu
    CDLLADDERBOTTOM Ladder Bottom
    CDLLONGLEGGEDDOJI Long Legged Doji
    CDLLONGLINE Long Line Candle
    CDLMARUBOZU Marubozu
    CDLMATCHINGLOW Matching Low
    CDLMATHOLD Mat Hold
    CDLMORNINGDOJISTAR Morning Doji Star
    CDLMORNINGSTAR Morning Star
    CDLONNECK On-Neck Pattern
    CDLPIERCING Piercing Pattern
    CDLRICKSHAWMAN Rickshaw Man
    CDLRISEFALL3METHODS Rising/Falling Three Methods
    CDLSEPARATINGLINES Separating Lines
    CDLSHOOTINGSTAR Shooting Star
    CDLSHORTLINE Short Line Candle
    CDLSPINNINGTOP Spinning Top
    CDLSTALLEDPATTERN Stalled Pattern
    CDLSTICKSANDWICH Stick Sandwich
    CDLTAKURI Takuri (Dragonfly Doji with very long lower shadow)
    CDLTASUKIGAP Tasuki Gap
    CDLTHRUSTING Thrusting Pattern
    CDLTRISTAR Tristar Pattern
    CDLUNIQUE3RIVER Unique 3 River
    CDLUPSIDEGAP2CROWS Upside Gap Two Crows
    CDLXSIDEGAP3METHODS Upside/Downside Gap Three Methods
    CMO Chande Momentum Oscillator
    CORREL Pearson's Correlation Coefficient (r)
    DEMA Double Exponential Moving Average
    DX Directional Movement Index
    EMA Exponential Moving Average
    HT_DCPERIOD Hilbert Transform - Dominant Cycle Period
    HT_DCPHASE Hilbert Transform - Dominant Cycle Phase
    HT_PHASOR Hilbert Transform - Phasor Components
    HT_SINE Hilbert Transform - SineWave
    HT_TRENDLINE Hilbert Transform - Instantaneous Trendline
    HT_TRENDMODE Hilbert Transform - Trend vs Cycle Mode

    KAMA Kaufman Adaptive Moving Average
    LINEARREG Linear Regression
    LINEARREG_ANGLE Linear Regression Angle
    LINEARREG_INTERCEPT Linear Regression Intercept
    LINEARREG_SLOPE Linear Regression Slope
    MA All Moving Average
    MACD Moving Average Convergence/Divergence
    MACDEXT MACD with controllable MA type
    MACDFIX Moving Average Convergence/Divergence Fix 12/26
    MAMA MESA Adaptive Moving Average
    TA_MAVP Moving average with variable period
    MAX Highest value over a specified period
    MAXINDEX Index of highest value over a specified period
    MEDPRICE Median Price
    MFI Money Flow Index
    MIDPOINT MidPoint over period
    MIDPRICE Midpoint Price over period
    MIN Lowest value over a specified period
    MININDEX Index of lowest value over a specified period
    MINMAX Lowest and highest values over a specified period
    MINMAXINDEX Indexes of lowest and highest values over a specified period
    MINUS_DI Minus Directional Indicator
    MINUS_DM Minus Directional Movement
    MOM Momentum
    NATR Normalized Average True Range
    OBV On Balance Volume
    PLUS_DI Plus Directional Indicator
    PLUS_DM Plus Directional Movement
    PPO Percentage Price Oscillator
    ROC Rate of change : ((price/prevPrice)-1)*100
    ROCP Rate of change Percentage: (price-prevPrice)/prevPrice
    ROCR Rate of change ratio: (price/prevPrice)
    ROCR100 Rate of change ratio 100 scale: (price/prevPrice)*100
    RSI Relative Strength Index
    SAR Parabolic SAR
    SAREXT Parabolic SAR - Extended
    SMA Simple Moving Average
    STDDEV Standard Deviation
    STOCH Stochastic
    STOCHF Stochastic Fast
    STOCHRSI Stochastic Relative Strength Index
    SUM Summation
    T3 Triple Exponential Moving Average (T3)
    TEMA Triple Exponential Moving Average
    TRANGE True Range
    TRIMA Triangular Moving Average
    TRIX 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
    TSF Time Series Forecast
    TYPPRICE Typical Price
    ULTOSC Ultimate Oscillator
    VAR Variance
    WCLPRICE Weighted Close Price
    WILLR Williams' %R
    WMA Weighted Moving Average
     
    Last edited by a moderator: Jan 12, 2013
  2. 共计139个指标函数
    对应在本软中是:

    TA_AD(&High,&Low,&Close,&Volume,&AD);
    TA_ADOSC(&High,&Low,&Close,&Volume,fast_points,slow_points,&ADOSC);
    TA_ADX(&High,&Low,&Close,points,&OUT);
    TA_ADXR(&High,&Low,&Close,points,&OUT);
    TA_APO(&IN,fast_points,slow_points,ma_type,&OUT);
    TA_AROON(&High,&Low,points,&DOWN,&UP);
    TA_AROONOSC(&High,&Low,points,&OUT);
    TA_ATR(&High,&Low,&Close,points,&OUT);
    TA_AVGPRICE(&Open,&High,&Low,&Close,&OUT);
    TA_BBANDS(&IN,points,up,down,ma_type,&OUT1,&OUT2,&OUT3);
    TA_BETA(&High,&Low,points,&OUT);
    TA_BOP(&Open,&High,&Low,&Close,&OUT);
    TA_CCI(&High,&Low,&Close,points,&OUT);
    TA_CDL2CROWS(&Open,&High,&Low,&Close,&OUT);
    TA_CDL3BLACKCROWS(&Open,&High,&Low,&Close,&OUT);
    TA_CDL3INSIDE(&Open,&High,&Low,&Close,&OUT);
    TA_CDL3LINESTRIKE(&Open,&High,&Low,&Close,&OUT);
    TA_CDL3OUTSIDE(&Open,&High,&Low,&Close,&OUT);
    TA_CDL3STARSINSOUTH(&Open,&High,&Low,&Close,&OUT);
    TA_CDL3WHITESOLDIERS(&Open,&High,&Low,&Close,&OUT);
    TA_CDLABANDONEDBABY(&Open,&High,&Low,&Close,para,&OUT);
    TA_CDLADVANCEBLOCK(&Open,&High,&Low,&Close,&OUT);
    TA_CDLBELTHOLD(&Open,&High,&Low,&Close,&OUT);
    TA_CDLBREAKAWAY(&Open,&High,&Low,&Close,&OUT);
    TA_CDLCLOSINGMARUBOZU(&Open,&High,&Low,&Close,&OUT);
    TA_CDLCONCEALBABYSWALL(&Open,&High,&Low,&Close,&OUT);
    TA_CDLCOUNTERATTACK(&Open,&High,&Low,&Close,&OUT);
    TA_CDLDARKCLOUDCOVER(&Open,&High,&Low,&Close,para,&OUT);
    TA_CDLDOJI(&Open,&High,&Low,&Close,&OUT);
    TA_CDLDOJISTAR(&Open,&High,&Low,&Close,&OUT);
    TA_CDLDRAGONFLYDOJI(&Open,&High,&Low,&Close,&OUT);
    TA_CDLENGULFING(&Open,&High,&Low,&Close,&OUT);
    TA_CDLEVENINGDOJISTAR(&Open,&High,&Low,&Close,para,&OUT);
    TA_CDLEVENINGSTAR(&Open,&High,&Low,&Close,para,&OUT);
    TA_CDLGAPSIDESIDEWHITE(&Open,&High,&Low,&Close,&OUT);
    TA_CDLGRAVESTONEDOJI(&Open,&High,&Low,&Close,&OUT);
    TA_CDLHAMMER(&Open,&High,&Low,&Close,&OUT);
    TA_CDLHANGINGMAN(&Open,&High,&Low,&Close,&OUT);
    TA_CDLHARAMI(&Open,&High,&Low,&Close,&OUT);
    TA_CDLHARAMICROSS(&Open,&High,&Low,&Close,&OUT);
    TA_CDLHIGHWAVE(&Open,&High,&Low,&Close,&OUT);
    TA_CDLHIKKAKEMOD(&Open,&High,&Low,&Close,&OUT);
    TA_CDLHIKKAKE(&Open,&High,&Low,&Close,&OUT);
    TA_CDLHOMINGPIGEON(&Open,&High,&Low,&Close,&OUT);
    TA_CDLIDENTICAL3CROWS(&Open,&High,&Low,&Close,&OUT);
    TA_CDLINNECK(&Open,&High,&Low,&Close,&OUT);
    TA_CDLINVERTEDHAMMER(&Open,&High,&Low,&Close,&OUT);
    TA_CDLKICKING(&Open,&High,&Low,&Close,&OUT);
    TA_CDLKICKINGBYLENGTH(&Open,&High,&Low,&Close,&OUT);
    TA_CDLLADDERBOTTOM(&Open,&High,&Low,&Close,&OUT);
    TA_CDLLONGLEGGEDDOJI(&Open,&High,&Low,&Close,&OUT);
    TA_CDLLONGLINE(&Open,&High,&Low,&Close,&OUT);
    TA_CDLMARUBOZU(&Open,&High,&Low,&Close,&OUT);
    TA_CDLMATCHINGLOW(&Open,&High,&Low,&Close,&OUT);
    TA_CDLMATHOLD(&Open,&High,&Low,&Close,para,&OUT);
    TA_CDLMORNINGDOJISTAR(&Open,&High,&Low,&Close,para,&OUT);
    TA_CDLMORNINGSTAR(&Open,&High,&Low,&Close,para,&OUT);
    TA_CDLONNECK(&Open,&High,&Low,&Close,&OUT);
    TA_CDLPIERCING(&Open,&High,&Low,&Close,&OUT);
    TA_CDLRICKSHAWMAN(&Open,&High,&Low,&Close,&OUT);
    TA_CDLRISEFALL3METHODS(&Open,&High,&Low,&Close,&OUT);
    TA_CDLSEPARATINGLINES(&Open,&High,&Low,&Close,&OUT);
    TA_CDLSHOOTINGSTAR(&Open,&High,&Low,&Close,&OUT);
    TA_CDLSHORTLINE(&Open,&High,&Low,&Close,&OUT);
    TA_CDLSPINNINGTOP(&Open,&High,&Low,&Close,&OUT);
    TA_CDLSTALLEDPATTERN(&Open,&High,&Low,&Close,&OUT);
    TA_CDLSTICKSANDWICH(&Open,&High,&Low,&Close,&OUT);
    TA_CDLTAKURI(&Open,&High,&Low,&Close,&OUT);
    TA_CDLTASUKIGAP(&Open,&High,&Low,&Close,&OUT);
    TA_CDLTHRUSTING(&Open,&High,&Low,&Close,&OUT);
    TA_CDLTRISTAR(&Open,&High,&Low,&Close,&OUT);
    TA_CDLUNIQUE3RIVER(&Open,&High,&Low,&Close,&OUT);
    TA_CDLUPSIDEGAP2CROWS(&Open,&High,&Low,&Close,&OUT);
    TA_CDLXSIDEGAP3METHODS(&Open,&High,&Low,&Close,&OUT);
    TA_CMO(&IN,points,&OUT);
    TA_CORREL(&High,&Low,points,&OUT);
    TA_DEMA(&IN,points,&OUT);
    TA_DX(&High,&Low,&Close,points,&OUT);
    TA_EMA(&IN,points,&OUT);
    TA_HT_DCPERIOD(&IN,&OUT);
    TA_HT_DCPHASE(&IN,&OUT);
    TA_HT_PHASOR(&IN,&OUT,&OUT1);
    TA_HT_SINE(&IN,&OUT,&OUT1);
    TA_HT_TRENDLINE(&IN,&OUT);
    TA_HT_TRENDMODE(&IN,&OUT);
    TA_KAMA(&IN,points,&OUT);
    TA_LINEARREG(&IN,points,&OUT);
    TA_LINEARREG_ANGLE(&IN,points,&OUT);
    TA_LINEARREG_INTERCEPT(&IN,points,&OUT);
    TA_LINEARREG_SLOPE(&IN,points,&OUT);
    TA_MA(&IN,points,ma_type,&OUT);
    TA_MACD(&IN,fast_points,slow_points,in_points,&OUT1,&OUT2,&OUT3);
    TA_MACDEXT(&IN,fast_points,fast_ma_type,slow_points,slow_ma_type,in_points,in_ma_type,&OUT1,&OUT2,&OUT3);
    TA_MACDFIX(&IN,in_points,&OUT1,&OUT2,&OUT3);
    TA_MAMA(&IN,fast_xs,slow_xs,&OUT,&OUT1);
    TA_MAVP(&IN,&IN1,fast_points,slow_points,ma_type,&OUT);
    TA_MAX(&IN,points,&OUT);
    TA_MAXINDEX(&IN,points,&OUT);
    TA_MEDPRICE(&High,&Low,&OUT);
    TA_MFI(&High,&Low,&Close,&volume,points,&OUT);
    TA_MIDPOINT(&IN,points,&OUT);
    TA_MIDPRICE(&High,&Low,points,&OUT);
    TA_MIN(&IN,points,&OUT);
    TA_MININDEX(&IN,points,&OUT);
    TA_MINMAX(&IN,points,&OUT,&OUT1);
    TA_MINMAXINDEX(&IN,points,&OUT,&OUT1);
    TA_MINUS_DI(&High,&Low,&Close,points,&OUT);
    TA_MINUS_DM(&High,&Low,points,&OUT);
    TA_MOM(&IN,points,&OUT);
    TA_NATR(&High,&Low,&Close,points,&OUT);
    TA_OBV(&Close,&Volume,&OUT);
    TA_PLUS_DI(&High,&Low,&Close,points,&OUT);
    TA_PLUS_DM(&High,&Low,points,&OUT);
    TA_PPO(&IN,fast_points,slow_points,ma_type,&OUT);
    TA_ROC(&IN,points,&OUT);
    TA_ROCP(&IN,points,&OUT);
    TA_ROCR(&IN,points,&OUT);
    TA_ROCR100(&IN,points,&OUT);
    TA_RSI(&IN,points,&OUT);
    TA_SAR(&High,&Low,xs,max_xs,&OUT);
    TA_SAREXT(&High,&Low,m_Start,m_Offset,m_InitLong,m_Long,m_MaxLong,m_InitShort,m_Short,m_MaxShort,&OUT);
    TA_SMA(&IN,points,&OUT);
    TA_STDDEV(&IN,points,nb,&OUT);
    TA_STOCH(&High,&Low,&Close,FastK,SlowK,SlowK_type,SlowD,SlowD_type,&OUT,&OUT1);
    TA_STOCHF(&High,&Low,&Close,FastK,FastD,FastD_type,&OUT,&OUT1);
    TA_STOCHRSI(&IN,points,FastK,FastD,FastD_type,&OUT,&OUT1);
    TA_SUM(&IN,points,&OUT);
    TA_T3(&IN,points,xs,&OUT);
    TA_TEMA(&IN,points,&OUT);
    TA_TRANGE(&High,&Low,&Close,&OUT);
    TA_TRIMA(&IN,points,&OUT);
    TA_TRIX(&IN,points,&OUT);
    TA_TSF(&IN,points,&OUT);
    TA_TYPPRICE(&High,&Low,&Close,&OUT);
    TA_ULTOSC(&High,&Low,&Close,points1,points2,points3,&OUT);
    TA_VAR(&IN,points,xs,&OUT);
    TA_WCLPRICE(&High,&Low,&Close,&OUT);
    TA_WILLR(&High,&Low,&Close,points,&OUT);
    TA_WMA(&IN,points,&OUT);

    函数名和参数顺序都和ta-lib-0.4.0-msvc一样。
     
  3. 测试用代码:

    OpenLsLib("SR1305",64,1,850);
    var open,high,low,close,volume,out,out1,out2;
    TA_OPEN(&open);
    TA_HIGH(&high);
    TA_LOW(&low);
    TA_CLOSE(&close);
    TA_VOLUME(&volume);
    var c=TA_HT_PHASOR(&high,&out,&out1);
    var m_max=out.GetHigh();
    var m_min=out.GetLow();
    TA_DrawLine(&out,12,0,3,0,0x1FF00FF,"PHASOR",m_max,m_min);

    //注意:TA_前导也可改用hi_前导
     
    Last edited by a moderator: Jan 12, 2013
  4. >>语言编辑和调试时,可以双击对话框右下角变量中的指标变量,可以查看指标的所有数据。双击其他变量会切回源码显示。
    >>公式函数在编程时比较简单,但他有启动慢的特点,所以二次编程要注意这个特点,可以通过确当的编程,比如调用参数是变量引用的函数,变量方法函数,来消除他的影响。

    >>大家应当注意到,公式函数的输入参数大部分用的是向量引用,减少了向量拷贝,可以有效地节省运算时间。
    向量运算的标准化,可以使向量作为非标准指标的载体,使指标编程更有效率。

    >>获取指标的具体数据,可以用[0],[1]..来访问,也可以用负的索引从向量的屁股后面访问比如close[-1],就表示收盘价close的最后一个数据,close[-2]就是倒数第二。。。

    >>向量的[]和向量数组的[]有机的结合一起。

    比如定义一个一维的指标数组。
    var m_zb00[10],
    那么可以用m_zb[j]来访问具体指标的数据
    本次修改,在语法层增加了变量方法函数,这也是为了更好的处理字符串变量和指标变量。
    var str=" asdfgh";
    str.TrimLeft();
    .TrimLeft() 就是变量方法函数,熟悉Vc的就会感到很亲切

    变量方法函数不建议初学者使用。
     
    Last edited by a moderator: Jan 12, 2013
  5. 免费的api专版也已同步更新,感兴趣的,可以玩玩。
     
  6. 按图索骥