设为首页收藏本站

 找回密码
 注册
楼主: 趋势跟踪
打印 上一主题 下一主题

美林证券交易大师的交易策略,请高手编写成TB交易模型 [复制链接]

Rank: 5Rank: 5

精华
1
UID
42516
积分
1239
帖子
264
主题
31
阅读权限
60
注册时间
2011-5-25
最后登录
2014-9-23
11#
发表于 2012-5-25 17:58:46 |只看该作者
本帖最后由 rookies 于 2012-5-25 18:06 编辑

Params
        Numeric Lots(1);
       
Vars
        Numeric MaEma30;
        Numeric MaEma23;
        NumericSeries MyEntryPrice;
        NumericSeries MyExitPrice;
       
Begin

        MaEma30=XAverage(Close,30);
        MaEma23=XAverage(Close,23);
        PlotNumeric("MaEma30",MaEma30);
        PlotNumeric("MaEma23",MaEma23);
       
        If(CurrentBar>23)
        {

                If(Close>MaEma30 && Close>MaEma23 && Close[1]<Max(MaEma30,MaEma23) &&MarketPosition!=1 ) //收盘价大于30、23天EMA且没有多单
                {
                        MyEntryPrice=High;   //将当天最高价置入
                                       
                }
                Else
                {
                        MyExitPrice=MyExitPrice[1];
                }
               
                If(High>MyEntryPrice && MarketPosition!=1 && MyEntryPrice!=0)
                {
                       
                        Buy(Lots,Max(Open,MyEntryPrice));
                        MyEntryPrice=0;  
                        Return;
                }
               
                If(Close<MaEma30 && Close<MaEma23 && Close[1]>Min(MaEma30,MaEma23)&& MarketPosition!=-1)// && GetGlobalVar(1)!=-1)
                {
                        MyExitPrice=Low;
                }
                Else
                {
                        MyExitPrice=MyExitPrice[1];
                }
               
                If(Low<MyExitPrice && MarketPosition!=-1 && MyExitPrice!=0)
                {
                       
                        SellShort(Lots,Min(Open,MyExitPrice));
                        MyExitPrice=0;
               
                }
        }
        Commentary("MyEntryPrice"+Text(MyEntryPrice));
        Commentary("MyExitPrice"+Text(MyExitPrice));
        Commentary("GetGlobalVar(0)"+Text(GetGlobalVar(0)));
        Commentary("GetGlobalVar(1)"+Text(GetGlobalVar(1)));
End


不知道是不是楼主想要的效果?

使用道具 举报

Rank: 5Rank: 5

精华
1
UID
42516
积分
1239
帖子
264
主题
31
阅读权限
60
注册时间
2011-5-25
最后登录
2014-9-23
12#
发表于 2012-5-25 18:01:22 |只看该作者
本帖最后由 rookies 于 2012-5-25 18:02 编辑

这个模型的编程难点在于如何记录“起始柱”的最高价和最低价,并以其作为做多或做空的建仓点。因为“起始柱”在突破两条均线后,有可能是下一根K线就突破“起始柱”的高低点,也有可能间隔几根K线之后才突破其高低点。本人TB编程能力有限,希望各位老师帮忙老师将这个策略编写成为交易模型。





If(满足条件)

记录数据变量

Else
数据变量=数据变量[1]


记得将数据变量声明为数组  Numericseries

使用道具 举报

Rank: 5Rank: 5

精华
1
UID
42516
积分
1239
帖子
264
主题
31
阅读权限
60
注册时间
2011-5-25
最后登录
2014-9-23
13#
发表于 2012-5-25 18:08:22 |只看该作者
另外  EMA   是应该用XAverage    而MA才是Average

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
12330
积分
838
帖子
254
主题
15
阅读权限
60
注册时间
2010-6-16
最后登录
2017-4-25
14#
发表于 2012-5-26 11:50:18 |只看该作者
非常感谢各位老师无私帮忙,O(∩_∩)O谢谢!

使用道具 举报

Rank: 1

精华
0
UID
111137
积分
45
帖子
22
主题
2
阅读权限
10
注册时间
2012-6-22
最后登录
2012-7-8
15#
发表于 2012-6-24 20:07:10 |只看该作者
zzzlondon 发表于 2012-4-18 08:36
If(currentbar-startbar1>filter)cond1=false;是我自己加的,意思就是如果出现“起始柱”,之后进场做多 ...

你这段话的意思是说如果在filter跟k线内就不做多了是吗?我不是很明白能通俗一点说吗?

使用道具 举报

Rank: 1

精华
0
UID
111019
积分
42
帖子
22
主题
1
阅读权限
10
注册时间
2012-6-18
最后登录
2013-5-28
16#
发表于 2012-8-18 06:16:26 |只看该作者
这个感觉长周期可以用用

使用道具 举报

Rank: 1

精华
0
UID
112657
积分
23
帖子
3
主题
1
阅读权限
10
注册时间
2012-9-24
最后登录
2012-12-18
17#
发表于 2012-10-9 13:52:09 |只看该作者
这个策略的最为重要的地方是:如何定义:“第一次突破”,zzzlondon老师的程序选取的是10根bar范围,感觉这种类型的策略比较难于应用,因为这个范围X可能不具备普遍性,呵呵,一家之言,仅供参考。其实可以有以下改进思路:

1、如果没有建立任何仓位,当close向上突破波带,且波带多头排列(MA23>MA30),在MA23处挂一个多单,或者追最高价,两者的区别是前者的位置比较好但不一定买得到,后者总可以买到但有在最高价建仓的风险,另外由于MA是由CLOSE计算的所以会在当前bar产生伪信号,建议采用Dinappoli 的前置MA线即将当前MA值取过去N个交易周期的MA值,或者用开盘价计算。
2.  这种系统遇到亏损交易时其实是造成两种损失:1)盘整行情下的亏损交易;2)反向趋势行情下的亏损交易,从而错过反向趋势的交易机会;因此,可以探讨一些反手的建仓策略加入其中;
3. 这种系统需要在趋势行情下尽可能有更多的盈利,在盘整状态中尽可能少的损失,因此,可以探讨一些加仓策略,或者采用 反马丁格尔(anti martingale)(即假设趋势行情会持续),这样保证趋势行情下能有很大概率有较多仓位,盘整行情下有很大概率保持基本仓位,如果能实现这些,盈利应该是可观的

一些拙见,相互取经

使用道具 举报

Rank: 4

精华
0
UID
112594
积分
333
帖子
281
主题
8
阅读权限
50
注册时间
2012-9-20
最后登录
2013-12-4
18#
发表于 2012-10-9 15:00:02 |只看该作者
添加一个过滤器可以判断信号是否已消失,增加了开仓时机的可信度

这个系统实际上就是先进行过滤再判断是否入市

测试了几个品种,股指,玉米,螺纹钢,燃油还行,甲醇,PVC就不太好用了

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
114873
积分
3498
帖子
22
主题
8
阅读权限
80
注册时间
2013-1-15
最后登录
2021-8-12
19#
发表于 2013-1-15 15:01:50 |只看该作者
个人编写的程序,不知是否与交易规则相符:
Params
   Numeric Length1(23);
   Numeric Length2(30);
   Numeric Lots(1);
   Numeric Offset(0);
Vars
   Numeric EMA1;
   Numeric EMA2;
   NumericSeries Myhigh;
   NumericSeries Mylow;
Begin
   EMA1=XAverage(Close[1], Length1);
   EMA2=XAverage(Close[1], Length2);   
   If(CurrentBar==0)
   {
     Myhigh=InvalidNumeric;
         Mylow=InvalidNumeric;
   }
   Else
   {
     Myhigh=Myhigh[1];
         Mylow=Mylow[1];
   }
   If(CurrentBar<Length2) Return;
   PlotNumeric("EMA1",EMA1);
   PlotNumeric("EMA2",EMA2);   
   If(Myhigh==InvalidNumeric && Close>EMA1 && Close>EMA2 && MarketPosition!=1)
   {
     Myhigh=High;
   }
   If(Myhigh!=InvalidNumeric && High>Myhigh)
   {
     Buy(Lots,Max(Open,Myhigh+Offset*MinMove*PriceScale));
         Myhigh=InvalidNumeric;
   }
   If(Mylow==InvalidNumeric && Close<EMA1 && Close<EMA2 && MarketPosition!=-1)
   {
     Mylow=Low;
   }
   If(Mylow!=InvalidNumeric && Low<Mylow)
   {
     SellShort(Lots,Min(Open,Mylow-Offset*MinMove*PriceScale));
         Mylow=InvalidNumeric;
   }
   Commentary("多头入场价:"+Text(Myhigh));
   Commentary("空头入场价:"+Text(Mylow));   
End
发现的问题如下图所示:
沪铜指数,2008.8.11满足条件开空单,之后2008.8.22K线收于两EMA线上方,记录当根K线的最高价为反转多单入场信号,但是之后行情走出了明显的下跌和回升,这笔空单反手出现在2010.1.6,中间的这段行情都没有抓到。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 2

精华
0
UID
114956
积分
71
帖子
38
主题
13
阅读权限
30
注册时间
2013-1-18
最后登录
2013-5-27
20#
发表于 2013-1-30 13:46:33 |只看该作者
rookies 发表于 2012-5-25 17:58
Params
        Numeric Lots(1);
       

MyEntryPrice=High;   //将当天最高价置入


MyEntryPrice=0;  这里为什么 ==0?。。

使用道具 举报

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

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-7 10:51

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部