文档介绍:羃最初的程序化交易策略编写薂作者:杨清婉肇芅 一般人第一眼看到程序交易,总觉得太困难又复杂。其实,在避免人性干扰时又可以24hr执行监测,彻底执行设定好的策略,在投入真正资金前可以回测自己交易策略的绩效,即是自动化程序交易的目的。蚅 莀  程序交易的基础其实一点都不难,IfAhappens,,:当符合某种情形时,就买进。当符合某种情形时,就卖出。莁 蚆  所以我们只要去定义A、B,以及更明确地把Buy、Sell的模式定义出来就好。这已经几乎快要变成咱们MC认得的easylanguage程序语言了。膃 莃  难道一定要有工程背景的人才能写出程序吗?其实在交易领域里面所使用的程序语言与英文很像,而且使用的都是很简单的英文。蒁 肇  其实,电脑的执行也是依据K棒的价格变化,K棒上最重要的四个价位显示了价格的变化:Low最低价,Open开盘价,High最高价,Close收盘价。袅 膂薁 蒈  语法中Close>100(表示收盘价大于100),Low<100(最低价小于100),High>Open(最高价大于开盘价)。芃 袁  上面是平铺直述的直述句,若是加上一点简单的if...then...(假如...发生,就....),就可以变成一个可执行的策略,蚀 蚅  举例:(先不考虑marketposition目前手中部位的情形)肅 蚀   螀ifHigh>Openthenbuynextbaratmarket;肆//当最高价高于开盘价时,买进1手市价。蒃 蚃ifLow<Openthensellnextbaratmarket;螀//当最低价低于开盘价时,卖出1手市价。蒇 膅  备注:nextbar是指下一根K棒,market是指市价。蒂 袀  再进阶一些可以开始使用一些技术分析的指标来协助。例如RSI,中文名称是相对强弱指标RelativeStrengthIndex,是一个0~100的指标,50以下代表目前偏空,50以上代表目前偏多。袈 蚂  我们来一起写一个简单的策略:芁 羀  RSI大于52买进1口(做多),RSI小于48卖出1口(做空or平仓),(意思是,趋势转向上,我就跟跟看,趋势转向下就快跑),羄 莄  首先我们得知道什么是变数,望文生义,就像开车时的时速表,就是在程序执行中,会一直变动的数字。罿 肀  所以我们得先告诉电脑,RSI的定义。这个动作叫做宣告。莅 袂所以在策略一开头,肂 膀inputs:Price(close),Len(12);螆//input是未来可以在MC里调整的参数,price(收盘价)以及时间周期Len(在这边是12根K棒),薄 螁vars:var1(0);芀//vars告诉系统我们要宣告变数了,定义一下var1变数(variable),告诉电脑我们有这个变数要侦测。膇 羂var1=RSI(Price,len);薀//定义,var1=RSI让var1这个变数等于指标RSI,而且是用上面定义的时间以及价格参数去计算RSI,此例为12根K棒的收盘价。荿 薈ifmarketposition=0andvar1>52thenbegin蚄buy("buy")nextbaratmarket;蚃end;荿 蚅//假如目前没有部位(marketposotion=0)而且var1(RSI