期货期权交流写出你的第一个交易策略 [MC]
- 咨询内容:
自动化程序交易的目的最主要是彻彻底底的执行设定好的策略,避免人性的干扰,又可以24hr执行监测,可以在投入真正资金前,回测自己交易策略的绩效。平常交易时间还能把心力花在研拟策略上。
一般人第一眼看到程序交易,总想说太复杂困难,
其实程序交易的基础很简单,当符合某种情形时,就买进。当符合某种情形时,就卖出。
简单吧?
用英文来解释,其实就是:If A happens, then buy. If B happens, then sell.
所以我们只要去定义 A、B,以及更明确地把 Buy 、Sell的模式定义出来就好。这已经几乎快要变成咱们MC认得的 easy language 程序语言了。
很多人都以为写程序一定要工程背景的人才写得出来,其实不然。在交易领域里面,所使用的程序语言其实跟英文很像,而且所使用的英文都是很简单的。
电脑其实也是判断K棒的价格的变化来执行的,那K棒上最重要的四个价位,Open 开盘价,High 最高价,Close 收盘价,Low 最低价,这四个价格构成了一根K棒,也显示了价格的变化。
语法中Close > 100 (表示收盘价大于100 ),Low < 100 (最低价小于100 ),High > Open (最高价大于开盘价)。
上面是平铺直述的直述句,若是加上一点简单的 if ...then ...(假如...发生,就....),就可以变成一个可执行的策略,
举例: (先不考虑marketposition目前手中部位的情形)
if High > Open then buy next bar at market;//当最高价高于开盘价时,买进1手市价。
if Low < Open then sell next bar at market;//当最低价低于开盘价时,卖出1手市价。
备注: next bar是指下一根K棒,market是指市价。
再进阶一点的,就可以开始使用一些技术分析的指标来协助。以 RSI举例, RSI的中文名称是 相对强弱指标 Relative Strength Index ,是一个 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棒的收盘价。
if marketposition=0 and var1 >52 then beginbuy("buy") next bar at market;end;
//假如目前没有部位(marketposotion=0) 而且 var1(RSI)大于52,就在下一根K棒开始时(next bar),市价(market)买进(buy)。多单进场!没有写手数就1手。并在图上标记 buy ("buy")。记得尾巴要写 end; 告诉电脑这部分策略的结尾。
marketposotion是指您在市场的部位,
marketposition=0 没有部位,
marketposition=1 手上多单,
marketposition=-1 手上空单。
if marketposition=0 and var1 < 48 then beginsellshort("sell") next bar at market;end;// 空单进场! sellshort 是空单的进场的语法 并标记 sell 在图上。
if marketposition>0 and var1 <48 then beginsell("exit_buy") next bar at market;end;//假如手上是多单而且RSI小于 48,就把手中的多单市价平仓。
if marketposition<0 and var1 > 52 then beginbuytocover("exit_sell") next bar at market;end;//假如手上是空单而且RSI大于52,就把手中的空单市价平仓。
MultiCharts RSI 策略完整程序码
inputs: Price(close), Len(12);vars: var1(0);var1=RSI(Price,len);
if marketposition=0 and var1 >52 then beginbuy("buy") next bar at market;end;
if marketposition=0=0 and var1 < 48 then beginsellshort("sell") next bar at market;end;
if marketposition>0 and var1 <48 then beginsell("exit_buy") next bar at market;end;
if marketposition<0 and var1 > 52 then beginbuytocover("exit_sell") next bar at market;end;
(作者:老余的金融笔记)
程序语言, 最低价, 开盘价, 收盘价, 英文 - MC技术部: 新年快乐
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容