1.10 工具-行情系统(v10.60及以后)
入口:点击客户端左侧工具栏的的"工具"
,会弹出一个工具菜单。
1.10.1 选择专家系统
在图表栏目中软件预设多种股票交易系统,提示买卖信号。
第一种方法:选择专家系统,在个股报价的分时图或者K线图点击“专家”按钮。
第二种方法:或在图表窗口双击走势线编辑主要股票对象,在弹出的属性窗口中选择"专家"。
l 如何选择专家系统
多种分析模式供选择:EPHL, SAR, SARv, jSARv, EMAs, jSAR, SMAs ,从中选择一种专家类型,设定参数,并可选择显示的背景及文字颜色,然后按"确定"。
下图即可看到(红色的)"买"(绿色的)"卖"信号:
l 买卖讯号使用法则
买卖讯号是建基于:
1. 多种技术分析工具
2. 统计分析与推论
3. 时间数列分析
4. 揉合上述分析方法加人工智能分析
买卖讯号之特性 :
基础因素全不考虑
整体经济、行业景气、政府政策、消息有无全不考虑
技术工具基本上是采用随势分析系统 Trend following system 原则。
买卖讯号之限制
优点:
在趋势市道下利润是不可估量的。
在任何逆势环境下(做错方向)亏损是有限且可以控制的。
缺点:
当市场出现不寻常之停市、或买入该股后遇上停牌、或该股属于成交稀疏冷门股、或单天大幅急挫者,亏损是无法控制及无从估计的。
1.10.2 条件/脚本选股
本软件备有四种选股方式:
原子条件选股、组合条件选股、脚本条件选股、系统选股。
(注:条件选股需先下载股票日线数据)
打开条件选股的方式:
a. 从工具栏点击“工具”,在弹出的"工具"菜单中选择"条件选股"
b. 快捷键:F7
(1)原子条件选股
"原子条件选股"包括"强弱指标选股"、"成交量指标选股"、"交易系统选股"、"基本面选股"、"其它指标选股"等类别。
1)可选择设置各种参数以便选出合乎条件的股票:
l 可指定多个选股条件,设定选股条件的运算公式("与"\"或")
l 可设定参数
l 设定选股范围,选股范围包括香港市场及沪深两市。
2)选出来的股票会自动成为一个板块,便于调用
以上图为例:
1. 指定条件选股。
我们先选定"强弱指标选股"下的"涨跌幅指标选股"并双击,"涨跌幅指标选股"即刻添到"选入条件"窗口,再选定"成交量指标选股"下的"量比选股"并双击,"量比选股"也添到"选入条件" 窗口,此时选入条件共有两个条件。
2. 设定条件参数。
在"选入条件"窗口双击刚才加入的条件,随即自动出现属性内容,属性条件可自由设定参数。先设定"涨跌幅指标选股"属性,将"分析周期"设为1日即当日,涨跌幅设为大于3%即涨幅大于3%;再设定"量比选股"属性,量比设为大于5%。假如要删掉"选入条件"中的条件,只要选定欲删除的条件,按下"移除"按钮,即可删除。若要保存"选入条件",只要按下"保存"按钮即可。
3. 加入运算公式。
"与"表示同时满足两个条件;"或"表示满足其中一项条件即可; 假设在此选择"与",表示要选出"当天涨幅大于3%"且"量比大于5%"的股票。
4. 设定选股范围。
此处系统默认为"香港全部",若要更换选股范围,按"更改"按钮,从中选择板块,按确定。
5. 执行选股。
按下"执行选股"按钮即开始进行筛选,如图选出了股票,这些股票就是"当天涨幅大于3%并且量比大于3%"的股票。用这个"涨幅指标"及"量比指标"来对当日行情进行选股,选股的结果从中也反映了当日股市市况,条件选股的作用显得极具意义。若要保存选股结果,按"保存至板块"按钮就可。将它们保存到一个板块中,便于调用。
(2)组合条件选股
可将之前在"原子条件"保存的多个条件,在此处进行组合选股,对"原子条件"选出的股票进行进一步的筛选,精确选股结果,提高选股质量。在此还方便您整理自已创建的所有"原子条件"选股文件。
在“组合条件”选股中,条件的参数是不可改的。若要修改,可转到“原子条件”进行修改。
使用流程:
1. "原子条件"中所创建的条件文件会显示在“组合条件”窗口中。
2. 设定选股范围,按“执行选股”。
3. 选出的股票会自动成为一个板块,便于调用。
(3)系统选股
(4)脚本选股
脚本选股TAB页面,点击脚本规则,可以查看脚本的定义。
可将保存在css\system目录下的脚本文件,显示在窗口内,方便调用,一目了然。(注:条件选股需先下载股票日线数据)
1. system下的脚本文件为系统提供的脚本选股文件。
2. 设定好选股范围,按“执行选股”即可。
脚本编辑窗口:
功能:
A. 系统保留字会自动显示成蓝色
B. 自动提示你所写的对象属性,可以用↑ ↓ 移动光标至要加入的"方法",再按 Enter 即可。
l 语法规则:
A. 区分大小写,即:A与 a是不同。
B. 每句结束都要加"; "(分号),但是if, else的语句除外。
l 注释语句:
// 注释当前行,"//"后的语句为注释而非脚本语句
/* */ 注释多行, "/* */"中间的语句为注释而非脚本语句
l 流程控制语句:
if 语句
――如果满足“条件一”,则执行语句一
if (条件一)
{
执行语句一;
}
if , else条件判断语句
――如果满足"条件一",则执行语句一,否则执行语句二
例:
if (条件一 )
{
执行语句一;
}
else
{
执行语句二;
}
return
语法:return 返回值
说明:指定函数的返回值。
return 1 为将符合条件的股票选出来,return 0 为将符合条件的股票排除;
在指标排序语句中,return表示用返回的值来排序。
例:return.RSI.val[0]; //所有股票按今天的rsi 值排序
保留字:
一些关键字,有特定含义,被规定不许挪作它用,不能作为对象的名字。
运算符:
1) +
语法:表达式1+表达式2
说明:把数字或集合的表达式相加
2) -
语法:表达式1-表达式2
说明:把数字或集合的表达式相减
3) *
语法:表达式1*表达式2
说明:把数字或集合的表达式相乘
4) /
语法:表达式1/表达式2
说明:表达式1除以表达式2
5) >
语法:表达式1>表达式2
说明:比较两个表达式是否"表达式1"大于"表达式2";如是,则返回结果为真;否则返回结果为假。
6) <
语法:表达式1<表达式2
说明:比较两个表达式是否"表达式1"小于"表达式2";如是,则返回结果为真;否则返回结果为假。
7) >=
语法:表达式1>=表达式2
说明:比较两个表达式是否"表达式1"大于等于"表达式2";如是,则返回结果为真;否则返回结果为假。
8) <=
语法:表达式1<=表达式2
说明:比较两个表达式是否"表达式1"小于等于"表达式2";如是,则返回结果为真;否则返回结果为假。
9) <>
语法:表达式1<>表达式2
说明:比较两个表达式是否"表达式1"不等于"表达式2";如是,则返回结果为真;否则返回结果为假。
10) and
语法:表达式1 and 表达式2
说明:比较两个表达式条件是否同时满足,如是,则返回结果为真;否则返回结果为假。
11) or
语法:表达式1 or 表达式2
说明:两个表达式中只要有一个为真,则返回结果为真。
12) not
语法:not 表达式
说明:对运算符(NOT)右边的数据求反;not 0 ---> 结果就是1
示例与分析:
运算符左边只能为要定义的变量名
abc = 10 ; 这样是对的
close = open ; 这样写是错误的, close为系统保留字, 不能出现在左边.
支持数值, 集合之间的运算,例如:
10+20 数值与数值运算
10+open 数值与集合运算
open-close 集合与集合运算
对象:
对象指程序中既定的一些可操作的实体。"对象"具有一定的属性和方法,属性指对象本身的各种特性参数,如气球的体积,自行车的长度等;而方法是指对象本身所能执行的功能,如气球能飞,自行车能滚动等。
注:在下列对象中[i]指的是从今天以前的第几天,[0]就是指今天,[1]就是指昨天。
当天行情对象REPORT
描述当天的行情报表及财务股本信息。
注:
rpt_close等同于REPORT.rpt_close。
行情中的各项数据就是这个报表对象的属性,如下表:
历史行情对象SYMBOL
描述K线中的数据
注:
open等同于SYMBOL.open.
open[0]等同于SYMBOL.open[0],即取当天的开盘价。
行情中的各项数据就是这个对象的属性,如下表:
指标对象
数据源:有两种,一种是SYMBOL;另一种是集合,如:open, close等。
交易系统对象
函数:
1) max
语法:max(表达式1,表达式2)
说明:max(a,b)取a、b中最大值,a、b为数值,运算结果为数值
例:c=max(3,5) (c等于3,5中值最大的一个)
因此 c=5
2) min
语法:min(表达式1,表达式2)
说明:min(a,b)取a、b中最小值,a、b为数值,运算结果为数值
例:c=min(3,5) (c等于3,5中值最小的一个)
因此 c=3
3) sum
语法:sum(表达式1,表达式2)
说明:sum(a,b) 求a中最后 b个单元的和,a为集合,b为数值,运算结果为集合
例: sum(vol,5) (vol是指成交量,这个表达式是求今天及前4天内成交量总和。)
4) ref
语法:ref(表达式1,表达式2)
说明:ref(a,b) 求b日前的a值, a为集合,b为数值,运算结果是集合.
例: ref(vol,1) (vol是指成交量,这个表达式是求昨天的成交量。)
5) hhv
语法:hhv(表达式1,表达式2)
说明:hhv(a,b) 求a中最后n个单元的最大值,a为集合,b为数值,运算结果是集合.
例: hhv( high, 10 )
(high是指最高价,这个表达式是求今天及前9天内的最高价)
6) hhvbars
语法:hhvbars(表达式1,表达式2)
说明:hhvbars(a,b) 求a中最后 b个单元中的最大值到现在的天数, a为集合,b为数值,运算结果是集合.
例: dd = hhvbars( ref( high, 1 ), 10 )
(ref(high,1)是指前一天的最高价,这个表达式是求10天中最高价出现的时间离现在已有多少天)
7) llv
语法:llv(表达式1,表达式2)
说明:llv(a,b) 求a中最后b个单元的最小值, a为集合,b为数值,运算结果是集合.
例: llv(low, 10 )
(low是指最低价,这个表达式是求今天及前9天内的最低价)
8) llvbars
语法:llvbars(表达式1,表达式2)
说明:llvbars(a,b) 求a中最后 b个单元中的最小值到现在的天数, a为集合,b为数值,运算结果是集合.
例: dd = llvbars( ref(low, 1 ), 10 )
(ref(high,1)是指前一天的最低价,这个表达式是求10天中最低价出现的时间离现在已有多少天)
9) sma
语法:sma(表达式1,表达式2)
说明:sma( a,b)求sma值,运算结果是集合.
10) ema
语法:ema(表达式1,表达式2)
说明:ema( a,b)求ema 值,运算结果是集合.
11) cross
语法:cross(表达式1,表达式2)
说明:cross(A,B)求A、B是否交叉,如A上穿B,则返回值1;如A下穿B,则返回值2;如两者没有交叉,则返回值0。
例:cross( DMI.dip, DMI.din )
检查DMI指标的dip与din是否交叉
12) count
语法:count(表达式1,表达式2)
说明:count( a,b) 统计b天中 a非0值的天数,运算结果是集合.
13) maxval
语法:maxval(表达式1,表达式2)
说明:maxval(X,N)求集合X中最后N个数据的最大值.,运算结果是数值.
例:maxval(rsi.val,9)
14) minval
语法:minval(表达式1,表达式2)
说明:minval(X,N)求集合X中最后N个数据的最小值.,运算结果是数值.
例:minval(rsi.val,9)
15) sumval
语法:sumval(表达式1,表达式2)
说明:sumval (X,N)求集合X中最后N个数据的和,运算结果是数值.
例:sumval(rsi.val,9)
16) countval
语法:countval(表达式1,表达式2)
说明:countval (X,N)求集合X中最后N个数据不为0的个数,运算结果是数值.
例:countval(close,5)
17) maxvalplace
语法:maxvalplace (表达式1,表达式2)
说明:maxvalplace( X,N ) 求集合X中最后N个数据的最大值的位置.,运算结果是数值.
例:maxvalplace(high,5)
18) minvalplace
语法:minvalplace (表达式1,表达式2)
说明:minvalplace( X,N ) 求集合X中最后N个数据的最大值的位置.,运算结果是数值.
例:minvalplace(low,5)
19) iff
语法:iff(表达式1,表达式2,表达式3)
说明:iff(a,b,c) 如果a不为0,返回值b;否则返回值c.
20) getsize
语法:getsize(表达式)
说明:getsize(a)求集合a中的单元个数.
例:getsize(close) 求某股票有收盘数据的天数,可籍此判断是否新股。
21) abs
语法:abs(表达式)
说明:abs(a)求a的绝对值
22)contain
语法:contain(表达式1,表达式2)
说明:contain(a,b)求 a中是否包含b
例:contain(rpt_name,“上海”)
就是将股票名称中有"上海"的股票选出来
范例:
简单应用
例一:选出昨日跌幅大于5%的股票
chgper[1]<-5;
例二:选出上周涨幅大于20%的股票,将周期设为1周,公式如下:
chgper[1]>20;
例三:选出昨天rsi大于80的股票
RSI.val[1]>80; //RSI.val是取RSI值,[1]为昨天数据
脚本选股实例说明:
实例一:波段抄底
算法介绍:
寻找当前是下跌波段, 并且接近上一个下跌波段的低点的股票。
运用法则:
在底部的介入能够获得比较高的利润, 但是目前股票是弱势,
因此转强需要较长的时间。同时如果确认跌破支撑位, 则应该考虑
止损出局。
if( rpt_close<=0 ) // 剔除今天停牌的股票。(*1)
{
return 0 ;
}
ind_zigzag zz( 10, 10, close ) ;
if( zz.type[0]==1 or zz.type[0]==3 ) // 最后一个波段是下跌波段. (*2)
{
rng = close[0]/zz.enterprice[1] ;
if( rng>=0.98 and rng<1.02 ) // 当前价在 上一个下跌波段的低点 附近. (*3)
{
return 1 ;
}
}
return 0 ;
说明:"rpt_close"代表最新价,"rpt_close<=0"就是最新价小等于零即代表今天停牌股票。(*1)表示"波段抄底"选股,不对今天停牌的股票进行选股。
"ind_zigzag"代表ZigZag技术分析工具,"ind_zigzag zz( 10, 10, close )"代表ZigZag技术分析工具属性中设为价格是"收盘价"(close)、方式是"百分比"、转多是"10"、 转空是"10"。" zz.type[0]"代表最后一个波段,(*2)表示ZigZag技术分析在上述属性范围中"zz.type[0]==1 or zz.type[0]==3 "即"最后一个波段是下跌波段"的情况("1"代表下跌波段,"3"代表未达到所设转空参数的未确认下跌波段)。
close[0]"代表最新收盘价(以下简称A),"zz.enterprice[1]"代表ZigZag技术分析工具中上一个波段与近一个波段间转折点价位(以下简称B),"close[0]/zz.enterprice[1]"代表A和B之比,"rng>=0.98 and rng<1.02"代表A和B之比接近1:1,(*3)表示当前价在"一个下跌波段的低点附近"。
通过上述的运算公式,系统会计算选出符合脚本中自设条件的股票。
指标选股脚本范例:
1. 简单算数平均线SMA
两条sma线的金叉买入:
ind_sma obj1( 5, close ) ; //定义obj1为sma对象,它的sma周期是5,
sma数据源是收盘价.
ind_sma obj2( 10, close ) ; //10天均线
if( cross( obj1.val, obj2.val )==1 ) //用cross函数判断5天均线是否上穿10天均线
{
return 1 ; //返回值1,将符合条件的股票选出
}
return 0 ;
2. BB
收盘线与bb交叉
bcross = cross( close, BB.bbsubstd ) or cross( close, BB.bbaddstd ) ;
//用cross函数判断收盘线是否与上下信道交叉,并将值赋予变量bcross。
if( bcross==1 )
{
return 1 ; //如果bcross等于1则有交叉,将符合条件的股票选出
}
return 0 ;
3. DMI
检查dip与din是否交叉.
bcross = cross( DMI.dip, DMI.din ) ; //检查dmi的两条线是否交叉
if( bcross<>1 )
{
return 0 ;
}
if( DMI.adx[0]>20 ) //如果adx值大于20
{
return 1 ; //将符合条件的股票选出
}
return 0 ;
4. MACD
检查是否出现 macd金叉
bcross = cross( MACD.macd1, MACD.macd2 ); // 检查macd1与macd2是否交叉.
if( bcross<>1 )
{
return 0 ; //剔除没有交叉的股票
}
if( MACD.macd1[0]>0 and MACD.macd1[1]>0 ) // 检查macd1, macd2是否在0上方.
{
return 1 ; //选出符合条件的股票
}
return 0 ;
5. RSI
检查RSI及其EMA是否向上交叉.
ind_ema rsima( 9, RSI.val ) ;
bcross = cross( RSI.val, rsima.val ) ;
if( bcross==1 ) // bcross==1, 表示RSI上穿rsima;
{
return 1 ;
}
检查RSI及其EMA是否在昨天向上交叉.
bcross = cross( ref( RSI.val, 1) , ref( rsima.val, 1) ) ; //用ref函数求昨天的rsi及ema 值
if( bcross==1 )
{
return 1 ;
}
6. ZIGZAG
检查是否是下跌波段回稳.
if( ZIGZAG.type[1]<>1 or ZIGZAG.type[0]<>2 )
{
return 0 ; //不选出处在上升波段及未确定下降波段的股票
}
if( ZIGZAG.height[0]>5 ) //检查最后一个波段高度.如果已经反弹太高, 入场危险.
{
return 0 ;
} // 可能是一个上升波段的开始, 如果是, 则是入场良机.
return 1 ;
7. ts_sma, ts_ema, ts_sar, ts_sarv, ts_jsar, ts_jsarv. ts_ephl
选出TS_SAR正在发出买入信号的股票.
if( TS_SAR.sgntype[0]==1 and TS_SAR.bars[0]==0 )
{
/*
sgntype的定义: 0--未知道, 1--多头市场, 2--空头市场
bars指相邻信号之间的天数.
*/
return 1 ;
}
// 选出TS_SARV正在发出买入信号的股票.
if( TS_SARV.sgntype[0]==1 and TS_SARV.bars[0]==0 )
{
return 1 ;
}
// 选出TS_JSAR正在发出买入信号的股票.
if( TS_JSAR.sgntype[0]==1 and TS_JSAR.bars[0]==0 )
{
return 1 ;
}
// 选出TS_JSARV正在发出买入信号的股票.
if( TS_JSARV.sgntype[0]==1 and TS_JSARV.bars[0]==0 )
{
return 1 ;
}
return 0 ;
8. ts_var
aa = selbestexpert( 0, 0 ) ; // 选择最大利润中的 最好的分析专家.
if( aa.experttype==0 ) // 分析专家类型是0, 表示没有取到优化结果.
{
return 0 ;
}
// 如果历史中: 准确率小于50% 或者 交易段数<=3次, 不选出来.
if( aa.winper<50 or aa.tradecount<=3 )
{
return 0 ;
}
ts_var obj( aa, SYMBOL ) ; // 用优化结果构建一个 交易系统.
if( obj.sgntype[0]==1 and obj.bars[0]==0 ) // 选出当天发出买入信号的股票.
{
return 1 ;
}
return 0 ;
1.10.3 自定义指标
点击客户端左侧工具栏的“工具”按钮,在弹开的菜单中点击“自定义指标”,打开指标列表,导入DAT文件或者自己编写自定义指标。
1.10.4 异动雷达
点击客户端左侧工具栏的“工具”按钮,在弹开的菜单中点击“异动雷达”或者双击右下角图标,弹出提示框,选择“是”。
打开“异动雷达”,点击“设置”按钮,设置参数。
1.10.5 预警系统
功能介绍:
可在软件“预警系统”中设置个股预警系统,个股预警系统是指用户将个股设置特定的条件(比如“价格高于 元”、“价格低于 元”、“涨幅大于 %”、“跌幅大于 %”、“换手率大于 %”、“量比大于 ”等等),当该股票在行情中满足所设条件时,系统会显示个股预警提示窗口,提醒用户注意该股票行情。
操作流程:
点击客户端左侧工具栏的“工具”按钮,在弹开的菜单中点击“预警系统”或者双击右下角图标,弹出提示框,选择“是”。
点击“增加条件”按钮,预警类型分为“价格高于 元”、“价格低于 元”、“涨幅大于 %”、“跌幅大于 %”、“换手率大于 %”、“量比大于 ”等等。
如何加入股票:点击“加入”按钮,弹出股票列表,用户可在此选择股票。
启动预警
点击“启动预警”按钮即可。
实例:
将“长江实业”预警条件设为“价格高于135.00元”启动预警;
当长江实业所现价越过135.00元时,系统会在右下方显示个股预警提示窗口。
1.10.6 板块管理
板块管理有两种入口:
1、点击客户端左侧工具栏的“工具”按钮,在弹开的菜单中点击“板块管理”。
2、在行情表鼠标右键,在弹出的菜单中选择“板块管理”菜单。
可以在板块管理窗口增加或删除板块,或向某一板块中增加或删除股票。
l 创建新板块
在下面对话窗,可任意创建新板块,及向板块内添加或删除股票:
添加成功后,行情表内会出现新建的板块:
l 快捷加入板块
在行情表中选中一只股票,点右键,在弹出菜单中选择"加入板块"。
l 选择分组
进入个股报价页面,Ctrl+G(同时按下),选择一个板块,当使用键盘按键PageUp(上一只)、PageDown(下一只)来翻动行情或图表时,是按照选择的板块内代码顺序翻动的。
1.10.7 经纪搜索
经纪搜索有两种入口:
1、点击客户端左侧工具栏的“工具”按钮,在弹开的菜单中点击“经纪搜索”。
2、鼠标点击软件任意地方,键盘输入“20”,移动游标定位到经纪搜索,按“Enter”。
支持港股所有经济席位搜索,方便任意席位的跟踪与研究。
操作方式:
1)鼠标双击左边列表框;
2)在顶部第一个输入框内输入经济席位号;
3)在顶部第二个下拉框中选择想要查看的经济公司名称;
1.10.8 设置经纪牌
设置经纪牌有两种入口:
1、点击客户端左侧工具栏的“工具”按钮,在弹开的菜单中点击“设置经纪牌”。
2、在个股报价页面,鼠标点击“经纪”席位功能模块上的“设置”按钮。
设置想要跟踪的经纪牌位:可分别设置为过滤或高亮显示,功能可参照以上经纪牌显示的章节。
全盘独有功能:标记买卖最活跃的三个经济牌。实际效果见下图:
1.10.9 全屏显示
全屏显示功能有两种入口:
1、点击客户端左侧工具栏的“工具”按钮,在弹开的菜单中点击“全屏显示”。
2、按快捷键F11可进入全屏显示,再次按快捷键F11或“ESC”键可取消全屏显示。
全屏显示后,即隐藏菜单栏、工具栏、状态栏。
1.10.10 大字报价
大字报价功能有两种入口:
1、点击客户端左侧工具栏的“工具”按钮,在弹开的菜单中点击“大字报价”。
2、在行情列表,鼠标右键点击,在弹出菜单选择“大字体”。
系统支持行情表更换大字体显示报价。
1.10.11 披露易
点击客户端左侧工具栏的“工具”按钮,在弹开的菜单中点击“披露易”。