在程序化交易中往往需要自己计算K线指标,刚开始希望在网络上找一些现成的代码资源,但找了半天相关信息很少,好像只有一个ta-lib金融库,但使用复杂,而且很多计算方法和一些常用股票软件不一致,最后的指标结果和这些股票软件是不同的。

如何获得K线指标计算公式

后来决定自己动手编,可以从一些常用股票软件查询获得计算公式,文华财经的指标公式查询如下图:

文华财经的 [BOLL公式]说明:
N = 26
M = 26
P = 2

MID:MA(CLOSE,N);
TMP2:=STD(CLOSE,M);//标准差:
TOP:MID+PTMP2;
BOTTOM:MID-P
TMP2;

标准差STD:M日的(C-MA)的两次方之和除以M的平方根

查到指标计算公式后,可以自己编程实现,发现实现起来其实很简单,而且计算方法可以自己选择,可以做到和自己常用的股票软件完全一致。

面向对象编程在程序化交易中的优势

面向对象的C++编程在程序化编程中真是好用,只需要实现一个K线类,各周期K线(如5分钟线、15分钟线、小时线、日线等)是K线类的实例,程序代码简单、短小,把面向对象编程的优点完全发挥出来了。

K线数据可以根据每500ms获得的Tick数据生成(应用CTP接口可以获得Tick数据),K线数据的生成后续有时间将在另外一篇文章介绍。

代码示例

以下是实现代码示例,示例中只实现了几个常用的指标,有需要其它指标的民工们可以参照实现代码自己查找指标公式,然后自己编程实现。

KLineDataDef.h K线数据头文件定义:

#ifndef KLINEDATADEF_H
#define KLINEDATADEF_H
#include <string>  using namespace std;  const unsigned int MAX_BARS     = 200;
const unsigned int MAX_LOG_NUM  = 20;class KLineData
{
public: //K线数据,数组下标0是最新的数据,MAX_BARS是最远期的数据,以日线为例,0是当日数据,1是昨日数据,100是前100日数据double                   Open[MAX_BARS];                         ///<开盘价double                   Close[MAX_BARS];                        ///<收盘价double                   High[MAX_BARS];                         ///<最高价double                   Low[MAX_BARS];                          ///<最低价//移动均线数据double                  Ma120[MAX_BARS]; //布林线数据double                   BollTop[MAX_BARS];                         double                   BollMid[MAX_BARS];                       double                   BollBottom[MAX_BARS];     //MACD数据double                   MacdMacd[MAX_BARS];                         double                   MacdDiff[MAX_BARS];                       double                   MacdDea[MAX_BARS];                       //KDJ数据double                     KdjK[MAX_BARS];                         double                   KdjD[MAX_BARS];                       double                   KdjJ[MAX_BARS]; //PBX数据double                   Pbx1[MAX_BARS];                         double                   Pbx2[MAX_BARS];                       double                   Pbx3[MAX_BARS];                       double                   Pbx4[MAX_BARS];                       double                   Pbx5[MAX_BARS];                       double                   Pbx6[MAX_BARS]; //CCI数据double                   Cci[MAX_BARS]; //用于生成K线的一些标志和数据//新时间周期内是否已经更新生成新K线的标志bool                  UpdateFlag;//一天内的5分钟K线个数,是5分钟K线所特有的成员,用于判断生成新15分钟、小时K线的时机int                        K5BarNum; //{0,1,2,3,4,5,6,.....11,12,.....47}void CalMa();void CalLastMa();void CalBoll();void CalLastBoll();void CalMacd();void CalLastMacd();void CalKdj();void CalLastKdj();void CalPbx();void CalLastPbx();void CalCci();void CalLastCci();void CalAllIndicators();void CalAllLastIndicators();//void CalDmi();//void CalLastDmi();void ShiftKlineDataOne();void LogKlineData();KLineData();  ~KLineData();
private:void LogArrayData( string InitStr, double ArrayData[],int LogCount );double Low9(int index);double High9(int index);double MA(int index,int N);double STD(int index,int N);//计算CCI指标所需的内部函数double MaTyp(int index,int N);double AveDevTyp(int index,int N);//EMA数据double Ema12[MAX_BARS],Ema26[MAX_BARS];double                  Ema4[MAX_BARS];double                   Ema6[MAX_BARS];double                   Ema9[MAX_BARS];double                   Ema13[MAX_BARS];double                  Ema18[MAX_BARS];double                  Ema24[MAX_BARS];//计算CCI指标的TYP中间数据double                     Typ[MAX_BARS];
};#endif

KLineData.cpp K线类实现文件:

一点小说明:指标计算时有两个实现函数,一个是计算所有K线的指标值,另一个是计算当前K线的指标值。这有什么用呢?计算所有K线的指标值需要计算多个指标,往往应用在指标初始化读入数据或刚刚开始一个新的指标周期时应用;而计算当前K线的指标值只计算当前K线一个指标,是需要每Tick 500ms都不断更新的,程序化交易需要根据当前最新的指标来操作。

具体来说,如日线数据,只有每日启动时读入日线数据时需要计算一次所有的日线指标,而当天内的每500ms Tick周期只需要计算当日的新指标,程序化交易应用中可能应用当日的新指标和之前的指标来驱动策略实现自动化交易操作。把计算当前K线指标值函数独立出来可以节省运行时的计算时间(编程需要时刻牢记计算机“时间”、“空间”消耗,以最小的代价实现相同的功能)

#include <string>
#include <math.h>
#include "KLineDataDef.h"
#include "NetDataLog.h"  extern NetDataLog  *pLog;KLineData::KLineData()
{int loop;for (loop = 0 ; loop < MAX_BARS ; loop++) {Open[loop] = 0;Close[loop] = 0;High[loop] = 0;Low[loop] = 0;BollTop[loop] = 0;BollMid[loop] = 0;BollBottom[loop] = 0;MacdDea[loop] =0;MacdMacd[loop] =0;MacdDiff[loop] =0;KdjK[loop] =0;KdjD[loop] =0;KdjJ[loop] =0;Pbx1[loop] =0;Pbx2[loop] =0;Pbx3[loop] =0;Pbx4[loop] =0;Pbx5[loop] =0;Pbx6[loop] =0;Ema4[loop] =0;Ema6[loop] =0;Ema9[loop] =0;Ema13[loop] =0;Ema18[loop] =0;Ema24[loop] =0;Ema12[loop] =0;Ema26[loop] =0;};UpdateFlag =false;K5BarNum = 0;
}KLineData::~KLineData()
{}//算术平均计算函数
double KLineData::MA(int index,int N)
{int j;double tmp;tmp = 0;for(j=index;j< index + N;j++){tmp = tmp + Close[j];}return (tmp/N);
}
//标准差计算函数  标准差STD:M日的(C-MA)的两次方之和除以M的平方根 == 所有数减去平均值,它的平方和除以数的个数(【文华公式采用:个数减一】),再把所得值开根号,就是1/2次方,得到的数就是这组数的标准差。
double KLineData::STD(int index,int N)
{int j;double tmp,ma;tmp = 0;ma = MA(index,N);for(j=index;j< index + N;j++){tmp = tmp + pow( (Close[j] - ma), 2 );}return (sqrt(tmp/(N-1)));
}   //MA移动平均线计算void KLineData::CalMa()
{int i;for ( i = MAX_BARS -120-1; i>=0; i--) Ma120[i] = MA(i,120);
}void KLineData::CalLastMa()
{Ma120[0] = MA(0,120);
}//布林线计算
/*【文华财经公式
[BOLL公式]
N = 26
M = 26
P = 2MID:MA(CLOSE,N);
TMP2:=STD(CLOSE,M);//标准差:
TOP:MID+P*TMP2;
BOTTOM:MID-P*TMP2;标准差STD:M日的(C-MA)的两次方之和除以M的平方根
*/void KLineData::CalBoll()
{int i;double std;for ( i = MAX_BARS -26-1; i>=0; i--) {BollMid[i] = MA(i,26);std = STD(i,26);BollTop[i] = BollMid[i] + 2*std;BollBottom[i] = BollMid[i] - 2*std;};
}void KLineData::CalLastBoll()
{double std;BollMid[0] = MA(0,26);std = STD(0,26);BollTop[0] = BollMid[0] + 2*std;BollBottom[0] = BollMid[0] - 2*std;}
//MACD计算
void KLineData::CalMacd()
{int i;/*第一天的EMA12和EMA26都等于收盘价EMA(12)= 前一日EMA(12)×11/13+今日收盘价×2/13EMA(26)= 前一日EMA(26)×25/27+今日收盘价×2/27DIFF=今日EMA(12)- 今日EMA(26)DEA(MACD)= 前一日DEA×8/10+今日DIF×2/10 BAR=2×(DIFF-DEA)*/Ema12[MAX_BARS-1] = Close[MAX_BARS-1];Ema26[MAX_BARS-1] = Close[MAX_BARS-1];for (i= MAX_BARS-2; i>=0; i-- ) {Ema12[i]=Ema12[i+1]*11/13 + Close[i]*2/13;Ema26[i]=Ema26[i+1]*25/27 + Close[i]*2/27;MacdDiff[i] = Ema12[i] - Ema26[i];MacdDea[i] = MacdDea[i+1]*8/10 + MacdDiff[i]*2/10;MacdMacd[i] = 2*(MacdDiff[i]-MacdDea[i]);};
}void KLineData::CalLastMacd()
{Ema12[0]=Ema12[1]*11/13 + Close[0]*2/13;Ema26[0]=Ema26[1]*25/27 + Close[0]*2/27;MacdDiff[0] = Ema12[0] - Ema26[0];MacdDea[0] = MacdDea[1]*8/10 + MacdDiff[0]*2/10;MacdMacd[0] = 2*(MacdDiff[0]-MacdDea[0]);
}//Kdj计算
double KLineData::Low9(int index)
{double tmp;int i;tmp = Low[index];for(i=index+1;i < index + 9; i++){if  ( Low[i] <tmp  ) tmp = Low[i];};return tmp;
}double KLineData::High9(int index)
{double tmp;int i;tmp = High[index];for(i=index+1;i < index + 9; i++){if  ( High[i] >tmp  ) tmp = High[i];};return tmp;
}void KLineData::CalKdj()
{/*以KDJ(9,3,3) 为例:RSV(9)=(今日收盘价-9日内最低价)÷(9日内最高价-9日内最低价)×100K(3日)=(当日RSV值+2×前一日K值)÷3D(3日)=(当日K值+2×前一日D值)÷3J=3K-2D (这里应该是3k而不是3d)如果无前一日的K、D值,K、D初始值取50。*/int i,j;double rsv9;i = MAX_BARS - 1 - 9;KdjK[i+1] = 50;KdjD[i+1] = 50;for(j=i;j>=0;j--){rsv9 = (Close[j] - Low9(j))/( High9(j) - Low9(j) ) * 100;KdjK[j] = (rsv9 + 2 * KdjK[j+1])/3;KdjD[j] = (KdjK[j] + 2 * KdjD[j+1])/3;KdjJ[j] = 3*KdjK[j] - 2*KdjD[j];}
}void KLineData::CalLastKdj()
{double rsv9;rsv9 = (Close[0] - Low9(0))/(High9(0) - Low9(0))* 100;KdjK[0] = (rsv9 + 2 * KdjK[1])/3;KdjD[0] = (KdjK[0] + 2 * KdjD[1])/3;KdjJ[0] = 3*KdjK[0] - 2*KdjD[0];
}/*****【通信达等其它常用PBX瀑布线计算】******【EXPMA计算公式】
1.EXPMA=(当日或当期收盘价-上日或上期EXPMA)/N+上日或上期EXPMA
2.首次上期EXPMA值为上期收盘价,N为天数。
3.可设置多条指标线,参数为12,50【PBX瀑布线计算公式】
其参数有:
M1,最小值3,最大值10,缺省值4;
M2,最小值3,最大值20,缺省值6;
M3,最小值3,最大值30,缺省值9;
M4,最小值3,最大值40,缺省值13;
M5,最小值3,最大值50,缺省值18;
M6,最小值3,最大值60,缺省值24。
公式为:
PBX1:(EXPMA(CLOSE,M1)+MA(CLOSE,M1*2)+MA(CLOSE,M1*4))/3;
PBX2:(EXPMA(CLOSE,M2)+MA(CLOSE,M2*2)+MA(CLOSE,M2*4))/3;
PBX3:(EXPMA(CLOSE,M3)+MA(CLOSE,M3*2)+MA(CLOSE,M3*4))/3;
PBX4:(EXPMA(CLOSE,M4)+MA(CLOSE,M4*2)+MA(CLOSE,M4*4))/3;
PBX5:(EXPMA(CLOSE,M5)+MA(CLOSE,M5*2)+MA(CLOSE,M5*4))/3;
PBX6:(EXPMA(CLOSE,M6)+MA(CLOSE,M6*2)+MA(CLOSE,M6*4))/3;
公式翻译为:
输出PBX1:(收盘价的M1日指数移动平均+收盘价的M1*2日简单移动平均+收盘价的M1*4日简单移动平均)/3
输出PBX2:(收盘价的M2日指数移动平均+收盘价的M2*2日简单移动平均+收盘价的M2*4日简单移动平均)/3
输出PBX3:(收盘价的M3日指数移动平均+收盘价的M3*2日简单移动平均+收盘价的M3*4日简单移动平均)/3
输出PBX4:(收盘价的M4日指数移动平均+收盘价的M4*2日简单移动平均+收盘价的M4*4日简单移动平均)/3
输出PBX5:(收盘价的M5日指数移动平均+收盘价的M5*2日简单移动平均+收盘价的M5*4日简单移动平均)/3
输出PBX6:(收盘价的M6日指数移动平均+收盘价的M6*2日简单移动平均+收盘价的M6*4日简单移动平均)/3【经查询获得文华瀑布线的具体公式如下】:PB1:(EMA(CLOSE,M1)+MA(CLOSE,M1*2)+MA(CLOSE,M1*4))/3;
PB2:(EMA(CLOSE,M2)+MA(CLOSE,M2*2)+MA(CLOSE,M2*4))/3;
PB3:(EMA(CLOSE,M3)+MA(CLOSE,M3*2)+MA(CLOSE,M3*4))/3;
PB4:(EMA(CLOSE,M4)+MA(CLOSE,M4*2)+MA(CLOSE,M4*4))/3;
PB5:(EMA(CLOSE,M5)+MA(CLOSE,M5*2)+MA(CLOSE,M5*4))/3;
PB6:(EMA(CLOSE,M6)+MA(CLOSE,M6*2)+MA(CLOSE,M6*4))/3; //定义6条瀑布线EMA(X,N):求N周期X值的指数加权移动平均。EMA=(N-1)*EMA(N-1)/(N+1) + 2*X/(N+1)第一天的EMA12和EMA26都等于收盘价EMA(12)= 前一日EMA(12)×11/13+今日收盘价×2/13EMA(26)= 前一日EMA(26)×25/27+今日收盘价×2/27*/void KLineData::CalPbx()
{int i;Ema4[MAX_BARS-1] = Close[MAX_BARS-1];Ema6[MAX_BARS-1] = Close[MAX_BARS-1];Ema9[MAX_BARS-1] = Close[MAX_BARS-1];Ema13[MAX_BARS-1] = Close[MAX_BARS-1];Ema18[MAX_BARS-1] = Close[MAX_BARS-1];Ema24[MAX_BARS-1] = Close[MAX_BARS-1];for (i= MAX_BARS-2; i>=0; i-- ) {Ema4[i]=Ema4[i+1]*3/5 + Close[i]*2/5;Ema6[i]=Ema6[i+1]*5/7 + Close[i]*2/7;Ema9[i]=Ema9[i+1]*8/10 + Close[i]*2/10;Ema13[i]=Ema13[i+1]*12/14 + Close[i]*2/14;Ema18[i]=Ema18[i+1]*17/19 + Close[i]*2/19;Ema24[i]=Ema24[i+1]*23/25 + Close[i]*2/25;};for (i = MAX_BARS - 97; i >= 0; i--){Pbx1[i] = (Ema4[i] + MA(i,8) + MA(i,16))/3;Pbx2[i] = (Ema6[i] + MA(i,12) + MA(i,24))/3;Pbx3[i] = (Ema9[i] + MA(i,18) + MA(i,36))/3;Pbx4[i] = (Ema13[i] + MA(i,26) + MA(i,52))/3;Pbx5[i] = (Ema18[i] + MA(i,36) + MA(i,72))/3;Pbx6[i] = (Ema24[i] + MA(i,48) + MA(i,96))/3;};
}void KLineData::CalLastPbx()
{//需要先更新EMA【0】的值Ema4[0] = Ema4[1] * 3 / 5 + Close[0] * 2 / 5;Ema6[0] = Ema6[1] * 5 / 7 + Close[0] * 2 / 7;Ema9[0] = Ema9[1] * 8 / 10 + Close[0] * 2 / 10;Ema13[0] = Ema13[1] * 12 / 14 + Close[0] * 2 / 14;Ema18[0] = Ema18[1] * 17 / 19 + Close[0] * 2 / 19;Ema24[0] = Ema24[1] * 23 / 25 + Close[0] * 2 / 25;//再计算各Pbx值Pbx1[0] = (Ema4[0] + MA(0,8) + MA(0,16))/3;Pbx2[0] = (Ema6[0] + MA(0,12) + MA(0,24))/3;Pbx3[0] = (Ema9[0] + MA(0,18) + MA(0,36))/3;Pbx4[0] = (Ema13[0] + MA(0,26) + MA(0,52))/3;Pbx5[0] = (Ema18[0] + MA(0,36) + MA(0,72))/3;Pbx6[0] = (Ema24[0] + MA(0,48) + MA(0,96))/3;
}/*
//*****【文华财经瀑布线公式实现】 对比文华赢顺云交易软件,实际公式并不是这个,废弃不用 *****
//PB1:EMA(CLOSE,9);
//PB2:EMA(CLOSE,12);
//PB3:EMA(CLOSE,19);
//PB4:EMA(CLOSE,27);
//PB5:EMA(CLOSE,39);
//PB6:EMA(CLOSE,49);void KLineData::CalPbx()
{int i;Pbx1[MAX_BARS-1] = Close[MAX_BARS-1];Pbx2[MAX_BARS-1] = Close[MAX_BARS-1];Pbx3[MAX_BARS-1] = Close[MAX_BARS-1];Pbx4[MAX_BARS-1] = Close[MAX_BARS-1];Pbx5[MAX_BARS-1] = Close[MAX_BARS-1];Pbx6[MAX_BARS-1] = Close[MAX_BARS-1];for (i= MAX_BARS-2; i>=0; i-- ) {Pbx1[i]=Pbx1[i+1]*8/10 + Close[i]*2/10;//9Pbx2[i]=Pbx2[i+1]*11/13 + Close[i]*2/13;//12Pbx3[i]=Pbx3[i+1]*18/20 + Close[i]*2/20;//19Pbx4[i]=Pbx4[i+1]*26/28 + Close[i]*2/28;//27Pbx5[i]=Pbx5[i+1]*38/40 + Close[i]*2/40;//39Pbx6[i]=Pbx6[i+1]*48/50 + Close[i]*2/50;//49};
}void KLineData::CalLastPbx()
{Pbx1[0]=Pbx1[1]*8/10 + Close[0]*2/10;//9Pbx2[0]=Pbx2[1]*11/13 + Close[0]*2/13;//12Pbx3[0]=Pbx3[1]*18/20 + Close[0]*2/20;//19Pbx4[0]=Pbx4[1]*26/28 + Close[0]*2/28;//27Pbx5[0]=Pbx5[1]*38/40 + Close[0]*2/40;//39Pbx6[0]=Pbx6[1]*48/50 + Close[0]*2/50;//49
}
*//* CCI指标计算公式【经查询获得文华CCI的具体公式如下】:
TYP:=(CLOSE+HIGH+LOW)/3;
CCI:(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N));MA(X,5)=(X1+X2+X3+X4+X5)/5AVEDEV(C,3) = (ABS(C-(C+REF(C,1)+REF(C,2))/3)+ABS(REF(C,1)-(C+REF(C,1)+REF(C,2))/3)+ABS(REF(C,2)-(C+REF(C,1)+REF(C,2))/3))/3;*///算术平均计算函数
double KLineData::MaTyp(int index,int N)
{int j;double tmp;tmp = 0;for(j=index;j< index + N;j++){tmp = tmp + Typ[j];}return (tmp/N);
}
//平均绝对偏差计算函数
double KLineData::AveDevTyp(int index,int N)
{int j;double tmp;tmp = 0;for(j=index;j< index + N;j++){tmp = tmp + fabs( Typ[j]-MaTyp(index,N) );}return (tmp/N);
}void KLineData::CalCci()
{int i;for (i= MAX_BARS-1; i>=0; i-- ){Typ[i] = (Close[i] + High[i] + Low[i])/3;}for ( i = MAX_BARS -14-1; i>=0; i--) {Cci[i] = ( Typ[i] - MaTyp(i,14) ) / (0.015*AveDevTyp(i,14));}
}void KLineData::CalLastCci()
{Typ[0] = (Close[0] + High[0] + Low[0])/3;Cci[0] = ( Typ[0] - MaTyp(0,14) ) / (0.015*AveDevTyp(0,14));
}void KLineData::CalAllIndicators()
{CalBoll();CalMacd();CalKdj();CalPbx();CalMa();CalCci();
}void KLineData::CalAllLastIndicators()
{CalLastBoll();CalLastMacd();CalLastKdj();CalLastPbx();CalLastMa();CalLastCci();
}void KLineData::ShiftKlineDataOne()
{int loop;for(loop = MAX_BARS-1; loop >= 1 ; loop--) {Open[loop] = Open[loop-1];Close[loop] = Close[loop-1];High[loop] =  High[loop-1];Low[loop] =  Low[loop-1];};
}void KLineData::LogArrayData( string InitStr, double ArrayData[],int LogCount )
{int loop;string OutStr;char TmpStr[100];OutStr = InitStr;for(loop=0;loop < LogCount; loop++ ){sprintf_s(TmpStr,"     %.2f",ArrayData[loop]);OutStr = OutStr + TmpStr;};pLog->addLog(OutStr);}void KLineData::LogKlineData()
{pLog->addLog( "------------------------------------------------------------------------------" );LogArrayData("[K 线开盘价]:: ",Open,MAX_LOG_NUM);LogArrayData("[K 线最高价]:: ",High,MAX_LOG_NUM);LogArrayData("[K 线最低价]:: ",Low,MAX_LOG_NUM);LogArrayData("[K 线收盘价]:: ",Close,MAX_LOG_NUM);pLog->addLog( "------------------------------------------------------------------------------" );LogArrayData("[布林中线值]:: ",BollMid,MAX_LOG_NUM);LogArrayData("[布林上线值]:: ",BollTop,MAX_LOG_NUM);LogArrayData("[布林下线值]:: ",BollBottom,MAX_LOG_NUM);pLog->addLog( "------------------------------------------------------------------------------" );LogArrayData("[MACD-Diff]:: ",MacdDiff,MAX_LOG_NUM);LogArrayData("[MACD -Dea]:: ",MacdDea,MAX_LOG_NUM);LogArrayData("[MACD-Macd]:: ",MacdMacd,MAX_LOG_NUM);pLog->addLog( "------------------------------------------------------------------------------" );LogArrayData("[KDJ - K值]:: ",KdjK,MAX_LOG_NUM);LogArrayData("[KDJ - D值]:: ",KdjD,MAX_LOG_NUM);LogArrayData("[KDJ - J值]:: ",KdjJ,MAX_LOG_NUM);pLog->addLog( "------------------------------------------------------------------------------" );LogArrayData("[PBX1---值]:: ",Pbx1,MAX_LOG_NUM);LogArrayData("[PBX2---值]:: ",Pbx2,MAX_LOG_NUM);LogArrayData("[PBX3---值]:: ",Pbx3,MAX_LOG_NUM);LogArrayData("[PBX4---值]:: ",Pbx4,MAX_LOG_NUM);LogArrayData("[PBX5---值]:: ",Pbx5,MAX_LOG_NUM);LogArrayData("[PBX6---值]:: ",Pbx6,MAX_LOG_NUM);pLog->addLog( "------------------------------------------------------------------------------" );LogArrayData("[CCI----值]:: ",Cci,MAX_LOG_NUM);pLog->addLog( "------------------------------------------------------------------------------" );}

c语言程序化交易:如何计算K线指标相关推荐

  1. mt4 指标 涨跌幅 颜色k线_通达信精选指标——彩色K线指标

    通达信精选指标--彩色K线指标 VAR1:=LLV(L,10); VAR2:=HHV(H,25); 趋势:=EMA((C-VAR1)/(VAR2-VAR1),10); AA:=趋势>=REF(趋 ...

  2. 预测大盘最准确的指标_迄今最权威的大盘预测K线指标下载

    迄今最权威的大盘预测K线指标下载详细说明 第一股票公式网(www.chnmoney.com)告诉您:当前正要下载:迄今最权威的大盘预测K线指标下载 迄今最权威的大盘预测K线指标 K13:EXPMA(I ...

  3. 程序化交易常用的监管指标

    本节将梳理相关监管指标,以便于针对我国在细化和加强程序化交易的监管提供可选依据及路径,建立健全适合国情的程序化交易监管指标体系. 1.成交量和指令信息流 成交量(Volume)和指令信息流量(Mess ...

  4. C++连接CTP接口实现简单量化交易(行情、交易、k线、策略)

    对于量化交易来说,量化策略和技术系统缺一不可,为了知其所以然,本文实现了一个C++连接CTP接口进行仿真交易的demo,从接收行情.下订单.数据处理到添加策略.挂载运行交易等多个环节来看一下量化交易的 ...

  5. 【软件领域知识整理】贵金属交易的K线图解释(二)

    从事金融领域K线图的认识是少不了,整理一下K线图的基本知识. 如图例: 关于K线图的维基百科说明:http://zh.wikipedia.org/zh-cn/K%E7%BA%B 贵金属交易中常见的21 ...

  6. 股票K线指标算法整理(Java封装工具类)

    工具类下载地址: https://download.csdn.net/download/qq_28844947/11088865 可查看应用效果之一:https://www.coinsmt.com/f ...

  7. 股票macd指标java,股票K线指标算法整理(Java封装工具类)

    工具类下载地址: https://download.csdn.net/download/qq_28844947/11088865 可查看应用效果之一:https://www.coinsmt.com/f ...

  8. mt4 指标 涨跌幅 颜色k线_通达信指标公式源码阴线买股+黄金K线指标+源码

    源码: TT2:=DMA((((HIGH + LOW) + (CLOSE * 2)) / 4.15),0.9); TT1:=REF(EMA(TT2,3),1); RSV:=(CLOSE-LLV(LOW ...

  9. python通达信5分钟转,10分钟,15分钟,30分钟,60分钟,量化交易,K线

    import osimport pandas as pdfrom pandas import Timedeltafrom stock_c.csv2dataframe import import_csv ...

最新文章

  1. 蠕虫mysql_警惕!MySQL蠕虫再度对Windows发动攻击
  2. github 视觉测量_计算机视觉八大任务全概述:PaddlePaddle工程师详解热门视觉模型...
  3. yolov5剪枝开源分享
  4. LogMiner学习笔记
  5. python学习笔记8--socket编程
  6. 【Git】pull遇到错误:error: Your local changes to the following files would be overwritten by merge:
  7. c#简单自定义异常处理日志辅助类
  8. java 防止js注入_在WebView中如何让JS与Java安全地互相调用
  9. 腾讯云数据库团队:MySQL AHI 实现解析
  10. 解决HP无线键盘无法连接的问题
  11. [项目管理-28]:四象限法与任务的时间优先级管理
  12. c#(WinForm)绘制两个圆的内公切线
  13. linux rsh通信实现_RSH的网络通信细节
  14. springboot 应用:异常管理,应用启动过程,应用监控 Prometheus 和 Grafana
  15. 微信小程序背景图片不显示
  16. ECharts之饼状图
  17. springboot之整合Elasticsearch实现搜索
  18. Kingbase数据库实验四 数据库系统的概要、逻辑、物理设计
  19. mc服务器 领地插件配置文件,Residence插件 领地插件 | 我的世界 | MC世界侠
  20. 叠氮-三聚乙二醇-琥珀酰亚胺1245718-89-1Azido-PEG3-NHS ester

热门文章

  1. 计算机专业毕业论文SSM实现的网上书城系统|商城电商购物[包运行成功]
  2. 无法找到打印机microsoft xps document writer
  3. matlab阵列天线波束扫描,Matlab在相控阵天线中的应用.pdf
  4. 单相并网逆变器孤岛检测Simulink仿真
  5. 计算机 如何设置页面文件,电脑怎么设置设置虚拟内存或者页面文件?
  6. MOSFET和IGBT栅极驱动器电路的基本原理学习(2)
  7. vs2012运行项目报未能加载文件或程序集“System.Web.Mvc, Version=4.0.0.1,Culture=neutral”问题和解决方法...
  8. C#数据库sqlit,未能加载文件或程序集“System.Data.SQLite, Version=
  9. java 8 新特性_Java8新特性Stream
  10. 2021年金融机构贷款投向统计报告