以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- 金字塔的学习心得 (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=2166) |
-- 作者:WK668668 -- 发布时间:2010/7/18 17:14:35 -- 金字塔的学习心得
目前写的,都是看论坛肯教程的学习记录哈,没有拿到系统中去试验,为什么不试验以后在贴出来,那是因为我现在是边看边学,下一步我会边练边学的时候,我会到这里不断补充说明的。 边学边问,也是我的奢望,希望从此过的老师们,高手师兄师姐们,发现我写的有问题,请不吝赐教!赠人玫瑰,手留余香!我为人人,人人为我!
我是一个刚接触编程初学者,下面是我通过学习金字塔编程,写的一个简单交易模型,其中的内容都来自于金字塔论坛,我只是以我自己思考和笔记的形式加以整理注释;是以一个初学者的思路记录,注释下学习的过程,希望对以后和我一样的初学者有一定的帮助。
均线交叉交易模型 input:N(5,1,100,1),M(10,1,100,1);//参数 {用下列函数表现仓位和交易状态} 持仓:HOLDING,LINETHICK0; 总次数:TOTALTRADE,LINETHICK0; 盈利:NUMWINTRADE,LINETHICK0; 胜率:ROUNDS(100*PERCENTWIN,1),LINETHICK0; 连亏:MAXSEQLOSS,LINETHICK0; 连盈:MAXSEQWIN,LINETHICK0; 持仓价位:AVGENTERPRICE,LINETHICK0; { Price:=AVGENTERPRICE;//持仓价位} 均5:=MA(CLOSE,N); //5日均线 均10:=MA(CLOSE,M);//10日均线
上穿:=CROSS(均5, 均10); //上穿金叉做多平空 下穿:=CROSS(均10, 均5); //下穿死叉做空平多
SELLSHORT(上穿and 持仓<0,持仓,market);//平空 SELLSHORT(持仓<0,持仓,Stopr, 持仓价位+NS);//做空止损,大于持仓NS就止损 SELLSHORT(持仓<0,持仓,Stopr, 持仓价位+MS);//做空止盈,小于持仓MS就止盈 BUY(上穿,1,market);//做多,满足上穿条件以后在下一个周期开盘价开1手多
SELL(下穿and 持仓>0,持仓,market);//平多 SELL(持仓>0,持仓,Stopr, 持仓价位-NS);//做多止损小于持仓NS就止损 SELL(持仓>0,持仓,Stopr, 持仓价位+MS);//做多止盈大于持仓MS就止盈 BUYSHORT(下穿,30%,market);//做空满足下穿条件以后在下一个周期开盘价开1手空
{以上的划线部分的上穿下穿是基本开平仓条件,在实际中还会有很多的条件来配合,就需要通过 AND 或者 OR 加在条件的位置上,以下加入日内时间条件:在开盘5分钟以后操作,在收盘前的5分钟全部平仓}
时间条件:=TIME>=091500 AND TIME<145500; {下面划线部分就是原来的基本条件加上增加的时间条件} SELLSHORT((上穿OR 时间条件) and 持仓<0,持仓,market);//平空 SELLSHORT(持仓<0,持仓,Stopr, 持仓价位+NS);//做空止损大于持仓NS就止损 SELLSHORT(持仓<0,持仓,Stopr, 持仓价位-MS);//做空止盈小于持仓MS就止盈 BUY(上穿and 时间条件,1,market);//做多满足上穿条件以后在下一个周期开盘价开1手多
SELL((下穿OR 时间条件) and 持仓>0,持仓,market);//平多 SELL(持仓>0,持仓,Stopr, 持仓价位-NS);//做多止损小于持仓NS就止损 SELL(持仓>0,持仓,Stopr, 持仓价位+MS);//做多止盈大于持仓MS就止盈 BUYSHORT(下穿and 时间条件,1,market);//做空满足下穿条件以后在下一个周期开盘价开1手空
{关于止损止盈,还有如下表达方式:可以利用函数ENTERBARS :返回上次开仓到当前的周期数,若之前没有开仓记录返回-1 } {做空的止损,止盈,可以是:点数,也可以是:比率} SELLSHORT(持仓<0,持仓,Stopr, LLV(L,ENTERBARS)+NS);//做空止损大于上次开仓的最低价NS点就止损 SELLSHORT(持仓<0,持仓,Stopr, LLV(L,ENTERBARS)*(1+NS/100));//做空止损大于上次开仓的最低价(1+NS/100)比率就止损
SELLSHORT(持仓<0,持仓,Stopr, LLV(L,ENTERBARS)-MS);//做空止盈小于上次开仓的最低价MS点就止盈 SELLSHORT(持仓<0,持仓,Stopr, LLV(L,ENTERBARS)*(1-NS/100));//做空止盈小于上次开仓的最低价(1-NS/100)比率就止盈
{做多的止损,止盈,可以是:点数,也可以是:比率} SELL(持仓>0,持仓,Stopr, HHV(H,ENTERBARS)-NS);//做多止损小于上次开仓的最高价NS点就止损 SELL(持仓>0,持仓,Stopr, HHV(H,ENTERBARS)*(1-NS/100));//做多止损小于上次开仓的最高价(1-NS/100)比率就止损 SELL (持仓<0,持仓,Stopr, HHV(H,ENTERBARS)+MS);//做多止盈大于上次开仓的最高价MS点就止盈 SELL (持仓<0,持仓,Stopr, HHV(H,ENTERBARS)*(1+NS/100));//做多止盈大于上次开仓的最高价(1+NS/100)比率就止盈
补充:关于止损止盈如果用到上次开仓位置的收盘价,我理解是这样表达:(C,ENTERBARS);
一个交易思路中,最重要的不是你该在哪里急着去买,也不是你该在哪里急着去卖,最重要的应该是:要时刻保持着告诉自己该在哪里止损(当然,止盈也是止损哈),学好了止损,就是学到了投资中的绝招,有事实可以证明的,股神巴菲特就说过的最高原则 :原则1:永远记得止损;原则2:永远不要忘记原则1。 止损,止损,保命的根本,我想让我的交易系统,有个巴菲特的大脑,那样,我就等于有了绝招了,所以,我开始学习自动交易的时候,我更多的学习和考虑,我用什么样的条件该在哪里去止损。
|
-- 作者:WK668668 -- 发布时间:2010/7/18 18:11:27 --
关于时间,还可以这样写,刚才论坛上看到的。 IF CURRENTTIME>CLOSETIME(0)-5000 THEN BEGIN // 当前时间在收盘时间之前5分钟,简单点就是收盘前5分钟
另关于 DYNAINFO 函数的学习。
DYNAINFO(N) 函数用法大全 DYNAINFO(3)取得最新动态行情: 昨收 DYNAINFO(4)取得最新动态行情: 今开
|
-- 作者:ibm0002 -- 发布时间:2010/11/10 22:36:24 -- 不错 学习了 |