目前写的,都是看论坛肯教程的学习记录哈,没有拿到系统中去试验,为什么不试验以后在贴出来,那是因为我现在是边看边学,下一步我会边练边学的时候,我会到这里不断补充说明的。
边学边问,也是我的奢望,希望从此过的老师们,高手师兄师姐们,发现我写的有问题,请不吝赐教!赠人玫瑰,手留余香!我为人人,人人为我!
我是一个刚接触编程初学者,下面是我通过学习金字塔编程,写的一个简单交易模型,其中的内容都来自于金字塔论坛,我只是以我自己思考和笔记的形式加以整理注释;是以一个初学者的思路记录,注释下学习的过程,希望对以后和我一样的初学者有一定的帮助。
均线交叉交易模型
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。
止损,止损,保命的根本,我想让我的交易系统,有个巴菲特的大脑,那样,我就等于有了绝招了,所以,我开始学习自动交易的时候,我更多的学习和考虑,我用什么样的条件该在哪里去止损。
关于时间,还可以这样写,刚才论坛上看到的。
IF CURRENTTIME>CLOSETIME(0)-5000 THEN BEGIN // 当前时间在收盘时间之前5分钟,简单点就是收盘前5分钟
tSELL(tHOLDING>0,0,lmt,DYNAINFO(18)-3*MINDIFF);
tSELLSHORT(tHOLDING<0,0,lmt,DYNAINFO(19)+3*MINDIFF);
END
另关于 DYNAINFO 函数的学习。
DYNAINFO(N) 函数用法大全
DYNAINFO(3)取得最新动态行情: 昨收
DYNAINFO(4)取得最新动态行情: 今开
DYNAINFO(5)取得最新动态行情: 最高
DYNAINFO(6)取得最新动态行情: 最低
DYNAINFO(7)取得最新动态行情: 最新
DYNAINFO(8)取得最新动态行情: 总手
DYNAINFO(9)取得最新动态行情: 现手
DYNAINFO(10)取得最新动态行情: 总额
DYNAINFO(11)取得最新动态行情: 均价
DYNAINFO(12)取得最新动态行情: 涨跌
DYNAINFO(13)取得最新动态行情: 振幅
DYNAINFO(14)取得最新动态行情: 涨幅
DYNAINFO(15)取得最新动态行情: 委比
DYNAINFO(16)取得最新动态行情: 委差
DYNAINFO(17)取得最新动态行情: 量比
DYNAINFO(18)取得最新动态行情: 委买
DYNAINFO(19)取得最新动态行情: 委卖
DYNAINFO(20)取得最新动态行情: 委买价
DYNAINFO(21)取得最新动态行情: 委卖价
DYNAINFO(22)取得最新动态行情: 内盘
DYNAINFO(23)取得最新动态行情: 外盘
DYNAINFO(24)取得最新动态行情: 涨速
DYNAINFO(25)取得最新动态行情: 买一量
DYNAINFO(26)取得最新动态行情: 买二量
DYNAINFO(27)取得最新动态行情: 买三量
DYNAINFO(28)取得最新动态行情: 买一价
DYNAINFO(29)取得最新动态行情: 买二价
DYNAINFO(30)取得最新动态行情: 买三价
DYNAINFO(31)取得最新动态行情: 卖一量
DYNAINFO(32)取得最新动态行情: 卖二量
DYNAINFO(33)取得最新动态行情: 卖三量
DYNAINFO(34)取得最新动态行情: 卖一价
DYNAINFO(35)取得最新动态行情: 卖二价
DYNAINFO(36)取得最新动态行情: 卖三价
DYNAINFO(37)取得最新动态行情: 换手率
DYNAINFO(38)取得最新动态行情: 5日均量
DYNAINFO(39)取得最新动态行情: 市盈率
DYNAINFO(40)取得最新动态行情: 成交方向
DYNAINFO(41)取得最新动态行情: 买四量
DYNAINFO(42)取得最新动态行情: 买四价
DYNAINFO(43)取得最新动态行情: 卖四量
DYNAINFO(44)取得最新动态行情: 卖四价
DYNAINFO(45)取得最新动态行情: 持仓量
DYNAINFO(46)取得最新动态行情: 应得利息
DYNAINFO(47)取得最新动态行情: 国债全价
DYNAINFO(48)取得最新动态行情: 买五量
DYNAINFO(49)取得最新动态行情: 买五价
DYNAINFO(50)取得最新动态行情: 卖五量
DYNAINFO(51)取得最新动态行情: 卖五价
DYNAINFO(52)取得最新动态行情: 成交笔数
DYNAINFO(53)取得最新动态行情: 每笔手数
DYNAINFO(54)取得最新动态行情: 涨停
DYNAINFO(55)取得最新动态行情: 跌停
DYNAINFO(56)取得最新动态行情: 总市值
DYNAINFO(57)取得最新动态行情: 流通市值
DYNAINFO(58)取得最新动态行情: 市净率
DYNAINFO(59)取得最新动态行情: 到期收益
DYNAINFO(60)取得最新动态行情: 昨持仓量
DYNAINFO(61)取得最新动态行情: 结算价
DYNAINFO(62)取得最新动态行情: 昨结算价
DYNAINFO(63)取得最新动态行情: 增仓
DYNAINFO(64)取得最新动态行情: 日增仓
DYNAINFO(65)取得最新动态行情: 开平
DYNAINFO(66)取得最新动态行情: 上涨家数
DYNAINFO(67)取得最新动态行情: 下跌家数
DYNAINFO(68)取得最新动态行情: 平盘家数
DYNAINFO(69)取得最新动态行情: A股上涨数
DYNAINFO(70)取得最新动态行情: A股下跌数
DYNAINFO(71)取得最新动态行情: A股平盘数
DYNAINFO(72)取得最新动态行情: A股成交额
DYNAINFO(73)取得最新动态行情: B股上涨数
DYNAINFO(74)取得最新动态行情: B股下跌数
DYNAINFO(75)取得最新动态行情: B股平盘数
DYNAINFO(76)取得最新动态行情: B股成交额
DYNAINFO(77)取得最新动态行情: 基金上涨数
DYNAINFO(78)取得最新动态行情: 基金下跌数
DYNAINFO(79)取得最新动态行情: 基金平盘数
DYNAINFO(80)取得最新动态行情: 基金成交额
DYNAINFO(81)取得最新动态行情: 其他上涨数
DYNAINFO(82)取得最新动态行情: 其他下跌数
DYNAINFO(83)取得最新动态行情: 其他平盘数
DYNAINFO(84)取得最新动态行情: 其他成交额
DYNAINFO(85)取得最新动态行情: 市场名称
DYNAINFO(86)取得最新动态行情: 市场简称
DYNAINFO(87)取得最新动态行情: 委买均价
DYNAINFO(88)取得最新动态行情: 委卖均价
DYNAINFO(89)取得最新动态行情: 委买总量
DYNAINFO(90)取得最新动态行情: 委卖总量
DYNAINFO(91)取得最新动态行情: 买入单数
DYNAINFO(92)取得最新动态行情: 卖出单数
DYNAINFO(93)取得最新动态行情: 中单买入
DYNAINFO(94)取得最新动态行情: 大单买入
DYNAINFO(95)取得最新动态行情: 特大买入
DYNAINFO(96)取得最新动态行情: 中单卖出
DYNAINFO(97)取得最新动态行情: 大单卖出
DYNAINFO(98)取得最新动态行情: 特大卖出