大家好我是郑在爽。
众所周知我的本职工作是名程序员,以前每天打交道的都是java python c 。
在几年前开始接触量化交易后,我掌握的语言又多了一门MQL。
初识MQL
跟学其他语言一样,MQL我也是从看别人的代码开始学起。不过不像其他语言,有很多的参考资源和网站。MQL的参考资料只有官网的API手册,还有官网论坛一些热心群众的交流。这种环境下学MQL基本靠悟性和逆向水平了。
当我看着这一堆逆向后的代码,里面甚至有中文命名的变量的时候,我的内心是崩溃的..
后来看了一段时间的逆向代码,逐渐也就习惯了直接从逆向代码理解程序逻辑。再过了一些日子,也就能自己学着写一些代码碎片了。只是在我写下第一行MQL的时候,也没想到一个月后就有第一笔正收益。
量化交易的核心逻辑
实际上对于有一定代码素养的开发来说,理解量化交易最关键只需要弄明白三个东西。
【择时,出场,止损】
择时指的是在什么时候做开仓操作。出场则说的是在什么条件下选择平仓。而止损就是当行情出现不可控制的偏离之后啥时候亏损平仓。
学会择时,花了我两天。
学会出场,也不过花了一个星期时间。
但是学止损,到现在也不敢说学会。
作为一个写了快十年代码的开发,写第一行择时逻辑代码其实没花多少时间。
再复杂的代码逻辑无非是流程,条件,循环的组合,择时逻辑也是一样。比如你是一个依靠指标交易的操盘手,你的择时逻辑是当看到CCI指标高于100的时候就买入一个标的。
CCI是反映一个商品超买或者超卖的一个指数,很多量化框架可以通过API知道某个标的的CCI值。所以这个择时逻辑用伪代码就是:
代码语言:javascript复制if( cci(symbol) > 100)
{
sendOrder(symbol, order_sell);
}
这行代码会在你的仓位上开一个空单,然后等到这个标的跌到你想让它平仓的时候,就可以获利出场了。
这是我刚开始学量化交易时写的第一段代码。再加上其他的交易逻辑,验证逻辑,大概花了一个月时间就上线了。
第一笔交易给我赚了多少钱呢,其实也不多,当时下的是一笔 0.01 手的 USDCHF多单,盈利300个小点,算下来大概3美刀多一点的利润。
然而知道什么时候开仓只是入门水平,学会了什么时候出场才算上了道。我到现在还不敢说百分百有把握知道出场时机,所以都交给程序自己去判断。程序不会犯错,人才会犯错。
在2015年,A股从5000点掉下去之前,每个人都觉得牛市刚开始,毕竟美股的股指都两万多点了,大A涨到一万点很合理吧。而且那个时候只要随便买入一个标的,只要放着不动不乱操作就能盈利。
可在那么多散户投资者里,敢在李大霄喊着还要涨的时候退场不进的,并没多少。相反,还有很多人在5000点的时候跑步进场开户。
那时候的我,包括身边炒股的朋友,直到大A股开始熔断之前,都还觉得自己是股神。