最初的程序化交易策略编写.doc
- 文档编号:991290
- 上传时间:2022-10-15
- 格式:DOC
- 页数:4
- 大小:128.16KB
最初的程序化交易策略编写.doc
《最初的程序化交易策略编写.doc》由会员分享,可在线阅读,更多相关《最初的程序化交易策略编写.doc(4页珍藏版)》请在冰豆网上搜索。
河北稳升软件科技有限公司量化云网站
最初的程序化交易策略编写
作者:
杨清婉
一般人第一眼看到程序交易,总觉得太困难又复杂。
其实,在避免人性干扰时又可以24hr执行监测,彻底执行设定好的策略,在投入真正资金前可以回测自己交易策略的绩效,即是自动化程序交易的目的。
程序交易的基础其实一点都不难,IfAhappens,thenbuy.IfBhappens,thensell.用中文来解释就是:
当符合某种情形时,就买进。
当符合某种情形时,就卖出。
所以我们只要去定义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 //当最低价低于开盘价时,卖出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)大于52,就在下一根K棒开始时(nextbar),市价(market)买进(buy)。 多单进场! 没有写手数就1手。 并在图上标记buy("buy")。 记得尾巴要写end;告诉电脑这部分策略的结尾。 marketposotion是指您在市场的部位, Marketposition=0没有部位, Marketposition=1手上多单, Marketposition=-1手上空单。 继续 ifmarketposition=0andvar1<48thenbegin sellshort("sell")nextbaratmarket; end; //空单进场! sellshort是空单的进场的语法并标记sell在图上。 ifmarketposition>0andvar1<48thenbegin sell("exit_buy")nextbaratmarket; end; //假如手上是多单而且RSI小于48,就把手中的多单市价平仓。 ifmarketposition<0andvar1>52thenbegin buytocover("exit_sell")nextbaratmarket; end; //假如手上是空单而且RSI大于52,就把手中的空单市价平仓。 MultiChartsRSI策略完整程序码 inputs: Price(close),Len(12); vars: var1(0); var1=RSI(Price,len); ifmarketposition=0andvar1>52thenbegin buy("buy")nextbaratmarket; end; ifmarketposition=0=0andvar1<48thenbegin sellshort("sell")nextbaratmarket; end; ifmarketposition>0andvar1<48thenbegin sell("exit_buy")nextbaratmarket; end; ifmarketposition<0andvar1>52thenbegin buytocover("exit_sell")nextbaratmarket; end;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最初 程序化 交易 策略 编写