找回密码
 注册
搜索
查看: 10186|回复: 75

[百家杂谈] 计算机辅助技术4,炒股编程讨论

[复制链接]
发表于 2012-4-8 11:38 PM | 显示全部楼层 |阅读模式


本帖最后由 九天 于 2012-4-9 00:50 编辑

计算机辅助技术4,炒股编程讨论


炒股的目的是赚钱,无所谓高级或者低级的方法或者程序。

MQL4语言编程最简单,而且有200多家使用MT4交易平台的卷商,有的免费提供编程条件。
只要胡同朋友学习过C, C++, Pascal三种编程语言之一,自学一下就可以写源码,

主要部分是 交易策略子程,就是把各位的炒股高招程序化。以源济老大日志 “ Day-Trading入点要诀 ” 为例子,
他把做多的入点信号写得清清楚楚,

“ 三、入点信号: 做多:(1)5min 图中全线在EMA50之上;   (2)EMA50方向朝上;
              (3)下行到EMA50支撑线附近;       (4)STO低于20,处于超卖状态。”

这些条件在MQL4语言里都可以实现,比如 “ (4)STO低于20,处于超卖状态。 ” 具体的源码就是

  IF(iStochastic(NULL,0.5,3,3,MODE_SMA,MODE_MAIN,0) < 20 )

接下来就是买股票的语句,仅一行而已,

{ticket=Ordersend(Symbol(),1,OP_BUY,ASK,3,ASK-25*POINT,ASK+25*POINT,"MY Oder Nr.8888",
168168,0,Green};

用程序交易没有人性的贪婪和恐惧,每一笔交易都有止损,其中POINT是决定止损量的参数。当然+25*POINT的止盈可能不合理,不过可以优化。

然后就是风险控制小子程,每次交易的时候都计算一下帐上有多少钱,根据财力,决定最大交易量。做5分钟K线交易时,计算机有能力快速完成计算。

源济老大没有介绍卖出点如何设置,一般IT民工会建议客户用Trailing-Stop,鳄鱼交易系统平仓条件,21均线突破平仓等方案。反正源码写好了,就免费试验一下,不用花钱。所以,喜欢写MQL4源码的朋友可以开展MQL4编程策略试验,可以避免许多亏钱,也有利于TA学习。

我只接触过3个卷商的STP MT4交易平台。如果有胡同朋友发现稳定可靠,交易费便宜的ECN MT4卷商,可以开展自动交易。见过卖MT4小程序的广告,才需要1000美元的起始资金。

Ninja Trader7是比较专业的可编程交易平台,有100多家卷商使用它。 国内虽然有200万大小编程员,还没找到有人进行相关交流。希望能在美国和加拿大找到前辈门,告许哪一家卷商较好,指导新人写第一个 C# based NinjaScript 源码。
如果前辈不便显身,一切喜欢开发Ninja Trader7自动交易的朋友,可以抱团取暖,自己摸索。这需要一位时间上比较宽裕的胡同朋友带个头,

因为利用 Ninja Trader7 我们可以免费做 Test performance both historically and in real time.
High performance backtesting, Walk forward and genetic optimization,
Monte Carlo Analysis, Real time simulation testing, More Featues。非常诱人。
我个人工作中曾经写错一行源码,花了三个月才恍然大悟。所以我认为远程合作学习编写C# based NinjaScript 源码,是互利的好事。 互相检查错误,大家都可以快一点学会。

听说美国自动交易比赛时,有的程序做到了小资金年增值200倍。估计他们用的是Level2 ECN编程交易。
个人相信这是目前最公平的,估计早晚会有卷商开放Level2 ECN编程交易条件,我们可以慢慢研究策略,储备技术。
这方面我只知道Sterling Trade的一些情况。可惜它的API只允许Level1 STP交易。
如果我们找到好策略,实在没有人开放Level2 ECN编程交易条件,也可以考虑组织力量写个软件,
控制4个Sterling交易平台进行Level2 ECN自动操作。

评分

8

查看全部评分

发表于 2012-4-9 12:24 AM | 显示全部楼层
I might be wrong. Is that too much work?
The trade program must be similar to nuclear bomber simulator, with 1 trillion "IF", , ,

I believe all major WS MMs are using this idea.
These days, any time if I felt some incorrect and called my broker, he always said, it shouldn't be wrong because it's programmed, all trades were programmed.
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2012-4-9 04:58 AM | 显示全部楼层
Yes, more than 70% trading were programmed today.
And all major WS MM have very complicated trade program

主要是MM的交易思想复杂。比如我们可以写一个反制程序,可以发现市场上的赚钱交易,破解其交易策略,然后下个套让对手的交易赔钱。
另一方面,他们得自己编Black Box,低级编程员的工作非常辛苦,升职当头头才可能名扬天下,拿高薪。
而MT4 和Ninja等卷商则尽可能的方便顾客,为客户准备BB,比如有上文的 iStochastic(...)子程。
而在需要自己写TA指标源码时,得100多行吧,把其核心程序语句大致改炒出来,让大家看看,IT民工多么可怜,工作是多么的无聊和辛苦,

//+------------------------------------------------------------------+
//| 慢随机指标子程序,命名 iStochastic (。。。。。。。)                                  |
//+------------------------------------------------------------------+
int start()
  {
   int    n,m;
   int    counted_bars=IndicatorCounted();//----这个是MQL4自动给出的基本参数,一言难尽,自己去查吧。
   double price;
//----Bar是所计算K线位置
   if(Bars<=draw_begin2) return(0);
//---- 缓冲数列初始置零
   if(counted_bars<1)
     {
      for(n=1;n<=draw_begin1;n++) MainBuffer[Bars-n]=0;
      for(n=1;n<=draw_begin2;n++) SignalBuffer[Bars-n]=0;
     }
//---- 最少计数
   n=Bars-KPeriod;  //----是随机参数,一般是5或者3,调用子程时输入。
   if(counted_bars>KPeriod) n=Bars-counted_bars-1;
   while(n>=0)
     {
      double min=1000000;
      m=n+KPeriod-1;
      while(m>=n)
        {
         price=Low[k];
         if(min>price) min=price;
         m--;
        }
      LowesBuffer[n]=min;
      n--;
     }
//---- 最大计数
   n=Bars-KPeriod;
   if(counted_bars>KPeriod) n=Bars-counted_bars-1;
   while(n>=0)
     {
      double max=-1000000;
      m=n+KPeriod-1;
      while(m>=n)
        {
         price=High[m];
         if(max<price) max=price;
         m--;
        }
      HighesBuffer[n]=max;
      n--;
     }
//---- %K 线
   n=Bars-draw_begin1;
   if(counted_bars>draw_begin1) n=Bars-counted_bars-1;
   while(n>=0)
     {
      double sumlow=0.0;
      double sumhigh=0.0;
      for(m=(n+Slowing-1);m>=n;m--)
        {
         sumlow+=Close[m]-LowesBuffer[m];
         sumhigh+=HighesBuffer[m]-LowesBuffer[m];
        }
      if(sumhigh==0.0) MainBuffer[n]=100.0;
      else MainBuffer[n]=sumlow/sumhigh*100;
      i--;
     }
//---- 最后一条K线位置
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
//---- 信号线采用简单平均
   for(n=0; n<limit; n++)
      SignalBuffer[n]=(一个简单平均子程,不写了)(MainBuffer,Bars,DPeriod,0,MODE_SMA,n);
//----
   return(0);
  }
//+------------------------------------------------------------------+

再比如上文的 Ordersend(。。。。。),即使在卷商的BB中,差别也很大,MT4平台最简单,就一行,而在Sterling平台,
需要16行BVB语句,客户比较难掌握。

所以许多小散用MQL4或者MQL5。用Ninja最好有位师傅带一下,或者几个胡友一块儿学习。
否则,虽然一个人也能通过查API 或者BlackBox慢慢掌握,却需要大量时间和难免走弯路。

编程是技术,谁都可以学习掌握,熟能生巧。
炒股是艺术,只有5%左右的天才才能掌握,所以股市中80% 的人必定输钱,这叫股市二八定律。
我觉得已经稳定赚钱的胡同老大,都是有天才的股客,用程序交易可以锦上添花。
而对于80%本来注定是输家的股民,用程序交易可能是唯一生存的出路,打破股市二八定律。
回复 鲜花 鸡蛋

使用道具 举报

发表于 2012-4-9 08:30 AM | 显示全部楼层
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2012-4-9 09:37 AM | 显示全部楼层
回复 jamesmith 的帖子


Would you like to participate in the Automated Trading Championship 2012 alone?

MQL5 is a new programming language and most trader have no experince to create
MQL5 trading strategies. Somebody Who have some experince to deal with MQL4 programming
language wait for a Software that can translate MQL4 into MQL5.
I have only a MT5 plattform for 3 Month play and is closed now because I do not pay.
But it seems I can do MQL5 programming yet.

除了你独立参赛以外,你可不可以请示老蛇一下,你再带头组织一个 胡同九代表队 去参赛。只要他批准,你当头,我就带头报名参加你的队伍,人越多越好。就是大家一块儿学习MQL5编程,共同写源码,因为我们还没有使用MQL5的经验。从2011 年的比赛结果来看,我们未来合作写的MQL5源码,必须达到在3个月内将资金增值8倍以上,这对于我来说,是绝对做不到的。其他自己有好的交易策略的胡同朋友,也可以在自己独立参赛之余,再带头组织一个 胡同九第二,第三,。。。代表队。只要你们不嫌弃,每一个队我都报名参加成为一名普通队员。见过卖MT4小程序的广告,才需要1000美元的起始资金。如果成功,可以真金白银的实战,会有人乐意给在校大学生提供起始资金,而不附加任何政治和经济条件。
回复 鲜花 鸡蛋

使用道具 举报

发表于 2012-4-9 08:26 PM | 显示全部楼层
回复 九天 的帖子

man,

I feel you have very good/broad vision. you must be young and ambitious.
I am too old to think of 800% in 3month return. 20+% per year is enough if the dropdown is reasonable.

LT
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2012-4-9 10:24 PM | 显示全部楼层
本帖最后由 九天 于 2012-4-10 04:00 编辑

回复 littletiger 的帖子

去年10月 《Futures Truth Magazine》 好像说,前8名实战交易系统的年收益率介于164% 到237%。

1 NatGator 237.80%
2 Catscan 222.10%
3 DCS II 215.90%
4 Strategic 173.50%
5 Sidewinder 169.90%
6 ATS 6400 169.00%
7 Aberration 167.90%
8 Waverider 166.30%

请有条件的胡友给与证实或者改正。我正在简单琢磨他们的交易策略,欢迎大家一块儿研究他们的交易策略。


但是比赛是虚拟,不会受到主力程序的打击,所以冠军的三个月的收益率已经高达340%到1700%。

2006年冠军的三个月的收益率  340%
2007年冠军的三个月的收益率 1300%
2008年冠军的三个月的收益率 1700%
2009年冠军的三个月的收益率  760%
2010年冠军的三个月的收益率  770%

所以,有的人说自己的交易系统的年收益率 可以达到1000000%,即年增值万倍。

实战中有位叫Key Brendal的先生吧,2009年事先宣布,而且让全世界的好事者实盘观战,达到了7000%的年收
益率。但他只是把1000美元在1年里炒汇抄成7万美元。好像他仍然坚持他可以年增值1000倍,就是他想把1000美元
在1年里炒成100万美元。

我觉得炒1000美元,好的程序是可以达到极高的年收益率。大资金没有门,顶多200多%年收益率。
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2012-4-10 02:32 AM | 显示全部楼层
本帖最后由 九天 于 2012-4-10 03:52 编辑

回复 littletiger 的帖子


据报道,
http://www.futurestruth.com/top10sincereleasedate.htm
下面是公开业绩的8家最好的程序交易,自从进入交易以来的平均年收益率

Rank    System Name                     Annual  % Return

1. TSL_CEL_NG_1.<-------------->    276.5%
2. Natural Gas Offense <-------->    268.9%
3. Delphi II EMD <---------------->    166.5%
4. TrendFinder - Tiger <--------->    145.5%
5. Trend Finder - Lion 2<-------->     131.7%
6. TSL_SP_1.0Z <----------------->    118.3%
7. Jen Jamer <--------------------->    100.1%
8. Propero ES<--------------------->     98.1%


估计有更好的交易程序,因为不公开业绩,闷声发大财,所以我们不知道。
目前我相信中等资金,就是说100万美元左右,是已经被高手们的程序平均每年稳定的翻2倍。
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2012-4-10 02:46 AM | 显示全部楼层
本帖最后由 九天 于 2012-4-10 03:49 编辑

回复 九天 的帖子

胡同炒股高手很多,有大师级Cobra,酷马,福多多。。。,有美国教授名校博士,也有不少软件工程师,如果能够抱团取暖,有可能开发出平均年盈率200%的交易程序。也就是说,资金每年通过程序交易翻倍。
平时大家忙正职的事,或者风花雪月,绿花花的美元就往账户上流,岂不快哉。
当然,目前只是梦,可能是我写了个
古诗百梦九天集,
http://www.hutong9.net/forum.php ... &extra=page%3D1
把自己变得白天也作梦。

回复 鲜花 鸡蛋

使用道具 举报

发表于 2012-4-10 03:08 PM | 显示全部楼层
九天 发表于 2012-4-10 03:32
回复 littletiger 的帖子

thank u for sharing. it is cool to see those eyes-open facts.

one thing in my mind is: what is the last 5 years return for those strategy?
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2012-4-10 04:03 PM | 显示全部楼层
回复 littletiger 的帖子

在稳定性方面,ABERRATION TRADING SYSTEM 比较好,从1980年到2012年,好像增值18倍。
这个系统是大资金,所以公开业绩,以便招客户。
http://www.keithstrading.com/aberrationtradingsystem.php

真正优秀的交易系统,是用小资金,所以不对外开放。
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2012-4-10 04:13 PM | 显示全部楼层
回复 littletiger 的帖子

Year Return (percent) Max Draw-Down (percent)

1980 38.8 10.7
1981 55.8 9.7
1982 16.9 22.2
1983 23.7 18.0
1984 89.1 8.5
1985 62.7 18.4
1986 92.6 15.3
1987 248.1 21.5
1988 22.3 26.9
1989 166.6 15.6
1990 177.0 17.6
1991 102.5 23.1
1992 47.1 21.2
1993 165.2 22.6
1994 60.7 15.2
1995 41.8 22.8
1996 149.2 18.4
1997 6.6 30.6
1998 45.8 31.5
1999 44.3 24.4
2000 43.1 17.8
2001 61.0 18.4
2002 26.4 21.7
2003 4.3 37.8
2004 41.1 24.3
2005 11.1 24.4
2006 40.6 18.5
2007 3.9 35.7
2008 235.2 16.9
2009 1.4 23.8
Aug 2010 55.6 13.5


Average 69.3 23.9


Average Year Return 69.3%

Max Year Draw-Down  23.9%
回复 鲜花 鸡蛋

使用道具 举报

发表于 2012-4-10 04:17 PM | 显示全部楼层
好棒,加油,9跟帮主混了,以后让俺沾光哦

点评

炒股的事,你可要跟Cobra,酷马等老师,我连给他们当学生都不够格。问一声,你会不会C系语言编程。不回答也行。  发表于 2012-4-10 04:24 PM
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2012-4-10 04:19 PM | 显示全部楼层
回复 九天 的帖子


个人认为,小资金的自动交易策略,完全可以超过大资金的 Aberration Trading System。

达到 Average Year Return 69.3%

Max Year Draw-Down  23.9%

大家可以再查一下其他10家大型程序交易系统的业绩,可能有4家更好些。
回复 鲜花 鸡蛋

使用道具 举报

发表于 2012-4-10 04:28 PM | 显示全部楼层
以前在多伦多汉堡学过些java,C没学
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2012-4-10 04:44 PM | 显示全部楼层
本帖最后由 九天 于 2012-4-10 17:45 编辑

回复 君遥 的帖子

以前在多伦多汉堡学过些java,C没学

Java is more difficult than C. It is easy for you to use MQL4 for TA.

Koennen wie uns  dentsch unterhalten? Order Dein Diest-Sprache ist Englisch?
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2012-4-10 05:46 PM | 显示全部楼层
回复 九天 的帖子

交易策略一旦公开,专业人士可以很容易地加以利用。

于是一个公开的交易策略很快就会失效,这是因为众多人蜂拥而至使用这个策略进行交易,从而消除了该策略的盈利空间。

因此,最好的交易策略往往是高度机密的,我们从公开出版物中难以觅其踪影,
回复 鲜花 鸡蛋

使用道具 举报

发表于 2012-4-10 10:09 PM | 显示全部楼层
本帖最后由 atrader 于 2012-4-10 23:21 编辑


很久以前,坐在我旁边的US TREASURY 的 TRADER (很挣钱的家伙)心血来潮,去卡奶鸡没轮和博可理招了两个编程高手,花了一年时间,造了个BLACK BOX,开是赢钱,狼后在WSJ自催自擂了一下,又在BLOOMBERG上自催自擂了两下,狼后开始输钱。。。

点评

Black Box不是具体交易程序,而是所有交易程序公用的子程序的整理,等用空我在下面跟个贴说明一下。  发表于 2012-4-11 04:58 AM
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2012-4-11 01:46 AM | 显示全部楼层
回复 atrader 的帖子

atrader 大哥,你牛啊,做US Treasury, 大买卖。

按理说Treasury的生意容易编程,可是大生意绝对不可以公开自己的交易策略,有人做交易,就是研究发现大程序的规律,
故意挑逗大程序往自己的陷阱里走。比如欧洲有人破解了赚了大钱被告上法庭,国内大量交易员用打 暗盘发了大财。

你的朋友要出名,可能无意暴露了自己的程序秘密吧。

一般Trading System每天都要检查,花一个小时时间,看看交易记录,加以改进,不应该连续亏钱。
你的朋友偷懒了。

有个牛人,说他的程序经过实战,把500US$炒成68555US$,可是不告许源码,我们不能买,因为没法经常加以改进。
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2012-4-11 04:39 AM | 显示全部楼层
有些朋友做学术研究,总结出三个优秀程序化交易模型

1,基于价格的股指期货即日交易模型(DTM )。
2,股指期货改进布林交易模型(IBTM )。
3,综合了价格与成交量的多空正量模型(BAPM )。

因为最好的交易策略往往是高度机密的,我们从公开出版物中难以觅其踪影,所以没有对这三个优秀程序化交易模型深入研究。

不过大家要知道,程序交易是有学问的,真懂了,可以赚大钱,当老师。
回复 鲜花 鸡蛋

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|www.hutong9.net

GMT-5, 2024-5-14 03:03 PM , Processed in 0.066174 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表