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

in #cn-programming7 years ago (edited)

在上一篇文章中,介绍了许多人利用"趋势" 赚点数, 当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纸,解题,测试,回测,失败,许多算法都超过了我自己的学识,只有翻资学习, 在以后我会讲解这一路的过程, 如果你们感兴趣,也可以写出自己的策略,欢迎交流讨论.

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

Sort:  

Hi myfirst, great post on techincal analysis. It is fun seeing applying this to alt coin trading as usually we use that on commodity and fx trading. I am experiencing to arbitrage from steem internal market and bittrex but only find that the spread is too wide and the liquidity is too low. Similar i wonder if the backtest give you signal, for more observations, would the slippage too high?

Thanks, this article, I did not translate into english, I am writing this deal EA strategy program is not solve the arbitrage problem, Steemit arbitrage, bittrex trading volume too little, If the difference between poloniex and bittrex is large, it can be arbitrage,I am currently writing this EA mainly to solve foreign exchange automatic trading

複杂的法门啊!学习学习!
天道酬勤,会有好回报的!

每根K线都是钱,很难算,但不是无解 :)

Thanks for the information @myfirst

Très bon article et merci pour les informations. Upvote or follow me please 😊

这个牛!我脑子只想简单的事。这个太复杂。

一篇挺好的教學!!

找高低點 很多策略也會用到..
特別是動態的SL 跟 TP.

好厉害,不明觉厉,哈哈。

This is awesome, thanks for the post.

Coin Marketplace

STEEM 0.16
TRX 0.16
JST 0.029
BTC 60745.98
ETH 2342.23
USDT 1.00
SBD 2.52