外汇交易,寻找突破点及程序的实现 (原创)

Words
970
Reading
5 min
Listen
Play
9y

在上一篇文章中,介绍了许多人利用"趋势" 赚点数, 当K线形成对前高点,低点进行突破,大概率加速下跌或者上涨,而且幅度大, 许多做投资的交易者习惯画线来判断, 但利用写EA策略,第一个要解决的问题, 就是如何寻找这些高点,低点.

对比BTC期货交易, 我们OKCOIN调出的K线数据是数组类型,我读出5根5分钟的K线
得到的结果:

Array ( [0] => Array ( [0] => 1487075700000 [1] => 6753.9 [2] => 6753.9 [3] => 6726 [4] => 6753.9 [5] => 14.441 ) [1] => Array ( [0] => 1487076000000 [1] => 6749.1 [2] => 6753.9 [3] => 6733.33 [4] => 6733.55 [5] => 32.414 ) [2] => Array ( [0] => 1487076300000 [1] => 6735 [2] => 6748 [3] => 6720.32 [4] => 6720.41 [5] => 17.753 ) [3] => Array ( [0] => 1487076600000 [1] => 6748 [2] => 6748 [3] => 6718.8 [4] => 6718.8 [5] => 135.998 ) [4] => Array ( [0] => 1487076900000 [1] => 6718.8 [2] => 6730 [3] => 6718.8 [4] => 6730 [5] => 0.699 ) )
这种类型

但是外汇EA这语门言的读取数据逻辑更简单

最后一根K线的下标永远是0, 比如我要做5分钟的K线,屏幕上显示的分时是5分钟,最后一根(当前正在走动的这根线的下标就是0),以此往前推. 5分钟过后,新的K线出来了,前面就成了K1

读取这些K线的高低点就更简单了,查看帮助编程文档, 开盘价Open[]、最高价High[]、最低价Low[]、收盘价close[],
Open[0] 就是当前正在跑的K0的开盘价, 容易吧. 我这里不做介绍了

这是我随机截图的一张图,在没有运行我的策略, 你们能看出哪些是高点,哪些是低点的K线, 以及突破点


如果不是搞开发的,我想你很难在短时间内计算出这些点位,画线倒是很容易,一上一下,就画了个平行线或三角形态, 但程序EA是不会自己画线, 我在纸张先是计算对称点位, 每一根的K1线都计算高低点,看K1它前面已经运行的K2-K6线是否都比它低,或者比它高, 有了这个思路,写程序就容易了. 只需要结构里做判断 K2-K6是否比当前小,

虽然经常写代码,但这段代码还是花了我很长时间解决,如果智商高应该不需要那么久就能算出来,但我比较笨,程序语句不到100行,终于把这个关键问题解决了。

//+------------------------------------------------------------------+
//| 找出当前K线高点函数 |
//+------------------------------------------------------------------+
bool IsSalesHigh(int line)
{
for(int i=1; i<=Lines_left; i++)
{
if (line+i>=Lines) return(false);

  if (High[line] < High[line+i]) return(false);
 }

for(i=1; i<=Lines_right; i++)
{
if (line-i < 0) return(false);
if (High[line] < High[line-i]) return(false);
}
return(true);
}
//+------------------------------------------------------------------+

找低点的算法,刚好相反, 画出箭头和位置就更简单,EA程序自带这些接口,有兴趣写EA的可查找相关函数,顔色,位置都可调, 这门语言之所以简单,封装了许多接口给开发给调用, 程序一运行,得到下图,高高低低的点位全算出来了



S1,S2,S3代表着卖点,B1,B2,B3,B0代表着买点, 当前K线向下跌破 B1,B2,B3,就是一个向下的突破, 如果K线的高点超过S1,S2,S3就是向上突破, 你们画线的问题,我用程序解决了。

看到这组图买点,卖点都正确,只是已经走过的K线,能预测未来右边的6根K线正确,才会真正的赚到点数, 但这只是解决了我EA策略的一个问题, 所有的问题才刚刚开始。
在随后的两个月,计算超过了两打A4纸,解题,测试,回测,失败,许多算法都超过了我自己的学识,只有翻资学习, 在以后我会讲解这一路的过程, 如果你们感兴趣,也可以写出自己的策略,欢迎交流讨论.

有想法才去做,不做会后悔