序列变量的载体
上一讲举了一个简单的例子,现在继续用这个例子来讲解。
它使用的策略是:长阳达到X且在均线之上买进,长阴达到X且在均线之下买进。代码是:
public class Signal //信号结构体
{
//定义信号数据,自己写
public Signal(string 下单方式)
{
//根据买开还是买平还是卖开还是卖平什么的,信号数据怎么变,自己写
}
}
public class Strg //策略管理器
{
static List<double> K线序列 = new List<double>();
static List<double> 均线序列 = new List<double>();
//K线序列,有行情模块给它增加元素,这里不用管
//但均线序列需要在这里增加
static void 更新均线(int N) //这个函数是简化了的,它是假设每根K线只更新一次均线的算法
{
//若要每个tick都更新均线,代码就比较多了,这里先不说
if (N <= 0) return;
int K线根数 = K线序列.Count;
if (K线根数 < N) return;
if (K线根数 == N)
{
double sum = 0;
for (int i = 0; i < N; i++) sum += K线序列[i];
double 均线值 = sum / (double)N;
均线序列.Add(均线值);
}
else //if (K线根数 > N)
{
double 上一根K线的均线值 = 均线序列.Last