先理清几个概念。
策略
这是交易思路。
举一个简单的例子。下文都用这个例子来说明问题。
假如我给自己规定:“每当出现长阳,我就买进,每当出现长阴,我就卖出。”这就是一个策略。
姑且不说这个策略是否有效,是否简单低幼,现在只是拿它做个例子,说明编程的很多问题。
首先要用代码把交易思路固定下来,类似于这样:
public class Strg //策略管理器
{
void 傻瓜策略(bool 长阳, bool 长阴)
{
if (长阳) {
买平(); 买开(); }
else if (长阴) {
卖平(); 卖开(); }
}
void 买平() {
}
void 买开() {
}
void 卖平() {
}
void 卖开() {
}
}
这个函数“void 傻瓜策略()”,就是一个策略。
它的名称,应该出现在软件界面的一个下拉菜单中。你在做历史测试之前,在在给实盘方案配策略之前,要点这个下拉菜单,“傻瓜策略”这四个字应该出现在其中:
傻瓜策略 ← 点击
单均线策略
双均线策略
海龟策略
河马策略
……
总之:
策略是交易思路;
它可以用代码写成函数;
回测或实盘用这个思路来交易时,访问这个函数。
参数
这是策略的输入数据。
比如,我把刚才的策略升个级,规定:
阳线长达X时买进,阴线长达X时卖出。
这个“X”,是这个策略的参数。
当这个策略用于镍这个品种时,我设X为500,那么,镍的K线长达500时,软件自动下单。
用于螺纹钢时,我又设X为40,就是说螺纹钢的K线有40那么长时就自动下单。
这个策略的代码就成了:
public class Strg //策略管理器
{
void 傻瓜策略(double X, double 最高价, double 最低价, double 开盘价)
{
if (最高价 >= 开盘价 + X) {
买平(); 买开(); }
else if (最低价 <= 开盘价 - X) {
卖平(); 卖开(); }
}
void 买平() {
}
void 买开() {
}
void 卖平(