分享

指标函数

 qilong 2021-10-18

技术指标相关函数

double iAC( string 币, int 框, int 第)

加减速震荡

:: 输入参数
symbol - 通货标识
timeframe - 时间周期
shift - 位移数
示例:
double result=iAC(NULL, 0, 1);

double iAD(string 币, int 框, int 第)

离散指标

:: 输入参数
symbol - 通货标识
timeframe - 时间框
shift - 位移数
示例:
double result=iAD(NULL, 0, 1);

double iAlligator( string symbol, int timeframe, int jaw_period, int jaw_shift, int teeth_period, int teeth_shift,int lips_period, int lips_shift, int ma_method, int applied_price, int mode, int 第 )

鳄鱼指标

:: 输入参数
symbol - 通货标识
timeframe - 时间框架
jaw_period -下 颚线平均周期数(绿线)
jaw_shift - 颚线位移
teeth_period - 齿线平均周期数(红线)
teeth_shift - 齿线位移
lips_period - 唇线平均周期数 (绿线)
lips_shift - 唇线位移
ma_method - 移动平均线的类型
applied_price - 应用价格的类型
mode - 来源模式:
MODE_GATORJAW,
MODE_GATORTEETH
MODE_GATORLIPS
shift - 位移数

double jaw_val=iAlligator(NULl, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW, 1);

double iADX( string 币 , int 框, int 周, int 价类, int 均类, int 第)

ADX

:: 输入参数
symbol - 通货标识
timeframe - 时间框
period - 平均周期数
applied_price - 应用价格类型
mode - 来源模式,参见指标线分类枚举
shift - 位移数
示例:
if(iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,0)>iADX(NULL,0,14,PRICE_HIGH,MODE_PLUSDI,0)) return(0);

double iATR( string 币, int 框, int 周, int 第)

ATR值

:: 输入参数
symbol - 通货标识
timeframe - 时间框
period - 周期
shift - 位移数
示例:
if(iATR(NULL,0,12,0)>iATR(NULL,0,20,0)) return(0);

double iAO( string 币, int 框, int 第 )

计算 Bill Williams' Awesome oscillator 的值

:: 输入参数
symbol - 通货标识
timeframe - 时间框
shift - 位移数
示例:
double val=iAO(NULL, 0, 2);

double iBearsPower( string 币, int 框, int 周, int 价类, int 第 )

熊力值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
period - 周期
applied_price - 应用价格类型
shift - 位移数
示例:
double val= iBearsPower(NULL, 0, 13,PRICE_CLOSE,0);

double iBands( string 币, int 框, int 周, int 偏差, int 位移, int 价类, int 均类, int 第 )

布林值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
period - 周期
deviation - 背离
bands_shift - Bands位移
applied_price - 应用价格类型
mode - 来源模式,参见指标线分类枚举
shift - 位移数
示例:
if(iBands(NULL,0,20,2,0,PRICE_LOW,MODE_LOWER,0)>Low[0]) return(0);

double iBandsOnArray( double 数据组, int 计算数量, int 滑周, double 偏差率, int 位移, int 均类, int 第 )
从数组中计算 Bollinger bands indicator 的值
:: 输入参数
array[] - 数组数据
total - 总数据数量
period - 周期
deviation - 背离
bands_shift - Bands位移
applied_price - 应用价格类型
mode - 来源模式,参见指标线分类枚举
shift - 位移数
示例:
if(iBands(NULL,0,20,2,0,PRICE_LOW,MODE_LOWER,0)>Low[0]) return(0);

double iBullsPower( string 币, int 框, int 周, int 用价, int 第 )

牛力值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
period - 周期
applied_price - 应用价格类型
shift - 位移数
示例:
double val=iBullsPower(NULL, 0, 13,PRICE_CLOSE,0);

double iCCI( string 币, int 框, int 周, int 用价, int 第)

计算 Commodity channel index 的值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
period - 周期
applied_price - 应用价格类型
shift - 位移数
示例:
if(iCCI(NULL,0,12,0)>iCCI(NULL,0,20,0)) return(0);

double iCCIOnArray( double 数据组, int 计算总数, int 滑周, int 移 )

从数组中计算 Commodity channel index 的值

:: 输入参数
array[] - 数组数据
total - 总数据数量
period - 周期
shift - 位移数
示例:
if(iCCIOnArray(ExtBuffer,total,12,0)>iCCI(NULL,0,20,PRICE_OPEN, 0)) return(0);

double iCustom( string 币, int 框, string 名,参 ... , int 索引, int 第 )

引用自定义指标 的值

:: 输入参数
symbol -货币对名称(若 NULL表示当前)
timeframe - 时间框
name - 自定义指标的名称
... - 自定义指标参数
mode -索引行,即 来源模式(0~8)
shift - 位移数 即从显示缓冲采取的值的索引
示例:
double val=iCustom(NULL, 0, "SampleInd",13,1,0);

double iDeMarker(string 币, int 框, int 周, int 第)

DeM值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
period - 周期
shift - 位移数
示例:
double val=iDeMarker(NULL, 0, 13, 1);

double iEnvelopes(string 币, int 框, int 周, int 均类, int 均移, int 用价, double 偏率, int 均类, int 第)

通道值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
ma_period - 移动平均线周期
ma_method - 移动平均线模式
ma_shift - 移动平均线位移
applied_price - 应用价格类型
deviation - 背离
mode - 来源模式,参见指标线分类枚举
shift - 位移数
示例:
double val=iEnvelopes(NULL, 0, 13,MODE_SMA,10,PRICE_CLOSE,0.2,MODE_UPPER,0);

double iEnvelopesOnArray( double 数据组, int t计算总数, int 滑周, int 均类, int 均移, double 偏差率, int mode, int 第)

从数组中计算 Envelopes indicator 的值

:: 输入参数
array[] - 数组数据
total - 总数据数量
ma_period - 移动平均线周期
ma_method - 移动平均线模式
ma_shift - 移动平均线位移
deviation - 背离
mode - 来源模式,参见指标线分类枚举
shift - 位移数
示例:
double val=iEnvelopesOnArray(ExtBuffer, 0, 13, MODE_SMA, 0.2, MODE_UPPER,0 );

double iForce( string 币, int 框, int 周, int 均类, int 用价, int 第)

强力值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
period - 周期
ma_method - 移动平均线模式
applied_price - 应用价格类型
shift - 位移数
示例:
double val=iForce(NULL, 0, 13,MODE_SMA,PRICE_CLOSE,0);

double iFractals(string 币, int 框, int 均类, int 移 )

分形值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
mode - 来源模式,参见指标线分类枚举
shift - 位移数
示例:
double val=iFractals(NULL, 0, MODE_UPPER,0);

double iGator( string 币, int 框, int jaw_period, int jaw_shift, int teeth_period, int teeth_shift, int lips_period, int lips_shift, int ma_method, int applied_price, int mode, int 第)

计算 Fractals 的值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
jaw_period - 颚线周期
jaw_shift - 颚线位移
teeth_period - 齿线周期
teeth_shift - 齿线位移
lips_period - 唇线周期
lips_shift - 唇线位移
ma_method - 移动平均线种类
applied_price - 应用价格类型
mode - 来源模式,参见指标线分类枚举
shift - 位移数
示例:
double jaw_val=iGator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_UPPER, 1);

double iIchimoku( string 币, int 框, int tenkan_sen, int kijun_sen, int senkou_span_b, int mode, int 第)

计算 Ichimoku Kinko Hyo 的值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
tenkan_sen - 转换线
jkijun_sen - 基准线
senkou_span_b - 参考范围b
mode - 来源模式,参见指标线分类枚举
shift - 位移数
示例:
double tenkan_sen=iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, 1);

double iBWMFI(string 币, int 框, int 第)

计算 Bill Williams Market Facilitation index 的值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
shift - 位移数
示例:
double val=iBWMFI(NULL, 0, 0);

double iMomentum( string 币, int 框, int 周, int 用价, int 第)

Mom值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
period - 周期
applied_price - 应用价格类型
shift - 位移数
示例:
if(iMomentum(NULL,0,12,PRICE_CLOSE,0)>iMomentum(NULL,0,20,PRICE_CLOSE,0)) return(0);

double iMomentumOnArray( double 数据组, int 计算总数, int 滑周, int 第)

从数组中计算 Momentum indicator 的值

:: 输入参数
array[] - 数组数据
total - 总数据数量
period - 周期
shift - 位移数
示例:
if(iMomentumOnArray(mybuffer,100,12,0)>iMomentumOnArray(mubuffer,100,20,0)) return(0);

double iMFI( string 币, int 框, int 周, int 第)

计算 Money flow index 的值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
period - 周期
shift - 位移数
示例:
if(iMFI(NULL,0,14,0)>iMFI(NULL,0,14,1)) return(0);

double iMA( string 币, int 框, int 周, int 均移, int 均类, int 用价, int 第)

均线值

:: 输入参数
symbol - 通货标识
timeframe - 时间框
period - 周期数
ma_shift - 移动平均线位移
ma_method - 移动平均线模式
applied_price - 应用价格类型
shift - 位移数
示例:

AlligatorJawsBuffer[i]=iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i);

均线再钝化写法

for(int i=1; i<=周期; i++){
iMa= 2*iMA(NULL, 0, 周期/2, 0, MODE_SMA, PRICE_CLOSE, i)-iMA(NULL, 0, 周期, 0, MODE_SMA, PRICE_CLOSE, i);
Ma累和 += iMa;
}
再滑Ma= Ma累和/周期;

double iMAOnArray( double 均组名, int 棒数, int 滑周 , int 均移, int 均类, int 第)

均线再滑值

:: 输入参数
array[] - 数组数据
total - 总数据数量
period - 周期
ma_shift - 移动平均线位移
ma_method - 移动平均线模式
shift - 位移数
示例:
double macurrent=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,0);
double macurrentslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,0);
double maprev=iMAOnArray(ExtBuffer,0,5,0,MODE_LWMA,1);
double maprevslow=iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,1);
//----
if(maprev=macurrentslow)
Alert("crossing up");

double iOsMA( string 币, int 框, int 快周, int 慢周, int 信周, int 用价, int 第)

计算 Moving Average of Oscillator 的值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
fast_ema_period - 快均线周期
slow_ema_period - 慢均线周期
signal_period - 信号周期
applied_price - 应用价格类型
shift - 位移数
示例:
if(iOsMA(NULL,0,12,26,9,PRICE_OPEN,1)>iOsMA(NULL,0,12,26,9,PRICE_OPEN,0)) return(0);

double iMACD( string 币, int 框, int 快周, int 慢周, int 信周, int 用价, int 均类, int 第)

Macd值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
fast_ema_period - 快均线周期
slow_ema_period - 慢均线周期
signal_period - 信号周期
applied_price - 应用价格类型
mode - 来源模式,参见指标线分类枚举
shift - 位移数
示例:
if(iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)>iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0)) return(0);

double iOBV( string 币, int 框, int applied_price, int 第)

OBV值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
period - 周期
shift - 位移数
double val=iOBV(NULL, 0, PRICE_CLOSE, 1);

double iSAR( string 币, int 框, double 步幅, double 极限, int 第)

SAR值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
step - 步幅
maximum - 最大值
shift - 位移数
示例:
if(iSAR(NULL,0,0.02,0.2,0)>Close[0]) return(0);

double iRSI( string 币, int 框, int 周, int 价类, int 第)

RSI值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
period - 周期
applied_price - 应用价格类型
shift - 位移数
示例:
if(iRSI(NULL,0,14,PRICE_CLOSE,0)>iRSI(NULL,0,14,PRICE_CLOSE,1)) return(0);

double iRSIOnArray( double 数组名, int 计算总数, int 滑周, int 第)

RSI再滑值

:: 输入参数
array[] - 数组数据
total - 总数据数量
period - 周期
shift - 位移数
示例:
if(iRSIOnBuffer(ExtBuffer,1000,14,0)>iRSI(NULL,0,14,PRICE_CLOSE,1)) return(0);

double iRVI( string 币, int 框, int 周, int 均类, int 第)

RVI值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
period - 周期
mode - 来源模式,参见指标线分类枚举
shift - 位移数
示例:
double val=iRVI(NULL, 0, 10,MODE_MAIN,0);

double iStdDev( string 币, int 框, int 均周, int 均类, int 均移, int 用价, int 第)

标偏值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
ma_period - 移动平均线周期
ma_method - 移动平均线模式
ma_shift - 移动平均线位移
applied_price - 应用价格类型
shift - 位移数
示例:
double val=iStdDev(NULL,0,10,MODE_EMA,0,PRICE_CLOSE,0);

double iStdDevOnArray( double array[], int total, int ma_period, int ma_method, int ma_shift, int 第)

标偏再滑值

:: 输入参数
array[] - 数组数据
total - 总数据数量
ma_period - 移动平均线周期
ma_method - 移动平均线模式
ma_shift - 移动平均线位移
shift - 位移数
示例:
double val=iStdDevOnArray(ExtBuffer,100,10,MODE_EMA,0,0);

double iStochastic( string 币, int 框, int K周, int D周, int 慢周, int 均类, int 用价, int 均类, int 第)

KD值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
%Kperiod - %K线周期
%Dperiod - %D线周期
slowing - 减速量
method - 移动平均线种类
price_field - 价格领域参数: 0 - Low/High or 1 - Close/Close.
mode - 来源模式,参见指标线分类枚举
shift - 位移数
示例:
if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0))
return(0);

double iWPR( string 币, int 框, int 周, int 第)

威廉值

:: 输入参数
symbol - 通货标识
timeframe - 时间线
period - 周期
shift - 位移数
示例:
if(iWPR(NULL,0,14,0)>iWPR(NULL,0,14,1)) return(0);

int iBars( string symbol, int timeframe)
返回制定图表的数据数
:: 输入参数
symbol - 通货标识
timeframe - 时间线
Print("Bar count on the 'EUROUSD' symbol with PERIOD_H1 is",iBars("EUROUSD",PERIOD_H1));

跟价格相关的函数

int iBarShift( string 币, int 框, datetime 指定秒时, bool exact=false)

在 指定 图表中搜索数据的棒时

:: 输入参数:
symbol - 通货标识
timeframe - 时间框
time - 指定的时间点(相对K线开盘的时间)
exact - 是否要求精确 (false-返回最近的柱子,true-返回-1。)
示例:
datetime 指定时间= D'2004.03.21 12:00';
int shift= iBarShift("EUROUSD",PERIOD_M1, 指定时间 );
Print("指定时间的K线开盘时间点为 ",TimeToStr(指定时间)," 棒时在 ",shift);

double iClose(string 币, int 框, int 第)

指定币在指定时框的收盘价

:: 输入参数
symbol - 通货标识
timeframe - 时间线
shift - 位移数
示例:
Print("Current bar for USDCHF H1: ",iTime("USDCHF",PERIOD_H1,i),", ", iOpen("USDCHF",PERIOD_H1,i),", ",
iHigh("USDCHF",PERIOD_H1,i),", ", iLow("USDCHF",PERIOD_H1,i),", ",
iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));

double iHigh(string 币, int 框, int 第)

指定时框的最高价

:: 输入参数
symbol - 通货标识
timeframe - 时间框
shift - 位移数
Print("Current bar for USDCHF H1: ",iTime("USDCHF",PERIOD_H1,i),", ", iOpen("USDCHF",PERIOD_H1,i),", ",
iHigh("USDCHF",PERIOD_H1,i),", ", iLow("USDCHF",PERIOD_H1,i),", ",

iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));

double iLow(string 币, int 框, int 第)

指定时框的最低价

:: 输入参数
symbol - 通货标识
timeframe - 时间框
shift - 位移数
示例:
Print("Current bar for USDCHF H1: ",iTime("USDCHF",PERIOD_H1,i),", ", iOpen("USDCHF",PERIOD_H1,i),", ",
iHigh("USDCHF",PERIOD_H1,i),", ", iLow("USDCHF",PERIOD_H1,i),", ",
iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));

double iOpen( string 币, int 框, int 第)

指定时框的开盘价

:: 输入参数
symbol - 通货标识
timeframe - 时间框
shift - 位移数
示例:
Print("Current bar for USDCHF H1: ",iTime("USDCHF",PERIOD_H1,i),", ", iOpen("USDCHF",PERIOD_H1,i),", ",
iHigh("USDCHF",PERIOD_H1,i),", ", iLow("USDCHF",PERIOD_H1,i),", ",
iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));

datetime iTime( string 币, int 框, int 移 )

指定时框的时间

:: 输入参数
symbol - 通货标识
timeframe - 时间框
shift - 位移数
示例:
Print("Current bar for USDCHF H1: ",iTime("USDCHF",PERIOD_H1,i),", ", iOpen("USDCHF",PERIOD_H1,i),", ",
iHigh("USDCHF",PERIOD_H1,i),", ", iLow("USDCHF",PERIOD_H1,i),", ",
iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));

double iVolume(string 币, int 框, int 第)

指定时框的成交量

:: 输入参数
symbol - 通货标识
timeframe - 时间线
shift - 位移数
示例:
Print("Current bar for USDCHF H1: ",iTime("USDCHF",PERIOD_H1,i),", ", iOpen("USDCHF",PERIOD_H1,i),", ",
iHigh("USDCHF",PERIOD_H1,i),", ", iLow("USDCHF",PERIOD_H1,i),", ",
iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));

int iHighest( string 币, int 框, int 数据价, int 跨期=WHOLE_ARRAY, int 始棒 =0)

指定时框的某区间内的某数据的最高值的棒时位置

:: 输入参数
symbol - 通货标识
timeframe - 时间框
type - 数据类型,(须为开 高 低 收 量 序列数组中的一个指定数据类)
count - 始棒向左的区间总数
start - 从第几根开始的起点
示例:
double val;
//--当前币当前图表中,从第4根到前20根K线区间最高价
val= High[iHighest(NULL,0,MODE_HIGH,20,4)];

int iLowest( string 币, int 框, int 用价, int 跨期=WHOLE_ARRAY, #int 始棒=0)

指定图表的某区间的数据的最低价的棒时位置
:: 输入参数
symbol - 通货标识
timeframe - 时间线
type - 数据类型
count - 始棒向左的区间数
start - 开始点
示例:
double val= Low[iLowest(NULL,0,MODE_LOW,10,10)];

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多