欢迎您光临博庭社区!

 找回密码
 立即注册
楼主: hslixuexue

自制《金语言初级教程》--从0开始学习金语言   [复制链接]

Rank: 3Rank: 3

发表于 2013-8-18 12:47:02 |显示全部楼层
本帖最后由 hslixuexue 于 2013-8-21 01:15 编辑

7DRAWLINE(COND1,PRICE1,COND2,PRICE2,EXPAND),COND1条件满足时,PRICE1位置画直线起点,当COND2条件满足时,PRICE2位置画直线终点。EXPAND为延长类型。  一般取0,不延长;取1,延长。实际上是取大于等于1的数就延长,小于1就不延长。DRAWLINE是唯一一个一句里面用到两个COND的绘图函数。示例:
DRAWILINE(HIGH>=HHV(HIGH,20),HIGH,LOW<=LLV(LOW,20),LOW,1);表示在创20天新高与创20天新低之间画直线并且向右延长。
HHV,求最高值。Hhv(X,N),N周期内X的最高值,N=0则从第一个有效值开始。HHV(HIGH,30);表示求30日最高价。
LLV,求最低值,LLV(X,N),N周期内X的最低值,N=0则从第一个有效值开始。例如: LLV(LOW,0);表示求历史最低价。
DRAWLINE目前支持POINTDOTLINETHICKCOLORSHIFT这四个描述函数。
举个例子吧。
A:="FENG2.LD";
B:="FENG2.HD";
DRAWICON(A,L,11),ALIGN1;
DRAWICON(B,H,10),ALIGN2;
D:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
E:=D>REF(D,1);
F:=BACKSET(E,REF(BARSLAST(B),1)+2);
G:=F>REF(F,1);
DRAWLINE(G,H,E,H,1),pointdot,linethick1,coloryellow;{主图叠加}
DRAWLINE画出的线,应该比手工画出的线精确一些。(DRAWLINE画线的灵敏度,要比手工画线低,所以说DRAWLINE画出的线精确,就未必对。)
主要用于画斜线,水平线我们一般可以另想办法。因为在图中显示直线,并非DRAWLINE的“专利”。
比如:
A:="FENG2.LD";
B:="FENG2.HD";
D:=BACKSET(ISLASTPERIOD,BARSLAST(A)+1);
E:=D>REF(D,1);
F:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
G:=F>REF(F,1);
前高:REF(H,BARSLAST(G));
前低:REF(L,BARSLAST(E));{主图叠加}
8DRAWTEXT ,在图形上显示文字。创建文本。
DRAWTEXT(COND,PRICE,TEXT),COND条件满足时,PRICE位置书写文字,可显示多行文本,用"\n"内部换行。示例:
DRAWTEXT(CLOSE/OPEN>1.08,LOW,'大阳线')
表示当日涨幅大于8%时在最低价位置显示'大阳线'字样。
DRAWTEXT(CLOSE/OPEN>1.08,LOW,'好呀\n大涨啦')
可显示多行文本,用"\n"换行;
此函数可以用ALIGN来定位水平位置。也可以用SHIFT函数进行向右水平移位。可以用COLOR函数来定义颜色。至于文字的大小,则采用系统默认的大小,在此函数中无法定义。
此函数单独使用有其用途,与DRAWNUMBER配合应用时,效果更不错。后面介绍到DRAWNUMBER时再举例子。
A:="FENG2.LD";
B:="FENG2.HD";//如:00100100100010000
DRAWICON(A,L,11),ALIGN1;
DRAWICON(B,H,10),ALIGN2;                                     D1:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);//如:00000000000011111
E1:=D1>REF(D1,1);  //如:离目前最近的一个高点,00000000000010000
D2:=BACKSET(E1,REF(BARSLAST(B),1)+2);// K线的E1值不为0时当前K线。00000000000010000。从当前K线向前未知期数赋值。当前k线的前一天,00000000000010000或00100100100010000,为新的当前k线计算BARSLAST(B),本例等于3。(BARSLAST(B),1)+2=5,为涵盖的期数:00100100100010000。也可以理解为先计算BARSLAST(B)结果为:00012012012301234。REF(BARSLAST(B),1)为:00001201201230123。(BARSLAST(B),1)+2为:22223523423452345。最后的结果:00000000111110000。
E2:=D2>REF(D2,1);{倒数第二个高点,00000000100000000}
D3:=BACKSET(E2,REF(BARSLAST(B),1)+2);
E3:=D3>REF(D3,1);{倒数第三个高点}
DRAWTEXT(E1,H*1.01,'TEXT:'),COLORRED,ALIGN0;
DRAWTEXT(E2,H*1.01,'TEXT:'), COLORGREEN,ALIGN1;
DRAWTEXT(E3,H*1.01,'▓TEXT:'), COLORYELLOW,ALIGN2;{主图叠加}
9POLYLINE,画折线。POLYLINE(COND,PRICE),COND条件满足时,PRICE位置为顶点画折线连接。支持POINTDOTLINETHICKCOLORSHIFT这四个描述函数。示例:
POLYLINE(HIGH>=HHV(HIGH,20),HIGH);表示在创20天新高点之间画折线。
例:
A:="FENG2.LD";
B:="FENG2.HD";
DRAWICON(A,L,11),ALIGN1;
DRAWICON(B,H,10),ALIGN2;
POLYLINE(A,L),POINTDOT,COLORGREEN;
POLYLINE(B,H),LINETHICK2,COLORMAGENTA;{主图叠加}

10、DRAWNUMBER(COND,PRICE,NUMBER,PRECISION)当COND条件满足时,在PRICE位置书写数字NUMBER(可以为常数或数组序列),PRECISION为小数显示位数(取值范围0-7)。可ALIGN0-5定义对齐方式。例如:

DRAWNUMBER(CLOSE/OPEN>1.08,HIGH,(CLOSE-REF(C,1))/REF(C,1)*100,2)
表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)
这个函数的特色是,在NUMBER位置可以放变量。
NUMBER,数字。DRAWNUMBERDRAWTEXT的“兄弟”,也可以用ALIGN(0~2)来定义水平位置,方法相同。
A:="FENG2.LD";
B:="FENG2.HD";
DRAWICON(A,L,11),ALIGN1;
DRAWICON(B,H,10),ALIGN2;
D1:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
E1:=D1>REF(D1,1);{离目前最近的一个高点}
D2:=BACKSET(E1,REF(BARSLAST(B),1)+2);
E2:=D2>REF(D2,1);{倒数第二个高点}
DRAWTEXT(E1,H*1.02,'高点价:'),COLORGREEN,ALIGN2;
DRAWNUMBER(E1,H*1.02,H,2),COLORGREEN,ALIGN1;
DRAWTEXT(E2,H*1.02,'高点价:'),COLORYELLOW,ALIGN2;
DRAWNUMBER(E2,H*1.02,H,2),COLORYELLOW,ALIGN1;{主图叠加}

11、FILLRGN,画指标区间彩带。 FILLRGN(COND,PRICE1,PRICE2),当COND条件满足时,以COLOR填充PRICE1和PRICE2的区间。示例:

FILLRGN(MA1>MA2,MA1,MA2),colorred;

表示MA1>MA2时以红色填充MA1MA2之间的区域。
FILL,充满,填充。RGN可能是REGION,地区,地域。
用这个函数,再加DRAWICON可以调用BMP图象文件的功能,可以作出象风景一样的图。
这里举个简单的例子:
A:=MA(C,5);
B:=MA(C,10);
FILLRGN(1,H*1.01,H*1.02),COLORFFFF66;
FILLRGN(A>=B,A,B),COLORMAGENTA;
FILLRGN(A<B,A,B),COLORGREEN;
FILLRGN(1,L*0.99,L*0.98),COLORFF99CC;{主图叠加}
12VERTLINE,在图形上绘制垂直线段。VERTLINE(COND),COND条件满足的周期处画垂直线。VERTICAL,垂直的。VERTLINE目前可以用POINTDOTLINETHICKCOLORSHIFT这四个描述函数来描述。示例:
DVERTLINE(HIGH>=HHV(HIGH,20)
表示在创20天新高时画垂直线。
这个函数,主要是用于画线看时间的。费波纳契周期,可以用这个函数画出来的。
这里举个例子,把日K线中每月的第一个交易日中,画一根垂直线。
A:=MONTH>REF(MONTH,1);
VERTLINE(A),COLOR808040,POINTDOT;{主图叠加}
MONTH,取得该周期的月份。函数返回有效值范围为(1-12)

13、DRAWYITEXT,在图形上显示易学文字,可ALIGN0-3定义对齐方式。DRAWYITEXT(COND,PRICE,CODE,TYPE),当COND条件满足时,在PRICE位置书写TYPE类型的CODE的对应文字。TYPE为常数,取0--1,分别表示计算的是干支、64卦,CODE为对应的代码。例如:

DRAWYITEXT(CLOSE/OPEN>1.05,LOW,GANZHI(DATE*100, 2),0)

        表示当日涨幅大于5%时在最低价位置显示日干支;

DRAWYITEXT(REF(CLOSE,2)>REF(OPEN,2)AND

        REF(CLOSE,1)>REF(OPEN,1) AND

CLOSE>OPEN, LOW, KGUA(1, 1),1 )

       表示连二阳时在最低价位置显示K线卦象
如下例子:K线卦
    kk:=KGUA(0,6);
    DRAWYITEXT(c>0,mod(BARSCOUNT(c),6),kk,1);{附图指标}
14DRAWBKBMP,根据条件设置背景图。DRAWBKBMP(COND,BMP),当图形上最后一组COND条件满足时,MyBMP做背景。例如:
DRAWBKBMP(C>O, 'MyBMP');
表示图形上最后一组C>O时背景显示子FmlDLL目录下的MyBMP.bmp图。

示例:因为系统K线先画,会被后来的指标图覆盖了

这种公式K线要自己画,以下供参考
DRAWBKBMP(c>0,'mybmp');
STICKLINE(c>o or c=o andc>ref(c,1),l,h,0.1,0),colorred;
STICKLINE(c>o or c=o andc>ref(c,1),o,c,7,0),colorred;
STICKLINE(c<o or c=o andc<=ref(c,1),l,h,0.1,0),colorcyan;
STICKLINE(c<o or c=o andc<=ref(c,1),o,c,7,0),colorcyan;
把公式设为主图、主图叠加
15DRAWGBK ,绘制渐变背景色。 DRAWGBK(COND,COLOR1, COLOR2,D) ,当COND条件满足时,COLOR1COLOR2渐变色填充子图区域,D=0表示从左到右,D=1表示从上到下。示例:

DRAWGBK(C>O,COLORRGB(255,0,0), COLORRGB(255, 255,0),0);

表示图形上最后一组C>O时从左到右从红色到黄色渐变填充子图。





使用道具 举报

Rank: 3Rank: 3

发表于 2013-8-19 18:12:20 |显示全部楼层
这个必须顶

使用道具 举报

Rank: 3Rank: 3

发表于 2013-8-20 17:39:41 |显示全部楼层
谢谢,支持一下,

使用道具 举报

Rank: 6Rank: 6

勇士奖

发表于 2013-8-21 01:07:35 |显示全部楼层
dingding !!!!!

使用道具 举报

Rank: 3Rank: 3

发表于 2013-8-27 02:22:31 |显示全部楼层
      该看的都看完了,这么入手呢??以前炒过股,就是那种把钱,丢进股市,就等着亏或赢了,最后亏50%。股票软件都没研究过!

五十二、高度浓缩的软件使用帮助

        打开金魔方。我们能干什么,想干什么?看、画、设置、交易。
        一,看。看实时行情、看个股历史数据。
      不停按键盘第一个键 ESC”,只有两个画面不停切换。这就是我们软件提供给我们最主要的看盘区域。行情界面、个股K线界面,叫:报价窗口、分析窗口。
    (一)行情界面/报价窗口:
      行情界面框架:左面是公式管理,上面是工具栏,其余是行情主体窗口。屏幕左上角,金魔方三个字旁边,可以切换股票、期货、外汇,选择行情种类。
      行情主体窗口:上边一行可以选择版块,如:深圳A股、深圳创业、自选股等,没有显示完的注意前面的小。紧接下边一行可以选择数据类型:代码、昨收、最高、最低、成交量等。在主体窗口任意一个地方,单击鼠标右键,选择“定制表头栏”。可以选择各种数据类型并可以进行排序。左边一列,可以选择查看:行情、财务、自设指标。中间就是依次排列各个股行情。
      主要操作:鼠标上下滚动选择浏览各个品种,或者键盘输入个股代码,自动弹出选择窗口,双击鼠标或按键盘“enter”键,定位个股。在报价窗口单击鼠标右键,会弹出菜单,可以进行相关操作,最主要的是加入自选股、数据复制。
      (二)个股数据界面/分析窗口:
      点击行情界面任意一个个股,进入个股数据界面。滚动鼠标轮,可以切换不同个股,或者键盘输入个股代码,自动弹出选择窗口,双击鼠标或按键盘“enter”键,定位个股。
分析窗口:左面是公式管理,上面是工具栏。屏幕左上角,金魔方三个字旁边,可以切换股票、期货、外汇,选择行情种类。其余是分析窗口。
      分析窗口框架:左上,主图:主图上面第一排文字显示个股名称、时间、开高低收量额,第二排文字显示加载的指标名、参数(双击可以进行参数设置)。文字下面为数据图线与指标图线。左中,副图:副图栏单击右键可以添加与删除。左下,常用指标栏,可以添加与删除。右图,第一行,证券名称及表示该证券在证券列表中的排名的数字、闪电下单。接下来是委比、委差,五档买卖盘(红色表示高于昨天收盘价,显示买入、卖出挂单的盘口信息,将鼠标移上,会显示“买入、卖出、平空、平多”,这是快速下单功能入口,只要用鼠标双击盘口,就能自动进行取价,进入闪电下单界面。),最新价,涨跌幅度、总成交手数、现成交手数、平均价、开盘价等证券信息。
      委比是衡量某一时段买卖盘相对强度的指标,委比的取值自-100+100+100表示全部的委托均是买盘,涨停的股票的委比一般是100,而跌停是-100。委比为0,意思是买入(托单)和卖出(压单)的数量相等。委差为正,价格上升的可能性就大,反之,下降。当然还有人为干扰的因素,比如主力制造的假象等。
      主要操作:鼠标在主副图区域,单击右键,弹出菜单,进行选择操作。选择指标公式(也可以在左边公式系统选择后按住左键拖到主副图上,还可以选择左下的常用指标)、选择周期(分钟、小时、日等)、主图类型(K线、美国线等)等。
      二、画。
      点击按钮:工具画线工具,选择相应的图线类别,如直线、射线、斐波拉契线等近70种图线工具,选择起点,可以画啦。
      用鼠标右键点击此画线(选中画线后,该线显示小方块,下同),然后在其右键菜单中选“画线设置”,能够得到非常精确的画线及画线参数自定义。画线过程中如需多次重复使用同一种画线方式,可在工具条中先选定【保持画笔】功能。
      鼠标拖动画线的起点或终点,可以改变画线方向。
      可以按住CTRL键,用鼠标拖动画线的定位点,系统的吸附功能能将此线上的小方块自动定位到该K线上的最高或最低点。
      删除时,点击图线按键盘“delete”删除或鼠标右键删除。
      系统会自动保存用户的所有画线,下次进入该图自动显现。
      分组画线的概念:在一个窗口上打开的分析图画线,是一组画线;如果在另开一新窗口,再画线,那就有另一组画线;要显示其它分组画线,可以点击这个菜单。
     插入画线文字注释、插入符号:点击图右上角的A旁边的下拉三角形,选择文字、符号、上下箭头、价格标签,鼠标变成铅笔的图形。在需要添加文字的画线附近或者K线附近点击,出现文字的编写窗口,输入内容,再点击确定插入文字内容。
      趋势线预警功能:(仅“直线”工具才能使用):右键点击直线,在弹出菜单中选中“趋势线预警”,即可实现走势上、下穿过该直线时,系统预警提示。直线末端会出现一个小喇叭。
      三、设置
       添加、删除标记:在报价窗口中右键点击证券(可多选),在选择“添加标记”或删除标记,方便自己下次寻找或观察。
       设置自选:新建一个自选股板块或自定义板块,在报价窗口,右键点击某个证券,出现菜单-加入到自选,点击完成操作。
      复制报价表数据:报价窗口右键点击,选择“复制数据”,在弹出窗口中输入需要复制的栏目数。
     复权:股票除权、除息之后,k线图形有较大的跳空缺口,影响分析,可使用“复权”功能恢复成连续的k线图。工具条左上角复权按钮“权”,可对当前证券进行“向前复权、向后复权、等比复权”,再次点击即取消。
      股票叠加(主图叠加):将多个股票的k线图叠加在一起分析。分析窗口点击左上角工具栏“叠”(或打开菜单 画面—主图叠加),选择证券,提示“是否将主图坐标设置为百分比坐标”,点击“确定”后现在股票K线叠加图,可同时选择多只证券进行叠加(系统默认最多为6图叠加,并用不同颜色文字区别股票)。
      设置预警:点击〖工具〗→〖预警〗。预警窗口上方是“预警条件”列表框,显示的是已设定的预警条件的名称及性质;下方框是“预警记录”列表框。按“新增条件”或“修改条件”按钮,打开“预警条件设定”对话框。对话框的预警条件列表:选择的预警条件。可以修改“预警名称”、改该指标的参数。在右边的“监控证券”里面设定监控范围等。
      训练模式,即观看该证券的历史行情趋势,练习看盘水平。在分析窗口〖工具〗→〖训练模式〗。模拟训练的对话框,设置日期和时间(时间为开盘时间内。点击“自动前进”按钮,即可以开始运行模拟的训练。
      太阳风暴,每支股票以圆圈为符号,根据选择的属性在图中会有不同的位置,就好象一个个“太阳粒子”一样,而且不断有“粒子”上下翻飞。点击【工具】选择【太阳风暴】,打开【太阳风暴】的对话框。其中,当前列表选择了“A股板块”。用户可以直接点击“纵”、 “横”的下拉菜单,选择合适的坐标参数,默认是“涨幅”、“换手”。坐标图里,红色圆圈代表正数,绿色圆圈代表负数。不“勾选”“当前列表”时,可以在右边的下拉菜单里,选择某个板块。按住鼠标的左键,拖动鼠标,出现一定范围的框,框起你感兴趣的个股圆圈,松开左键,便弹出以下对话框,选择放大、加入版块、所属版块(查看)。
     自定义数据管理:可灵活添加、管理、应用各类自定义数据(如发行价、自编公式数值),可通过SELFDATA(S)SELFSTRING(S)函数在各周期下调用,并可将数据导入导出。点击软件功能菜单里的〖工具〗→〖自定义数据管理〗进入操作界面。点新建,输入参数,建立数据记录。选择该数据记录,点击修改数据,然后对每只股票输入一个自己定义的数据,或者批量导入。
      K线定位:点击菜单栏中的【画面】-【K线定位】选项。输入日期时间。快速定位到您希望查看的那根K线位置。
      锁定显示时段:将当前画面的K线时间段锁定,翻看其他个股时画面只显示锁定时段的K线。主图上点击鼠标右键,选择锁定显示时段。
      打开历史回忆:先使用超长下载数据后 ,回去查看某个交易日所有证券的交易情况。图上点击鼠标右键,选择历史回忆,打开历史回忆。超长数据下载:系统,数据管理,数据下载,超长数据下载。
      时段统计:是指按住鼠标右键在主图上框定某时段的k线,松开,选择时段统计,将统计指定时段开盘、收盘、算术均价、换阴量、阴换手率以及对应时期大盘的涨跌幅和振幅等。便于用户分析和统计。
     多图同列:1、右键点击副图画面,在菜单中选择“多图同列”(ctrl+M),系统默认为9图组合。2、菜单→分析窗→多图同列→多图切换。
      同一股票打开多个分析窗口:点击查看,显示工作区,弹出工作区标签,点加号新建工作区。此时左上角,金魔方傍边的股票、期货、外汇选择按钮消失。
      四、交易。包括公式编辑、测评、交易等,略。
      1、登陆:
      本地模拟交易登陆:打开菜单“交易-本地模拟交易”会弹出交易入口。自动交易必须在登录时勾选记住密码和客户号。
      真实交易委托登陆:点击主菜单“交易-真实交易委托”会弹出登录界面。
      2、交易方式:
      自动化交易:在登陆交易账号的状态下,将公式管理区中的智能交易系统(唯一的,仅该类指标才能进行程式化交易)拖到主图上。弹出窗口进行策略初始设置,如:资金、手续费等。自动交易开关:公式设置好后,鼠标指向主图窗口右上角出现一个黄色圆脸,点击进行设置,笑脸运行策略,哭脸停止运行。
      多策略组合自动交易:同一品种运行多个策略,互不影响。将一个品种打开分析窗口,再将策略拖放至各个图形上即可。
      在自动交易状态下,k线图上将锁定不能做切换。
      由于每个策略具有单独的ID号,其中人工单也属于一个单独的ID号,所以人工单需要平仓时,必须人工操作平仓。
      人工交易:双击分析窗口面板右面的买卖盘,或者点击主窗口状态栏上的“买”按钮,或者点击“交易-本地模拟交易”、或者点击“交易-真实交易委托”,打开手工下单界面,下单界面默认选取当前画面上的品种。
      交易平台。点击交易、账户信息,包括资金、委托、撤单、持仓。
      3、交易设置。点击交易弹出各项设置,如:账户信息、
交易日志、交易管理、公式日志、全局变量、公式编辑器、防止计算机休眠、无人值守模式、启动所有智能交易、交易风险控制。
       4、交易评测。九步完成测评。
       第一步点击主菜单:【交易】-【智能交易测评】可以打开策略评测系统,支持单策略、多策略智能交易。
       第二步:添加测评:策略评测系统右侧点击添加,建立一个没有数据的空策略。根据空策略的提示,在双击添加策略和品种。
      第三步:添加品种时设置:手续费:包含固定部分,按量或按额的变动部分手续费。保证金:包含固定部分,按量或按额的变动部分。独立资金,初始额:账号初始资金额度。滑价:即每次成交不利方向滑移多少个最小变动单位。开仓类型:允许开多仓和空仓、只允许开多仓、只允许开空仓,是否不能平今仓。如果需要数据不详,需要点击数据下载。        第四步:添加策略的公式:点击『双击这里设置』,选择公式脚本—如:SAR抛物线转向智能交易系统。进行下单量设置。
      第五步:参数的评测。需开启参数优化功能。在策略评测系统左侧,点击优化设置,勾选进行参数优化,点标准优化目标。
      第六步,设置好后,点击策略评测系统左侧界面中间的【开始优化】按钮,程序经过运行后,列表显示策略不同参数的结果。
如果您设置参数的最小最大值数值差距很大、步长设置的很少,计算的时间就会很长。
      第七步:查看有优化结果:列表形式和三维形式。
      列表的内容:列表开始几列是参数的各种取值组合,每个参数组合一行测评结果,双击该行,可以查看该参数下的详细测评结果:测评报告、交易盈亏资产曲线图、交易明细。可以点击表头进行排序,方便找到最佳的运行结果。
      优化结果中的三维形式,是所有参数(参数以xyz轴对应不同参数值)组合的策略运行效果3D图,其中:颜色越深,表示策略的获利越大;浅绿色的是亏损的策略。右边的XY方向可以选择对应不同的参数,另一个参数指定不同的数值,以显示不同的效果图;Z方向可以选择不同的优化目标,如盈利因子,净利润等等。好的策略应该是3D图表面相对平整,高原平坦而非山峦跌宕起伏过于激烈的策略。参数的选取倾向于比较平坦的获利区域,以求策略取得平稳的复利效果。
      第八步、评测报告分为策略分析、交易分析、时段分析三部分。
      第九步:如果测评没有任何结果,可查看【运行日志】。


使用道具 举报

Rank: 3Rank: 3

发表于 2013-8-30 17:23:17 |显示全部楼层

五十三、评测报告指标详解

评测报告分为三大部分:策略分析、交易分析、时段分析。
一、策略分析:全过程的、总体属性的角度进行资产、损益进行统计。统计对象都是全过程比较。
(一)总体概要:
净利润:净利润=总盈利-总亏损,考察收益情况的第一指标,单纯看净利润的数额不能客观评判整个绩效状况。
总盈利(毛利):每笔盈利的交易实现的盈利总和。
总亏损(毛损):每笔亏损的交易实现的亏损总和。能坦然接受亏损交易,想想,开个公司每天都有支出,好比每天都有亏损交易,输得起的交易者才能成为赢家。
盈利因子(毛利/毛损) :总盈利/总亏损,也称为盈利比。它表示每亏损(支出)1元能获取多少元的盈利(收入)。这个比率说明投资效率,当然是越大越好。
收益率%:净利润/期初资产×100%,假设在统计期没有追加或减少资金。
年化收益率%:几何平均的年复合收益率(年复利、CARCAGR)。
最大资产回撤:逐根K线计算资产出现极高值后到极低值的最大回撤(缩水)金额,若资产值创新高,则重新计算,从该点再计算下一次最大回撤。只算高点和高点之后的低点差值。该值就是其中最大值的那次回撤。可以从详细资产曲线的阶段高峰到阶段低谷查看该值变化。通过这个统计值,可以检视自己在这样的交易数量下能忍受多大的回撤金额。它与最大资产回撤幅度是衡量风险的重要指标。固定交易量看最大资产回撤。随资产变动调整调整交易量则看最大资产回撤幅度。
净利润/最大资产回撤:又称恢复因子,在统计期内获得利润与承受风险的比率。这是考察风险与回报关系的重要指标。
最大资产回撤幅度:以百分比计量回撤幅度而不是回撤金额,计算方法与最大资产回撤相似。强平、爆仓风险来自于这个回撤幅度。通过这个统计值,可以检视自己在心理、资金上能忍受多大的资产回撤幅度。
这个幅度可认为是对风险最重要的衡量工具,通过考察长期的、跨越不同市场状况的资产回撤情况,可以对交易中发生的所有负面结果及其相关影响有个充分的了解。
年化收益率/最大资产回撤幅度:又称MAR比率,这是最常用的风报比指标。考察让资产平均每年增值的幅度与需承受的最大资产回撤幅度的关系。
交易次数:交易总次(笔)数,分批开仓后一次平仓,一次开仓后分批平仓,都会拆成多次交易一一对应的交易量相同的。这个指标可以评估交易的频率,由于每次交易是要付出交易成本的,这个数据也和佣金、滑价等交易费用支出相关,过于频繁的交易,其成本可能吃掉可以取得的利润。用分批开平仓的技巧可以减小风险,也可用于调整胜率、盈亏比。
盈利交易次数:盈利交易是指开平仓差价产生的毛利减去开平仓交易成本(包括佣金、滑价、息差等)依然有利润的交易。
亏损交易次数:亏损交易是指平仓后产生亏损的交易。盈利交易次数与亏损交易次数之和可能小于总交易次数,其差值为盈利为0的打平交易次数。
胜率%:胜率% = 盈利交易次数/交易次数*100%,胜率低于50%未必是亏损系统,只要每次交易的平均盈利比平均亏损足够大。一般未经过特别过滤的趋势跟随型或突破型策略,其长期的胜率低于40%。而均值回归型策略其胜率容易达到50%以上,但如果不控制好每次交易的亏损,很高的胜率也未必是盈利的系统。设置止赢位、止损位对改变胜率和盈亏比有极大影响。通常来说,投资者尤其是新手偏好高胜率的交易,胜率太低会影响心态,导致无法长期坚持执行,所以,策略组合最好能牺牲些盈亏比换来胜率大于50%,好比薄利多销而不求暴利,在实战中心理上也比较容易接受。
平均盈亏:每次交易的盈亏额的平均值,也称为预期盈利、期望收益。对于每次交易固定数量或金额的系统(统计期内价格波幅不大的可固定数量,反之应固定金额),看预期收益比较有意义。如果策略测试时佣金和滑价设置为0,那么这个值应大于这些实际交易时可能产生的交易成本才是可盈利的策略。
平均盈亏=净利润/交易次数=每笔交易的期望收益=平均盈利×胜率-平均亏损×(1-胜率)
平均盈利:盈利的交易每次平仓实现盈利额的平均值,平均盈利=总盈利(毛利)/盈利交易次数。
平均亏损:亏损的交易每次平仓实现亏损额的平均值,平均盈利=总亏损(毛损)/亏损交易次数。
盈亏比:平均盈利/平均亏损,趋势交易追求高盈亏比,用多次小的试错成本换来一次大的盈利。不同风格的交易策略,或偏好高胜率,或偏好高盈亏比,长线趋势型系统,其盈亏比高,短线交易系统,盈亏比相对较低。
※※最大单次盈利:盈利交易中最大一次的盈利,若最大单次盈利与平均盈利差距过大,则应视为偶然事件。
最大单次亏损:亏损交易中最大一次的亏损,若最大单次亏损与平均亏损差距过大,应检查系统的风险控制能力,可以考虑设置止损位,以防御突发状况造成的重大亏损。
最大连续盈利次数:盈利有时有集中的现象,策略适应此阶段的走势形态。也许可以考虑在连续盈利接近最大连盈次数时,开始减轻每次交易投入的资金。
最大连续亏损次数:亏损有时有集中的现象,策略不适应此阶段的波动,心理上能否承受如此多次的试错?也许可以考虑在连续亏损最大次数时,逐步增大资金投入。
平均持仓周期:持仓周期/交易次数,考察策略偏长线或是短线
平均盈利周期:盈利交易持仓周期/盈利交易次数,考察盈利交易是否需要耐心持有
平均亏损周期:亏损交易持仓周期/亏损交易次数,考察亏损交易是否及时平仓
(二)风险分析(过度冒险是自寻死路,但是不敢冒一定的风险就会失去很多机会,评估风险并以此改进风险管理技术有助于树立信心和耐心,实现预期目标)
去离群总盈利:去除离群盈利交易产生的总盈利,离群盈利交易是指单次盈利在n倍标准。              
去离群总亏损:去除离群亏损交易产生的总亏损,离群亏损交易是指单次亏损在n倍标准差之外的亏损,如果去离群总亏损与总亏损差距过大,说明大部分亏损来自于突发的重大亏损,则策略需要增强防御这类情况的能力。              
期末持仓盈亏:统计期末有持仓时的浮动盈亏,若没有未平仓头寸,显示N/A            
持有收益:资金的市场客观收益,其收益率即等于期末价格变动的幅度。统计的是期初不用资金杠杆而全额开仓,到期末实现的盈利或亏损。假设的是开仓后简单持有,直到最后卖出。比如10万初始资金,商品期末价格上涨了200%,则多头持有收益为20万,空头持有收益为-20万,不必考虑是否支持保证金交易、资金杠杆是多少。不能简单地以净利润与该收益作比较判定策略好坏,因为还需要比较资产最大回撤和收益标准差这类风险度量,如果在风险报酬比率上优于简单开仓持有,则是好的策略。                  
佣金合计:包括经纪商手续费、交易所手续费、股票托管费等交易费用                 
滑价合计:历史回测测试时假设的滑价,或者实际交易中滑价导致的交易成本。                  
最大单次盈利/总盈利:若该值较高,即最大单次盈利在总盈利中的比重过大,则说明系统实际盈利能力和稳定性不高。      
最大单次亏损/总亏损:若该值较高,这次最大亏损是否是这个策略的“黑天鹅”。
净利润/最大单次亏损:该值越高越好。
回归年化收益率:对资产曲线按月(年、周)计算线性回归后的年复合收益率,对统计的起止日期相对不敏感。
月化收益率:月复合收益率(月复利)。
月平均收益(30/月):净利润/统计期间月数。
月收益标准差:每个月净利润的标准差。
月收益率标准差:统计每月资产收益率的标准差,标准差越小表示资产曲线越平滑。
最大资产回撤发生期:从资产高峰到低谷的起止日期。
最大资产回撤幅度发生期:最大资产回撤幅度发生的起止日期。
最长资产回撤持续时间(天):从资产极高值到创新高所经过的最长时间,衡量的是恢复速度,即一段损失期后需多长时间资产额才能恢复并重新站上新的高点。这个期间未必是最大资产回撤或回撤幅度发生的期间。
通常投资市场都是快跌慢涨,包括资产曲线。假如初始资本是100万元,回撤50%,那就只剩50万元,要恢复到100万元,需要获利100%,显然这更大可能是需要更长的时间,难度也更大。所以,首要任务是保存资本,再图盈利。
对于那些需要从业绩增量中获得报酬的基金管理者,当资产回撤达到一定程度,如果想尽快收回损失,相应的恢复过程就需要及时增加资本投入,伴随而来的财务压力可能使基金管理者变得不耐烦并想努力尽快捞回损失而采取激进措施,但很可能会发现自己掉进了一个更深的洞,进而威胁整个交易计划的生存。所以,把一定的资产回撤作为降低风险的基础是风险管理计划的重要组成部分。例如,在交易计划之初就确立资产回撤达到10%时就将仓位降低50%,首先,这将大大有助于减少资产进一步回撤的程度,其次,从长期来看会更有信心承担未来可能发生的更大的风险。
最大浮动亏损:整个仓位的事实亏损。有持仓时的最大浮动亏损金额,浮动亏损可能对投资者心理造成较大冲击,在期货这种运用资金杠杆的情况下,会导致可用金减少,直接影响保证金水平,甚至带来穿仓风险,被强行平仓甚至直接爆仓,这个指标可以帮助头寸管理和设定机动的最大亏损止损位。            
最大浮动亏损幅度:有持仓时的最大浮动亏损幅度,以百分比考察浮动亏损,统计期间价格幅度变化很大时,用百分比有可比性。对于短期或固定金额开仓,数额指标比较直观,但对长期的或持仓量变化大的,应该检视幅度指标。         
最大平仓交易回撤:平仓交易时逐笔计算资产的极高值出现后的最大亏损金额,若平仓交易时的资产值创新高,则重新计算,从该点再计算下一次最大回撤,该值就是其中最大值的那次回撤。可以从平仓交易资产曲线的阶段高峰到阶段低谷查看该值变化。         
最大平仓交易回撤发生期:平仓交易时从资产高峰到低谷的起止日期。   
最大平仓交易回撤幅度:以百分比计量回撤幅度而不是回撤金额,其余与最大平仓交易回撤相同。      
最大平仓交易回撤幅度发生期:以百分比计量回撤幅度而不是回撤金额,其余与最大平仓交易回撤相同。
净利润/最大资产回撤:以百分比计量回撤幅度而不是回撤金额,其余与最大平仓交易回撤相同。
净利润/最大平仓交易回撤:以百分比计量回撤幅度而不是回撤金额,其余与最大平仓交易回撤相同。
年化收益率/最大资产回撤幅度:以百分比计量回撤幅度而不是回撤金额,其余与最大平仓交易回撤相同。
有效年化收益率/最大资产回撤幅度:大于2为好。
年化收益率/25%的最大资产回撤幅度的平均值:分母以最大的25%的资产回撤幅度的平均值作为风险。
ULCER指数:用于计算Ulcer绩效指数,以资产回撤的平均化作为风险度量:Ulcer =sqrt((R1^2+ R2^2+......+ Rn^2)/n)R1R2...... Rn为第1、第2......n个资产回撤幅度。

使用道具 举报

Rank: 3Rank: 3

发表于 2013-8-30 17:25:08 |显示全部楼层
R平方:资产曲线与基准指数的相关系数的平方*100,反映基准指数(大盘)的波动对收益表现的影响,该值用于度量策略的系统风险,或者说是系统风险在总风险中所占的比重。例如指数ETF对标的指数的R平方接近于100。资产与大盘相关系数。
夏普指数:经风险调整后的绩效指标,用于衡量投资的有效回报。夏普指数=(月化收益率-无风险月利率)/月收益率标准差    SR=(MR-RFR)/SD
无风险利率(RiskFreeReturn  RFR)一般为银行定存利率或短期国债的月收益率,在【选项】中设置。
时间跨度很长的可以用年化收益率和无风险年利率计算。夏普指数大于1为好,大于2很好,若为负值,表示承受风险但回报率反而不如存银行。
Ulcer绩效指数:以夏普指数相似,但以资产回撤作为风险衡量。UPI=(年化收益率-无风险年利率)/ Ulcer。以Ulcer指数代替夏普计算公式中的分母。         
稳健风报比:回归年化收益率/长度调整平均最大回撤
长度调整平均最大回撤=最大5次回撤幅度的平均值×这5次回撤期的平均天数/365,从回撤幅度和持续时间这两个角度来度量风险。
飞狐评分:该分值综合衡量盈利能力、资金占用率(平均仓位)、最大风险和长期稳定性。同样的年化收益率,若仓位越大,表示投入资金越多,分数越低;若回撤越大,表示爆仓风险越大,则分数越低;标准差越小,统计时间越长,稳定性越好,则分数越高。
分值 =年化收益率/平均仓位×(1 + 最大资产回撤比例) ×(1-月收益标准差*3)×交易月数^1/3)。这个算法对开始运行不久(1年之内)取得较好收益的策略评分偏高。
例如,年化收益率 30%,平均仓位30%,最大资产回撤比例 -15%,月收益标准差3%,交易期长达125个月的策略,其分数为:
(30 / 0.3)*(1 - 0.15)*1-0.03*3* 125^1/3 = 100 * 0.85 * 0.91*5 = 386.75
对于亏损系统,不计交易月数,为了让回撤比例越大,稳定性越差,负值越大,算式为
分值 =年化收益率/平均仓位×(1 + 最大资产回撤比例的绝对值) ×(1+月收益标准差*3
例如,年化收益率 -30%,其余数据与上述相同,则分数为:
(-30 / 0.3)*(1 + 0.15) *1+0.03*3 = -100 * 1.15 *1.09= -125.35
(三)、时间仓位分析
总交易时间:有足够历史数据可让策略产生交易信号的期间,不一定等同测试期间。               
持仓时间(天):有持仓的天数总计。           
持仓时间%:有持仓的天数总计。               
最大空仓时间(天):这个空仓时间长可能意味着必须有足够耐心等待下一次交易。        
总交易月数:总交易期间换算成月数量。               
盈利月数:交易期资产增值的月数量。                 
资产增值天数:统计当天收盘比前一天资产增值的天数。              
资产减值天数:统计当天收盘比前一天资产减值的天数。              
获利日占比:资产增值天数/总交易时间*100%               
最大浮盈日期:最大浮盈的具体日期。            
最大浮亏日期:最大浮亏的具体日期。                           
平均持仓周期:持仓周期/交易次数,考察策略偏长线或是短线。              
平均盈利周期:盈利交易持仓周期/盈利交易次数,考察盈利交易是否需要耐心持有。
平均亏损周期:亏损交易持仓周期/亏损交易次数,考察亏损交易是否及时平仓。
最大持仓数量:统计历史上曾经的最大的持仓合约数。              
最大占用资金:统计历史上最大投入的资金额,开仓到最大仓位时投入的资金。              
最小账户资金:最大资产回撤+占用的保证金。              
平均仓位:对每根K线取样计算持仓占用的资金/资产的百分比平均值,仓位意味着风险敞口,该百分比越高,表示资产暴露给市场波动风险的程度越高,也表示在市场上投入资金量越大,机会成本越大,没有更多的资金投入其他地方。                  
(四)资金曲线
主图:资产曲线是每天对应的资产连线,它有三条线,红线表示表现资产的潜在高点,绿线表示资产的潜在低点,黑线是平仓后才把平仓盈亏计入资产(余额)的曲线。显然,多头持仓的资产高点以持仓期间每日的最高价计算,资产低点以最低价计算,因尚未平仓,浮动盈亏不计入资产余额,所以持仓期间黑线是水平线,空头持仓则反之。如果某段时期没有持仓,则三条线都是数值一样的水平连线。
副图:占用保证金曲线,代表对应当时占用了多少保证金。
双击鼠标出现十字光标可查看各点数值。
资产及水下(回撤)曲线图
资产曲线主图
副图:资产回撤曲线是资产曲线中从潜在高点回撤到潜在低点的金额,即该天两条曲线差值。其最大值即【总体概要表】中的“最大资产回撤”。固定数量交易用该曲线评估风险。
资产回撤幅度曲线是资产从潜在高点回撤到潜在低点的幅度,其最大值即【总体概要表】中的“最大资产回撤幅度。随资金变动调整交易数量的用该曲线评估风险。
(五)资产升水及回撤曲线图
主图:资产升水曲线表示表现资产的潜在高点的数值连线。就是资产曲线中红色那一条。
附图:资产回撤曲线是资产从潜在高点回撤到潜在低点的金额,即该天两条曲线差值。其最大值即【总体概要表】中的“最大资产回撤”。固定数量交易用该曲线评估风险。
(六)资产升水及回撤幅度曲线图
主图:资产升水曲线表示表现资产的潜在高点的幅度连线。就是资产曲线中红色那一条。
资产回撤幅度曲线是资产从潜在高点回撤到潜在低点的幅度,其最大值即【总体概要表】中的“最大资产回撤幅度”,随资金变动调整交易数量的用该曲线评估风险。
二、交易分析。每笔交易具体属性进行统计。统计的对象是单笔。
(一)交易明细
【交易明细】表,它的每一行们与主图上的交易箭头是对应的,其表头的部分项目解释如下:
交易指令:交易指令函数中指定的开仓名或平仓名,若未指定,系统会根据指令类型自动填充;
盈亏%:盈亏金额/开仓市值*100%,开仓市值=开仓价*合约乘数*交易量;
有效盈亏:盈亏金额/开仓占用保证金*100%
滑价成本:策略设置中所设置的滑点折算成金额,在计算盈亏时扣除。需注意的是,对滑价成本的处理与手续费相似,并不影响信号的开平仓价格;
最佳平仓价:多头持仓期间的最高价或空头持仓期间的最低价;
最差平仓价:多头持仓期间的最低价或空头持仓期间的最高价;
最大浮盈:持仓期间最大的浮动盈利,此时的市场价即是最佳平仓价;

使用道具 举报

Rank: 3Rank: 3

发表于 2013-8-30 17:26:01 |显示全部楼层
最大浮亏:持仓期间最大的浮动亏损,此时的市场价即是最差平仓价;
开仓效率:评价开仓价格位置在行情之中的有效性,例如,持仓期间行情最高最低价范围为100点,做多开仓价在最低点,则开仓效率为100%
多头开仓效率=(最高价-开仓价)/(最高价-最低价)
空头开仓效率=(开仓价-最低价)/(最高价-最低价)
平仓效率:评价平仓价格在行情中的有效性,例如,行情范围100点,做多平仓价在最高点,则平仓效率为100%
多头平仓效率=(平仓价-最低价)/(最高价-最低价)
空头平仓效率=(最高价-平仓价)/(最高价-最低价)
交易效率:评价盈利在行情中占据的区间,例如,行情范围100点,盈利80点,则交易效率为80%
多头交易效率=(平仓价-开仓价)/(最高价-最低价)
空头交易效率=(开仓价-平仓价)/(最高价-最低价)
【交易明细】是原始的交易数据,只有这些数据难以对交易状况有整体的认识,需要对这些数据进行统计,形成各项指标值,我们把最基本最重要的统计指标提炼出来,形成【总体概要】表。
(二)、交易总体分析
盈亏中值:如果平均盈亏大大超过盈亏中值,则很可能是由于少数赚钱最多的交易大大提高了均值水平。反之,如果盈亏中值明显高于平均盈亏,那很可能是由于有一些重大亏损。
中值,统计学中又叫中位数,是按大小排序,取中间序号指向的值。比如说一组数:200, 250, 300, 10002000,排序12345,取3指向300。但是这组数的平均数为750。因为一半300多,一半比300少,如果改写这组数 2002503005001000,中位数还是300,但是平均数却变为450,变化还是比较大的。所以,中位数相对于平均数比较不受数据极大值,极小值偏差程度的影响。
最大单次盈利/总盈利:若该值较高,即最大单次盈利在总盈利中的比重过大,则说明系统的盈利很大程度是靠某次暴利,其实际盈利能力和稳定性不高。
最大单次亏损/总亏损:若该值较高,这次最大亏损是否是这个策略的“黑天鹅”。
净利润/最大单次亏损:该值越高越好,即最大单次亏损越小越好。
最佳10%交易盈利/净利润:按盈利水平排在前10%的交易实现的盈亏占净利润的比例。该比值度量了盈利的集中度。如果该值等于100%,说明前10%的交易赚取了所有的净利润,而余下的90%的交易仅仅实现盈亏平衡。但是,从这个数据不能指望通过减少这些不盈利的交易来提高效益,因为那90%的交易是整个交易成功不可或缺的部分。对于一个趋势跟随策略来说,保存资本让顶级的交易机会真正发挥作用是非常重要的。意思增大该值,而不是减少亏损次数。
最差10%交易亏损/净利润:按盈利水平排在最后10%的交易实现的亏损占净利润的比例,对于一个中长线策略来说,这个亏损值不应该夺去排前10%的交易所获得的核心利润,健全的风险控制是做到这一点的关键。意思是减小这个比例。
最大连续盈利额:最大的连续盈利实现的盈利额,不一定是最大连续盈利次数那一系列交易产生的。
最大连续亏损额:最大的连续亏损实现的亏损额,不一定是最大连续亏损次数那一系列交易产生的。
最大连续盈利率:最大的连续盈利实现的盈利率,不一定是最大连续盈利次数那一系列交易或者最大连续盈利额那一系列交易产生的。
最大连续亏损率:最大的连续亏损实现的亏损率,不一定是最大连续亏损次数那一系列交易或者最大连续亏损额那一系列交易产生的。
离群交易【离群交易】表,统计、考察非常态交易的状况。
统计所指的离群点是远离一般水平的极端大值和极端小值,离群交易即发生在常态盈利或亏损之外的交易,计算时把不在正常范围(n倍标准差)内的交易归入离群交易。人类活动的结果往往导致“厚尾分布”而不是正态分布,金融数据表现出尖峰厚尾的特征,具体来说就是离群交易数量偏多,比如,正态分布上百年难遇1次的事件现实中十年遇到2次。
盈亏的标准差:平均盈亏的标准差
最大偏移/标准差:最大单次盈利或最大单次亏损与标准差的比值
离群交易数量:离群交易次数
离群交易盈亏:离群交易的盈亏之和
在【选项】->【测评】页面中,可设置“几个标准差外算作离群交易”。
(三)、最大浮盈浮亏
最大值:所有平仓交易的浮盈/浮亏中的最大值。
发生日期:浮盈/浮亏出现最大值的日期。
最大值%:所有平仓交易的浮盈/浮亏幅度中的最大值。
平均值:所有平仓交易的浮盈/浮亏的平均值。
平均值%:所有平仓交易的浮盈/浮亏幅度的平均值。                  
标准差:所有平仓交易的浮盈/浮亏的标准差。                    
平均值+N倍标准差:平均盈亏+盈亏的标准差。         
平均值-N倍标准差:平均盈亏-盈亏的标准差。     
(四)平仓收益曲线
该图是累积平仓盈亏的连线(不是单次平仓盈亏),体现了每次交易的累积平仓收益。还可以细分为多头、空头单独计算累积平仓盈亏。横坐标为交易序号,表示第几次交易,曲线上的红色点表示累积收益创新高,绿色点表示累积收益创新低。分别代表波峰波谷。
(五)平仓收益曲线与回撤图
主图:平仓收益曲线。
副图:平仓收益回撤曲线是平仓收益从高点回撤到当前点的金额,其最大值即【收益风险分析表】中的“最大平仓交易回撤”,显然,它小于“最大资产回撤”,固定数量交易用该曲线评估风险。
副图:平仓收益回撤幅度曲线是平仓收益从高点回撤到当前点的幅度,其最大值即【收益风险分析表】中的“最大平仓交易回撤幅度”,显然,它小于“最大资产回撤幅度”,随资金变动调整交易数量的用该曲线评估风险。
双击鼠标出现十字光标可查看各点数值。
(六)、多头平仓收益曲线与回撤图。
主图:多头平仓收益曲线。
副图:多头平仓收益回撤曲线。
副图:多头平仓收益回撤幅度曲线。
(七)、空头平仓收益曲线与回撤图
主图:空头平仓收益曲线。
副图:空头平仓收益回撤曲线。
副图:空头平仓收益回撤幅度曲线。
(八)平仓盈亏散点图
该图是直观显示所有交易的平仓盈亏的分布。纵坐标为盈亏价值。横坐标为交易序号,表示第几次交易。水平线有三条:黑色水平线是总体的平均盈亏、红色水平线是所有盈利交易的平均盈利、绿色水平线是所有亏损交易的平均亏损。黑色点表示盈利或者亏损值。红色点表示若干倍标准差外的离群盈利交易,绿色点表示若干倍标准差外的离群亏损交易。
(九)有效平仓盈亏率散点图
该图是直观观察每笔交易的盈亏占实际动用资金的收益率,即损益投资比率。纵坐标为收益率。横坐标为交易序号。
有效平仓盈亏率=平仓盈亏/实际占用保证金。
(十)最大浮盈散点图
该图是直观观察每笔的盈利交易分布。纵坐标为最大浮盈价值。横坐标为交易序号。每个点表示该笔交易的最大浮盈。黑色水平线是最大浮盈的平均值。
(十一)最大浮盈-平仓盈亏柱状图
该图以柱状直观观察曾经的最大的浮盈与平仓盈亏的差距。
横坐标是交易序号,每个柱的高点都在0线之上,是该笔交易的曾经的最大浮盈,低点是该笔交易的实际平仓盈亏,柱形高度表示最大浮盈与平仓盈亏间的差距。红色表示该笔交易是盈利的,绿色表示该笔交易是亏损的。
(十二)、最大浮盈-平仓盈亏散点图
该图是45°射线的偏离程度为参照,通过每笔交易平仓盈亏与曾经的最大的浮盈关系,直观观察交易的有效性。盈利交易在45°射线之下,越接近45°射线,平仓平仓盈亏月接近最大的浮盈。亏损交易越高亏损越大。
纵坐标是平仓盈亏的绝对值。横坐标是最大的浮盈。红色点表示盈利交易,绿色表示亏损交易。
(十三)最大浮亏散点图
该图是直观观察每笔的亏损交易分布。纵坐标为最大浮亏价值。横坐标为交易序号。每个点表示该笔交易的最大浮盈。黑色水平线是最大浮亏的平均值。
(十四)最大浮亏-平仓盈亏柱状图
该图以柱状直观观察曾经的最大的浮亏与平仓盈亏的差距。
横坐标是交易序号。纵坐标是浮亏、平仓盈亏价值。每个柱的低点都在0线之下,是该笔交易的曾经的最大浮亏,高点是该笔交易的实际平仓盈亏,柱形高度表示最大浮亏与平仓盈亏间的差距。红色表示该笔交易是盈利的,绿色表示该笔交易是亏损的。
(十五)最大浮亏-平仓盈亏散点图
该图是45°射线的偏离程度为参照,通过每笔交易平仓盈亏与曾经的最大的浮亏关系,直观观察交易的有效性。亏损交易在45°射线之下,越接近45°射线,亏损越接近最大的浮亏。盈利交易越高盈利越大。
纵坐标是平仓盈亏的绝对值。横坐标是最大的浮亏。红色点表示盈利交易,绿色表示亏损交易。
(十六)平仓盈亏分布图
该图直观观察平仓盈亏最大亏损和最大盈利之间价格区间内交易次数的分布。横坐标是盈亏的价值量,右边为盈利,左边为亏损,细分为各个小等长区间。纵坐标是交易次数。
柱线表示某个价格区间的交易次数。观察上图,虽然亏损交易的总次数大于盈利交易的总次数,但盈利幅度大于亏损幅度,总体依然是盈利的。该图叠加了中心值为平均盈亏的正态分布曲线,便于对比。
三、时段分析。
(一)月绩效分析表
测试期内所有相同月份交易绩效的统计。
比如2005-2012年的月绩效统计,每年相同月份绩效合计。发现有的月份的绩效如此不堪,可考虑这几个月份减小投入资金或不做交易。有的月份的绩效惊人,可考虑这几个月份加大投入。
(二)月度分析
与【月绩效分析表】不同,该表是测试期内每个自然月依次的交易绩效的统计,即不合计。
(四)年度分析
测试期内每个自然年的交易绩效的统计。
(五)月净值收益与回撤柱形图
该图直观的观察自然月份资产净值的的盈亏和最大盈亏回撤。横坐标是月份。纵坐标是损益。柱形图分为实心与虚线。实心柱高度表示该月资产净值的盈亏,0线上表示盈利,0线下表示亏损。最大回撤超过损益,用虚线表示。0线上的虚线柱高度表示该月的最大浮盈,0线下的虚线柱高度表示该月的最大浮亏。
固定数量交易看金额图,随资金变动调整交易数量的看幅度图。
(七)月净值收益与回撤幅度柱形图
该图直观的观察自然月份资产净值的盈亏幅度和最大盈亏回撤幅度。横坐标是月份。纵坐标是损益幅度。柱形图分为实心与虚线。实心柱高度表示该月资产净值的盈亏幅度,0线上表示盈利,0线下表示亏损。最大回撤超过损益,用虚线表示。0线上的虚线柱高度表示该月的最大浮盈幅度,0线下的虚线柱高度表示该月的最大浮亏幅度。
固定数量交易看金额图,随资金变动调整交易数量的看幅度图。
(八)月平仓收益与回撤柱形图
该图直观的观察自然月份的平仓损益和最大盈亏回撤幅度。横坐标是月份。纵坐标是损益。柱形图分为实心与虚线。实心柱高度表示该月资产净值的盈亏,0线上表示盈利,0线下表示亏损。最大回撤超过损益,用虚线表示。0线上的虚线柱高度表示该月的最大浮盈,0线下的虚线柱高度表示该月的最大浮亏。
固定数量交易看金额图,随资金变动调整交易数量的看幅度图。
(九)月平仓收益与回撤幅度柱形图
该图直观的观察自然月份平仓损益幅度和最大盈亏回撤幅度。横坐标是月份。纵坐标是损益幅度。柱形图分为实心与虚线。实心柱高度表示该月平仓损益幅度,0线上表示盈利,0线下表示亏损。最大回撤超过损益,用虚线表示。0线上的虚线柱高度表示该月的最大浮盈幅度,0线下的虚线柱高度表示该月的最大浮亏幅度。
固定数量交易看金额图,随资金变动调整交易数量的看幅度图。

使用道具 举报

Rank: 3Rank: 3

发表于 2013-8-30 17:28:28 |显示全部楼层
本帖最后由 hslixuexue 于 2013-8-30 17:41 编辑

五十四、dll调用

编程、软件使用学习了,可以模拟操作了吧!把编好的代码,丢进智能交易公式里面,拖到分析窗口,就开始干!或者使用后台交易函数。就是比水平与熟练了。寻找策略时突然发现重要的功能忘记了学。不过现在学也许才合适。
扩展函数可用于实现系统公式函数不能实现的特殊算法。扩展函数用windows 32位动态链接库实现,建议使用Microsoft Visual C++编程。使用时必须将动态库文件放置在软件安装目录下的FmlDLL子目录下。
动态链接库,英文为DLL,是Dynamic Link Library 的缩写形式。DLL不是可执行文件DLL提供了一种方法,使进程可以调用DLL内函数。DLL 是一个包含可由多个程序同时使用的函数代码和数据的库。文件格式abc.dllabc为动态库名称。
交易策略声明调用DLL文件内某个函数时,在公式编辑器中按如下书写代码:"动态库名称@函数名称"(参数表)即可, 动态链接库名称和函数名称可以自己定义。例如下面函数"FOXFUNC@MYMACLOSE"(5)
一、飞狐 DLL调用
(一)、dll程序的C语言接口声明
DLL名称和其内部函数名称可以自行定义,原飞狐公式不区分大小写,DLL的函数名最好使用全大写,避免某些环境下无法加载,新版本的DLL则无此限制。下面的用C语言,在DLL程序内定义一个名为:MYMACLOSE 的函数。
extern "C" __declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData)
extern "C":告诉C++编译器调用下面代码是C语言,指示编译器这部分代码按C语言的进行编译,而不是C++的。C++支持函数重载,编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名; C语言不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名。但是在C++出现以前,很多代码都是C语言写的,而且很底层的库也是C语言写的,为了更好的支持原来的C代码和已经写好的C语言库,所以在C++中尽可能的支持C
__declspec(dllexport):将一个函数声明为导出函数,就是说这个函数要被其他程序调用,即作为DLL的一个对外函数接口。   通常它和extern  "C" 合用。
int是说明后面的函数返回值类型,取整。
WINAPIWindows操作系统应用程序接口(Windows API),简称法WinAPIWindows系统声明其后函数为应用程序接口。
m_pResultBufDLL返回的数值序列的存放位置,0表示从第1位起有效,2表示从第3位起有效,返回-1表示全部无效,公式将没有输出。m_pResultBufCALCINFO的类型下面讲述。
CALCINFO*pData 指针,本指针作为MYMACLOSE函数的参数。指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。可以说指针就是另外一个变量的地址,其大小是4个字节。指针除了可以指向整型变量、字符串变量外,还可指向内存中其他任何数据类型的变量,如数组、结构体和联合体等。实际上,它还可以指向函数,甚至还可指向另一个指针。*是指针类型声明符。abc * pintabc是指针指向变量,pint指针名。* pint可以代替变量abc。如果abc是数组:指针指向数组初始位置:* pint=&abc0】,也可以表示为* pint=abcPint+1表示下个数值,而不是用pint的值加1Pint±n表示前进后退几个数据单元,n是数据单位不是字节,一个单元2个字节;Pintx- Pinty,不是两个数据值相减,而是两个数据之间的数据个数。
CALCINFO,自定义的变量名称。
(二)C语言数据类型之结构类型
MYMACLOSE函数的参数是指针CALCINFO*pData,它的数据类型是结构。先了解结构类型数据。
在实际问题中,一组数据往往具有不同的数据类型。例如, 在学生登记表中,姓名应为字符型;学号可为整型或字符型; 年龄应为整型;性别应为字符型;成绩可为整型或实型。 显然不能用一个数组来存放这一组数据。 因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。为了解决这个问题,C语言中给出了另一种构造数据类型——“结构 它相当于其它高级语言中的记录。
结构是一种构造类型,它是由若干成员组成的。 每一个成员可以是一个基本数据类型或者又是一个构造类型。 结构即是一种构造而成的数据类型 那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义一样。定义一个结构的一般形式为:
struct 结构名
{
成员表列
};
成员表由若干个成员组成, 每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:
类型说明符 成员名;
成员名的命名应符合标识符的书写规定。例如:
struct stu
{
int num;
char name[20];
char sex;
float score;
} ;
在这个结构定义中,结构名为stu,该结构由4个成员组成。 第一个成员为num整型变量;第二个成员为name,字符型数组;第三个成员为sex,字符型变量;第四个成员为score,浮点型变量。 应注意在括号后的分号是必不可少的。
C++中,struct的功能得到了强化,struct不仅可以添加成员变量,还可以添加成员函数,和class类似。
结构定义之后,即可进行变量说明。 凡说明为结构stu的变量都由上述4个成员组成。由此可见, 结构是一种复杂的数据类型,是数目固定,类型不同的若干有序变量的集合。结构体变量用 . 运算符来访问结构体的成员,指向结构体的指针用->来访问其指向的结构体的成员。
请看下面的结构:
struct MyStruct
{
double dda1;
char dda;
int type;
}
对结构MyStruct采用sizeof会出现什么结果呢?sizeof(MyStruct)为多少呢?sizeof()返回内存字节数。也许你会这样求:
sizeof(MyStruct)=sizeof(double)+sizeof(char)+sizeof(int)=13
但是当在VC中测试上面结构的大小时,你会发现sizeof(MyStruct)16。你知道为什么在VC中会得出这样一个结果吗?
(三)dll接口定义。
前述dll中的MYMACLOSE(CALCINFO* pData)函数的参数是CALCINFO*pData,它的数据类型是结构。用来存放各种类型输入、输出的数据。的下面是它的定义:
////////////////////////////////////////////////////
//调用接口的信息数据结构
////////////////////////////////////////////////////
typedef struct tagCALCINFO
{
   DWORD m_dwSize; //结构大小
   DWORD m_dwVersion; //调用软件版本(V3.00 : 0x300)
   DWORD m_dwSerial; //调用软件序列号
   char* m_strUserName; //软件用户名
   char* m_strStkLabel; //股票代码
   BOOL m_bIndex; //大盘
   int m_nNumData; //数据数量(pData,pDataEx,pResultBuf数据数量)

使用道具 举报

Rank: 3Rank: 3

发表于 2013-8-30 17:29:33 |显示全部楼层
  STKDATA* m_pData; //常规数据,注意:m_nNumData==0时可能为NULL
   STKDATAEx* m_pDataEx; //扩展数据,分笔成交买卖盘,注意:可能为 NULL
   int m_nParam1Start; //参数1开始有效位置
   float*  m_pfParam1; //调用参数1,传入数据
   float*  m_pfParam2; //调用参数2,传入数据
   float*  m_pfParam3; //调用参数3,传入数据
   float*  m_pfParam4; //调用参数4,传入数据                 
   float* m_pResultBuf; //结果缓冲区
   int m_dataType; //数据类型
   float* m_pfFinData;      //财务数据
   //以上与分析家兼容,所以沿用其结构和名称
   //以下为 FoxTrader 扩展
   DWORD m_nFncType; // function type
   int m_nNumParam; // 调用参数数量
   CALCPARAM* m_pCalcParam; // 调用参数数组
   float* m_pResultBufExt[8]; //扩展结果缓冲区
   int m_nResultStart[8]; //扩展结果有效位置
   void* m_pUserData; // 用户数据(102400字节)
   //内部函数计算用
   int m_nParam2Start; //参数2开始有效位置
   int m_nParam3Start; //参数3开始有效位置
   int m_nParam4Start;     //参数4开始有效位置      
   char* m_strStkName; //股票名称            
   SPLITDATA* m_pSplitData; //除权数据            
   int m_nNumSplitData; //除权次数           
   int m_iCurIndex;      //计算当前下标数据         
   void* m_pReserved1;
   void* m_pReserved2;
   void* m_pReserved3;
   void* m_pReserved4;
} CALCINFO;
注意里面的float* m_pResultBuf;就是函数返回数值序列的存放位置,序列的类型是float, 长度是int m_nNumData;
Typedef:数据类型定义关键字,在原有数据类型(基本类型、构造类型和指针等)的基础上,由用户自定义新的类型名称。
DWORD 就是 Double Word 每个word2个字节的长度,DWORD 双字即为4个字节,每个字节是8位,共32
bool为布尔型,只有一个字节,取值falsetrue,是01的区别。
Tag:是一个变量标识,放在CALCINFO前是windows中变量名称命名习惯方法。tagCALCINFO
CALCINFO,是一个构造数据类型:结构类型的名称,用来存储这个结构。
(四)参数传递(非行情数据)
将参数传入DLLCALCINFO结构体里面的m_pfParam1m_pfParam2m_pfParam3m_pfParam4,四个指针指向变量时数组; 最多可传4个数组序列。依次传入:当m_pfParam1NULL时,表示无参数;当m_pfParam1不为空而m_pfParam2为空表示有1个参数;当m_pfParam1m_pfParam2不为空但m_pfParam3为空则表示有两个参数,以此类推。每个数组序列的有效起始位是m_nParam1Startm_nParam2Startm_nParam3Startm_nParam4Start,这四个是数组开始地址。起始位小于0表示是单值( *m_pfParam1 来获取)。起始位大于等于0时,有效数据为: m_pfParam1[m_nParam1Start]m_pfParam1[m_nParam1Start+1],m_pfParam1[m_nParam1Start+2]...m_pfParam1[m_nNumData-1] 234条序列也是同样的结构。
(四)、数据传递定义
公式把当前图形上的信息传入DLL,这些信息包括开高低收量额等,定义在STKDATA* m_pData这个指针里,长度是m_nNumData STKDATA结构体的定义如下:
////////////////////////////////////////////////////
//基本数据
////////////////////////////////////////////////////
typedef struct tagSTKDATA  
{
   TimeType m_time;        //时间,UCT
   float    m_fOpen;      //开盘
   float    m_fHigh;       //最高
   float    m_fLow;             //最低
   float    m_fClose;           //收盘
   float    m_fVolume;        //成交量()
   float    m_fAmount;       //成交额()/持仓(未平仓合约,仅期货有效)
   WORD     m_wAdvance;          //上涨家数(仅大盘有效)
   WORD     m_wDecline;      //下跌家数(仅大盘有效)
} STKDATA;
(五)兼容时间格式定义
注意上述结构的m_timeTimeType类型,老版本的格式是time_t,现在都用TimeType来表示。使用vc6编译dll的,如果需要用到时间的,时间字段是vc6time_t类型即可,使用vc2008以上版本的,time_t就是__int64,为了兼容老版本的DLL, 需要使用额外定义下面的TimeType类型(实际上就是int,32位的)
#define TimeType int
(六)扩展数据格式定义
//扩展数据,用于描述分笔成交数据的买卖盘
////////////////////////////////////////////////////
typedef union tagSTKDATAEx
{
   struct
   {
         float m_fBuyPrice[3];         //1--3
         float m_fBuyVol[3];            //1--3
         float m_fSellPrice[3];         //1--3   
         float m_fSellVol[3];      //1--3
         DWORD m_dwToken;             //成交方向
   };
   float m_fDataEx[13];
} STKDATAEx;
(七)除权数据定义
//除权数据
////////////////////////////////////////////////////
typedef struct tagSPLITDATA     
{
   TimeType m_time;              //时间,UCT
   float         m_fHg;               //红股
   float         m_fPg;                //配股
   float         m_fPgj;               //配股价
   float         m_fHl;                //红利
} SPLITDATA;
(八)扩展调用参数定义
//调用参数项结构
////////////////////////////////////////////////////
typedef struct tagCALCPARAM
{
   union
   {
         const float m_fParam; //数值参数
         const float* m_pfParam; //序列参数,指向一个浮点型数组
         const char* m_szParam; //字符串参数
   };
   //序列参数有效起始位置
   const int   m_nParamStart;
}CALCPARAM;
(九)公式调用例子
公式里使用双引号来调用DLL, 例如下面的例子是调用MyDll.dll里面的MYMACLOSE函数,参数是5,返回值输出成指标线k1。下一节有建立DLL工程及调用公式的详细例子。
k1:"MyDll@MYMACLOSE"(5);

使用道具 举报

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

bottom

Archiver|http://www.patiosoft.com

GMT+8, 2017-12-17 08:49 , Processed in 0.132879 second(s), 9 queries .

花生网 Copyrigh©2012

和讯信息科技有限公司 ALL Rights Reserved 版权所有 复制必究

回顶部