以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  交易策略发布专区  (http://weistock.com/bbs/list.asp?boardid=10)
----  [原创]根据杨永彬介绍、编写的代码策略,大家学习学习  (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=50039)

--  作者:uk198971
--  发布时间:2013/3/21 16:44:28
--  [原创]根据杨永彬介绍、编写的代码策略,大家学习学习
{这也是我们经常使用的移动平均线交叉系统,我们使用的是3分钟的线,这个系统也非常简单,
短期(8)移动平均线位于长期(11)移动平均线上方,现价大于最近14根K线最高价的0.2%倍时,买入开仓。
短期(8)移动平均线位于长期(11)移动平均线下方,现价小雨最近14根K线最低价的0.2%倍时,卖出开仓。
这个市场里有短期上升和长期上升,这种情况发生的非常多。}



原文只有买入卖出的条件,我加入了一些平仓语句、大家试试效果咋滴、

--  作者:uk198971
--  发布时间:2013/3/21 16:48:03
--  
附件是代码文件FLA 跟DOCX、、、因为上传的限制、大家改改格式、
--  作者:uk198971
--  发布时间:2013/3/21 16:51:24
--  
{这也是我们经常使用的移动平均线交叉系统,我们使用的是3分钟的线,这个系统也非常简单,
短期(8)移动平均线位于长期(11)移动平均线上方,现价大于最近14根K线最高价的0.2%倍时,买入开仓。
短期(8)移动平均线位于长期(11)移动平均线下方,现价小雨最近14根K线最低价的0.2%倍时,卖出开仓。
这个市场里有短期上升和长期上升,这种情况发生的非常多。}

//////////////////////////////
M:=BARSLAST(DATE<>REF(DATE,1))+1;
MA8:SUM(C,8)/8;//这样计算相当于SMA
MA11:SUM(C,11)/11;

手数:=1;
H14:HHV(REF(H,1),14)*(1+0.002);
L14:LLV(REF(L,1),14)*(1+0.002);

////////////////////////////////////////
Buy1:=C>H14 AND MA8>MA11;
Sell1:=C<L14  AND MA8<MA11;
SS:=手数;     {开仓手数}
ZsDs:=3;     {平仓点数}
//以下变量用于移动止盈,,移动止盈只能保证你尽可能稳健盈利,却不能保证盈利最大化,如果不想使用,可是将总开关设置为0
variable:YdZy=1;     {移动止盈总开关,1为开,0为关}
variable:HighPrice=0,LowPrice=0; {保存开仓后的最高价、最低价}
variable:DHcDs=2,KHcDs=2;   {多、空单回撤点数}
variable:DYlDs=5,KYlDs=5;   {多、空单盈利点数,当盈利点数达到这个标准后,如果回撤达到上面的参数值就平仓}
variable:Z3B1:=1;     {赚5保1开关,1为开,0为关}
DuoKong:=1;
/////////////////////////////////////////////////////////////////
variable:a1:=0;
variable:a2:=0;
variable:c1:=1;
if (Buy1) and c1>0 then begin
  a1:=time0;
  a2:=c;
  c1:=-1;
end
if not((Buy1)) then begin
  a1:=time0;
  a2:=c;
  c1:=1;
end
cxsj:=(time0-a1)>=3 or not(islastbar); {信号持续成立的时间,等于0表示没有信号}
///////////////////////////////////////////////////////////////////
//持有空单
If Holding<0 then Begin
 If Buy1 then begin   //平空单
  空平:SellShort(1,0,mkt),orderqueue;
 End
 
 //止损
 If C-LOW>ZsDs then begin
  SellShort(1,0,mkt),orderqueue;
 End
 
 //移动止盈
 If YdZy=1 then begin
  //每周期判断是否创新低
  If L<LowPrice then begin
   LowPrice:=L;
  End 
  
  //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利
  If Enterprice-LowPrice>=KYlDs then begin
   If L-LowPrice>=KHcDs Then Begin  //回撤超过3点
    空赢:SellShort(1,0,market);
   End 
  End 
 End
 
 //赚3保1
 If Z3B1=1 then begin
  If Enterprice-LowPrice>=3 then begin
   If Enterprice-L<=1.2 then begin
    空保:SellShort(1,0,market);
   End
  End
 End
End
//开多单
If holding=0 then begin
 If DuoKong=1 Or DuoKong=2 then begin
  If Buy1  AND cxsj then begin
   多开:Buy(1=1,SS,mkt);
   HighPrice:=Enterprice;  //将开仓价保存到最高价
  End 
 End
end
//持有多单
If Holding>0 then Begin
 If Sell1 then begin  {平多单}
  多平:Sell(1,0,mkt),orderqueue;
 End
 
 //多单管理
 //止损
 If HIGH-C>ZsDs then begin
  Sell(1,0,mkt),orderqueue;
 End
 //移动止盈
 If YdZy=1 then begin
  //每周期判断是否创新高
  If H>HighPrice then begin
   HighPrice:=H;
  End 
 
  //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利
  If HighPrice-Enterprice>=DYlDs then begin
   If HighPrice-H>=DHcDs Then Begin  //回撤超过3点
    多赢:Sell(1,0,market);
   End 
  End 
 End
 //赚3保1
 If Z3B1=1 then begin
  If HighPrice-Enterprice>=3 then begin
   If H-Enterprice<=1.2 then begin
    多保:Sell(1,0,market);
   End
  End
 End
End
//开空单
If holding=0 then begin
 If DuoKong=1 Or DuoKong=3 then begin
  If Sell1   AND cxsj then begin
   空开:BuyShort(1=1,SS,mkt);
   LowPrice:=enterprice;
  End 
 End
end
//在日内尾盘收盘的时候清掉所有方向的单
IF HOLDING<>0 AND TIME>145930 THEN BEGIN
IF HOLDING>0  THEN BEGIN
尾多:SELL(1,0,THISCLOSE);
End
IF  HOLDING<0  THEN BEGIN
尾空:SELLSHORT(1,0,THISCLOSE);
End
End

[此贴子已经被作者于2013-3-21 16:51:46编辑过]

--  作者:uk198971
--  发布时间:2013/3/21 16:53:07
--  
杨永彬:程序化期货交易策略 2012年8月25日下午,由永安期货举办的“2012年永南期货首届量化投资国际峰会”在杭州举行。本次峰会的主题是,“量化未来—开创程序化黄金时代”。在会上,来自美国、韩国的程序化交易专家分享了他们的投资经验。   来自韩国的程序化交易专家杨永彬做了主题为《程序化期货交易策略与中国期货市场展望》的演讲。   杨永彬是韩国程序化交易专家,北京时盈通资产管理有限公司副总经理兼投资总监。同时,他也是韩国首尔大学天文学学士、经济学硕士,历任韩国证券门户网站PAXNET金融衍生品部主管、韩国Delta Exchange金融工程部主管,并创办了投资管理公司Maximin System。杨永彬曾多次作为特聘讲师为韩国证券期货交易所、大宇证券、韩亚证券等多家韩国机构培训程序化交易。著有畅销书《期货期权实战策略》(韩国),翻译了杰克?施瓦格的《新金融怪杰》(The New Market Wizards)。   杨永彬:大家好!   今天我的演讲分为三个部分,通过这三个部分我跟大家探讨一下。这三个过程分别是三个系统,第一个系统是单双数系统,第二个系统是移动平均线系统,第三个系统是止损系统。   我首先来跟大家探讨一下最简单的单双数系统,我们每天在开盘之前,通过扔筛子来决定我怎么进行交易,扔筛子结果的如果是一个单数,我就买入开仓,如果是双数我就卖出开仓,当天是开盘价入场,收盘价离场。这是一个非常简单的系统,效果我们来看一看,我们为了把问题简单化,我们把止损定为零。   这个图分两部分,上面部分是中国市场的波动性,下面的图是单双数系统的业绩。这个数据是今年年初的,之后没有及时的更新,这个系统每天最多做一次交易。上面这个图我用绿色的线标出来几个部分,第一个绿色圈的部分带动波动率上升了,它的业绩也有向上的攀升。下面这个图有三条颜色的线,红色的线代表单双数系统设置一个1%的止损,蓝色的是0.5%的止损,绿色的线是0.8%的止损。红色的线它是获利了28万元,我们真实的交易手续费是150块—300块,这样我们的收益率有15万元左右。   我们知道,在真实的市场里边,投资者绞尽脑汁想各种办法进行交易,但是我们看这个非常简单的单双数系统,通过扔筛子进行交易也可以获利15万元,那在这个市场上很多投资者还不如这个单双数系统。   我为什么要在这里说单双数系统呢?如果我们对单双数系统进行延伸的话,我们发现这个系统的本质和传统的系统。由于时间的原因,对两个系统之间具体的比较我就不多说了,我这里简单提一下。   我们每天开仓之前使用两个单双数系统,假设这两个单双数系统出现的结果一个是单数,一个是双数,如果我们这样做的话,就发现这两个单双数系统跟波动系统非常的相似。这个系统是不是只适合于中国市场呢?不是这样的,在韩国我也拿这个数据试了一下,发现结果也是一样的,这个数据周期比较长一点,大概有11年的时间。   这上面是波动性的图,下面是系统的收益。我们通过这个图可以看到杭州市场最近的情况,可以通过这个系统看到杭州波动市场的区域。杭州市场是一个小规模的经济体的缩影,小规模经济体的特征,无外乎受大规模的经济体影响非常大。比如说美国纳斯达克市场如果是上涨的话,第二天杭州市场马上会有一个反映,这样就会跳空,缺口就会非常大。这个图也可以看出韩国市场最终波动性下降非常多,所以杭州市场空间就越来越小了。我们看上面波动性的图,可以看到波动性最高的时候刚好是2008年的金融危机。   第二个韩国市场波动的原因是由于竞争越来越激烈,像高频交易的手段逐渐流入市场,整个市场竞争越来越激烈。我有一个朋友是做高频交易的,每天有80万笔,成交可以成交5000—10000的样子,像这样的交易方式流入市场的话,整个市场活跃性就会随之加速很多。所以我觉得中国市场目前最大的区别,就是中国市场经济规律非常大,受外部影响小一些,第二我们资本市场还没有完全开放,投资者比较少,所以这两者是比较大的区别。近期做交易会发现国内市场波动性也在逐渐走低,这样做切割系统的正在经受煎熬。   这个图上面是中国股指期货的走势,下面是波动率的图。这是最近的情况,可以看到这个波动性最低降到10左右,10是非常低的波动性,我个人还是比较乐观的,我觉得这个波动性经过一段时间还是会有回归的。   这个图上面是每个月收益的情况,下面这个图是日内波幅,也就是日内最高价和最低价的绝对值。通过这个图比较可以发现,日内波幅大的交易占的收益比较大,波动小的收益也相对较小。   下面我跟大家探讨一下我们的第二个系统。   这个系统也非常简单,我们在做股票的时候大家会经常使用移动平均线的指标,这个系统是用一个软件编写的,我们看这个代码很简单。这个交易流程也非常简单,首先使用15分钟的线,在这个移动平均现价的时候有三个数值,在股票上它也是这样操作,如果线上突破了我们就买入,如果现价突破我们就卖出,我们还加入了一个过滤器,单纯限价在平均值上提了1.01,卖出这块是0.995,现价如何突破达到平均值1.5倍的时候我们就卖出。这个系统非常简单,我们只是有一个入场的条件,有一个过滤器,我们都没有加入止损或者是止营条件。如果我们在这个代码上加入一个止损或者是止营条件,结果可能会更好。这个系统还有一个隔夜系统,这里面手续费也是单边150的手续费。这是一个非常简单的系统,就是在大家常用的技术指标基础上加入了一个过滤器。我们再来看一下它的结果会怎么样。   它的净利润是506580,MDD是82020,净利润/MDD=6.18。这是非常好的一个系统。   这也是我们经常使用的移动平均线交叉系统,我们使用的是3分钟的线,这个系统也非常简单,短期(8)移动平均线位于长期(11)移动平均线上房,现价大于最近14根K线最高价的0.2%倍时,买入开仓。短期(8)移动平均线位于长期(11)移动平均线下方,现价小雨最近14根K线最低价的0.2%倍时,卖出开仓。这个市场里有短期上升和长期上升,这种情况发生的非常多。这个系统和前面的一样的,也是150元的手续费,假设它是隔夜的。大家可以用这个代码回去看一下,试试会怎么样。   这个系统的结果比刚才还要好一点,因为净利润达到了580740,MDD是85200,下面我们把这两个系统结合在一起再看看结果会怎么样。   把两个系统放在一起,假设多策略组合交易,这是一个真实的数据,我用这两个系统交易到现在可以获益1087320=策略A净利润+策略B净利润,MDD是111240。通过这个可以非常直观的看到,如果把这两个系统放在一起,可以提高它的收益率。   这张图是移动平均线交叉的画面,这些部分是卖出开仓的,移动平均线信号很多是交叉的,我们把这个系统中加上过滤,不能让这些交叉的都有信号发出。   通过我刚才的介绍,发现这个简单的系统在市场上是非常有效的,大家可以去考察一下。另外刚才这个系统大家可以放不同的数据,去试一下,可以开发出很多很好的系统。刚才我只是抛砖引玉,大家可以有这种思路去开发合适自己的系统。   我在这里想跟大家说的是,往往有效的系统是非常简单的,我们通过这个简单的系统就可以在真实的市场里获利。   另外,我非常想跟大家解释的,就是基金管理未来的周期。在这里我通过一个非常简单的例子给大家看一看基金管理到底有多重要。我也是用一个筛子,通过扔筛子来决定,是猜扔筛子之后猜单数还是双数的游戏,我每次下多少钱是事先定好的。这样一个游戏,假设我现在手里有100块钱,如果我们猜错了,就把100块钱输掉了,如果我们猜对了,就会赢得200块钱了。这个游戏对收益产生非常有利,如果我们手里有1000块钱,我们一次要放多少钱进去呢?   纵轴是收益,横轴是每次下注的比例,纵轴1就代表了本金,2代表收益是100%,3代表收益是200%,如果每次不下的话当然收益就不会有,横轴最右端每次把资金流60%下进去,这对于投资者是非常有利的游戏,他每次下多少有一个最好的收益?我们看到每次他下50%注的话,收益不会很高,如果60%下进去结果不仅不会输掉所有的钱,而且还会有很好的收益。当然这是一个非常简单的例子,通过这个例子可以看到管理的重要性。给我们的启示,即使对我们再有利的游戏,我们也要合理的管理自己的资金。   下面再看交易中实际的本金量,是我通过市场实际交易得出的一些体会,不知道在座各位有多少是做这个交易的,有多少是做系统的,如果做过交易和系统你就会发现中国的市场非常的难做。   从这个图可以看到股指期货波动性走的非常低,波动性非常低,那对流动性相当不利。这种现象我认为是一种必然,每个市场都会出现波动性直接走低的现象,但是我们比较乐观,我觉得这种波动性持续低迷的状态会逐渐的改善。我个人认为,因为全球经济不确定性增加,波动性随时有可能会大幅攀升。另外我个人的观点,我觉得每个市场都有一个正常的值,也不会是一个持续高的值,也不会是一个持续低的值,经过一段时间之后会回归到正常的一个范围。如果波动周期非常低的话,对我们日内交易影响非常大,但是对隔夜系统的影响就没有那么大了。我们原来是100%做日内交易,没有考虑隔夜系统的开发设计,但是今天我给大家分享的两个简单的系统都是隔夜系统,这也是我认为应对现在市场波动性非常低的一个方式。   另外一个我个人的经验,中国股指期货市场,它比国外小很多,这对我们波动系统非常有利。另外一个优势,中国的金融市场,不光有股指期货还有很多交易机构。商品期货这块,我个人比较喜欢橡胶的。   这个图最上面是橡胶的走势,中间是股指的走势,最下面这个波动性代表橡胶的波动性和股指的波动性。上周的数据,橡胶值达到了25%,指数10%左右。这不是一个孤立的数值,我个人的经验,如果某商品波动性突破20%的话,我认为它可以做日内交易了。再看一下波动性的情况,蓝色线和红色线中间差别比较大,当指数波动性很低的时候,橡胶有时候会相应的上涨,这就代表了这两种产品的相关性相对低一些。   下面我跟大家分享一下交易的系统。   第一个图是指数系统的走势,是去年低到今年初的行情。从创了新高之后到目前没有获利,我跟身边做股指的朋友交流过,大家情况都差不多,从去年年底到现在这一段都几乎没有什么获利。因为股指保证金相对要高,在橡胶上可以实行两手活跃,橡胶1系统和橡胶2系统都是趋势系统,区别就是1是不活跃的,2是活跃的,我们把这三个系统组合到一起,最后的结果就是第4个图。指数从去年到今年初开始,我们在这个组合里加入橡胶系统的话,从去年年到今年初这段获利还是增长的。这个道理非常简单,当指数波动性降低的时候,因为相关性比较低,它的波动性增长整个组合收益就会增长。第一个系统中用红色线圈出来的,我是做了十几年的交易了,有时候有一些投资人对自己的系统比较有信心,正常的情况下,就像我刚才给大家分享的基金资金方式一样,合理的控制比例,但是当时我没有这样一个数据系统。我对这个系统比较有信心,另外是过去几年数据太好了,我太相信这个指数了,后来出现过一些变化,我觉得我过于相信这个系统了。所以我想跟大家讲,不要太相信历史数据。   最后我再讲一下我对中国未来市场的看法。我觉得中国市场未来有几个大的变化,其中一个最大的变化就是期权的推出,如果期权上去的话,我们发现这个策略就相当的丰富了,把它放在里面就可以变成一个很好的组合了。另外机会永远是给有准备的人,如果初级市场准备好的话,就会有相当大的获利性,就像股指期货刚刚上市的时候给大家机会一样,如果在期权市场我们做好充分准备的话,一定会获得很大的利润。我最后想对大家说,大家稍微整理一下思路,把自己的交易思想稍微的进行一些修改,我们就可以在这个市场上获利,所以我希望大家可以把我的例子回去试一试。另外,无论历史上的业绩有多好,但是时代是另外一回事了,大家一定要注意。最后,尽量丰富自己的策略,多认识一些期货商品,大家可以沿着这个思路进行深入的一些开发。   今天我就讲到这里,谢谢大家。
--  作者:xian_0_9
--  发布时间:2013/3/21 20:10:24
--  
。。。去哪都是讲这些啊?
--  作者:xian_0_9
--  发布时间:2013/3/21 20:26:28
--  
加入这些平仓好像更不好了。不加的如何呢
--  作者:uk198971
--  发布时间:2013/3/21 22:36:19
--  
这里的文章的意思,是程序化没有圣器的存在,有时候简单的东西有可能是最合适自己的,这里提供的只是一个思路/一个做盘的思路/
--  作者:武田晴信
--  发布时间:2013/9/16 15:58:56
--  [求助]请问现在金字塔可以同一部电脑开启多个终端分别进行交易吗?

这个策略貌似是通过不了