
大家好!今天我们来聊聊如何利用单一移动平均线优化交易策略。这种方法是基于 MA 盈利的理念,不过我们只使用单一移动平均线,而不是交叉移动平均线系统。
使用单一移动平均线可以加速优化过程,几乎能在短时间内检查从 10 到 1000 的所有移动平均线。
利用单一移动平均线可以产生三种交易信号,通常适合使用较大的移动平均线,比如 150 或者 500 以上:
- 曲线在蜡烛下方 - 买入
- 曲线在蜡烛上方 - 卖出
- 曲线水平并多次穿过蜡烛 - 平仓并等待
通过切换周期,所有内容都会重新计算,你可以检查不同时间框架(分钟、小时、天等)是否显示相同信号。通常多个时间框架显示的信号会更强。此外,你也可以切换到较低的时间框架,以寻找进场的机会。
该指标会绘制四种类型的三角形:
- 红色粗边框:短线交易获利
- 红色细边框:短线交易亏损
- 绿色粗边框:长线交易获利
- 绿色细边框:长线交易亏损
当有新的信号出现时,该指标可以显示警报或者通过语音输出提醒你。此时你需要使用 speak.dll,具体可以参考 这里。
指标会在状态栏中显示信号的状态和数量,包括正确和错误的信号。
优化可以分为两种模式:
- 模拟交易。最好的移动平均线是带来最佳利润的那一个。
- 计算蜡烛之间的交点。曲线与蜡烛接触的时间越少,移动平均线越好。
参数设置如下(查看源代码也很重要):
extern bool bOptimize=true; // True: 通过优化找到最佳单一移动平均线(切换时间框架重新优化)
extern bool bOptimizeIntersect=true; // True: 优化以最小化交点,否则优化以最大利润
extern int PeriodMA=400; // 如果不想优化,可以定义一个周期
extern int Method=0; // 移动平均线方法 0 = 简单,1 = 指数,2 = 平滑,3 = 线性加权
extern bool DrawTringles=true; // 为模拟交易绘制三角形
extern int MinMA=5; // 优化的最小测试值
extern int MaxMA=500; // 优化的最大测试值
extern int StepMA=1; // 优化步骤,1 测试每个移动平均线,10 测试每第 10 个等
extern int CountOptimize=300; // 优化用的蜡烛数量
extern int RepaintBars=3000; // 绘制三角形和计算盈亏的蜡烛数量
extern bool Alarm=true; // 新信号时触发可视警报
extern bool bSpeak=true; // 使用 gspeak 语音提醒
移动平均线交易能够提供一些非常不错的信号,但也会出现许多错误信号。我目前正在寻找更多过滤错误信号的想法,以便发布我的移动平均线专家顾问。
请大家在使用时自行承担风险!