开启辅助访问 天气与日历切换到窄版

Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1289|回复: 5

《从零开始》毛利哥亲授通达信编程

[复制链接]
  • TA的每日心情
    开心
    2017-9-16 18:36
  • 签到天数: 2 天

    [LV.1]初来乍到

    3103

    主题

    1万

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    17061
    发表于 2017-3-14 15:47:25 | 显示全部楼层 |阅读模式
    《从零开始》毛利哥亲授通达信编程

    最近空仓,普及一下通达信编程吧!能写多少不能确定,就看各位的热情程度了。

    首先你要准备的,那自然是“通达信”软件了。 没有?! 很简单, www.tdx.com.cn 这是官网,请自己去下载。

    那么接下来就说说如何自建指标了。

    当然,既然是《从零开始》,当然首先第一步教你的就是如何开始编程了!

    在通达信任意界面下按键盘“CTRL+F”,将会出现

    公式管理器,点击其他类型,点击新建,试试看。
    点击完新建后,会出现这样一个“指标公式编辑器”界面。接下去我们所有的代码,都在下面那个大白框内填写!

    首先,我们从最简单的如何做自己的均线系统开始入手

    MA 均线就是一种技术指标,我们在炒股的时候,经常会将一些行情数据进行数学计算得出一些曲线等等,方便我们掌握股市的变动情况。
    什么是条件选股?
    简单讲,就是按照您的设定的条件用电脑帮助您完成一些太多太复杂的挑选 -- 比如您有一些好的心得和方法,可使有 1000 多只股票,您就是有 100 双眼睛有时也不一定可以看得过来,这时电脑就派上用场了!
    什么是参数?
    比如讲: 10 日均线,您可以把 10 日当作参数,好处在于,您觉得需要修改成 5 日的时候,就可以使用一些简单的方法,例如参数精灵来很方便的修改和调整。参数需要名字,例如 M 就不错。还要规定参数的范围,例如 1 日至 260 日。这样我们就可以在 1 到 260 之间任意调节 M 的值了, M 最常用的数填在 “ 缺省 ” 一栏,例如你最喜欢用 10 日均线,那就填 10 吧。

    什么是周期?
    这么解释吧!我们有的投资者喜欢使用日线图作技术分析;有的喜欢用 5 分钟的 K 线;有的喜欢使用长一点时间的,例如周线。所以在公式设计中,允许不同喜好的使用者选择不同的分析时间 -- 就是可以选择不同的周期。

    什么是函数?
    函数在公式编写非常重要,如果作个比喻,我们用一种语言去告诉电脑我的想法,并且让它去帮我做,那么函数就是这种语言的单词。
    我们在公式编辑器中选择插入函数,就可以看到里面有许多的函数,我们在附录中有一个简表,大家可以到那里去检索!
    例一:
    一根 K 线有四个价格组成:
    最高价: HIGH
    收盘价: CLOSE
    最低价: LOW
    开盘价: OPEN
    成交量: VOL
    成交额: AMO

    例二:
    两条均线不断地交叉,就专门设定了一条函数来描述两条线交叉: CROSS(X,Y)
    假如下图中的两条均线一条名叫 X ,另外一条叫 Y
    CROSS(X,Y)表示 X 向上穿过了 Y
    CROSS(Y,X)表示 Y 向上穿过了 X

    例三:
    前面的 CLOSE ,还是 VOL ,都表示当天,或者您使用的不是日线,那就表示本周期的数据,那么前几天的怎么表示呢?
    REF(X,M)
    例如:
    REF(Close,5)表示 5 天前的收盘;
    REF(Vol,10)表示 10 天前的成交量;
    这里的 M 就是参数,您现在明白了什么是参数了吗?

    例四:
    如果我想把两个条件并列在一起怎么办?
    AND
    X AND Y 就表示条件 X 和条件 Y

    好了!本课结束吧 -- 有点稍慢,下面会好一些!

    最后,标准的均线指标是这样的


    您可以试试看,当然,您不能把公式名字写成MA,因为它是系统默认名称,您可以尝试改为MA_1,试试看

    或许从这开始,你就迷上自己写技术指标了。

    2017-03-14 14:21:10
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-9-16 18:36
  • 签到天数: 2 天

    [LV.1]初来乍到

    3103

    主题

    1万

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    17061
     楼主| 发表于 2017-3-14 15:51:36 | 显示全部楼层
    《从零开始-拥有自己的红绿K线》毛利哥亲授通达信编程 Part2

    您一定很向往有一个自己的红绿K线?!列入这样的图?!

    毛利哥上一篇教会了您均线的编程方法,那么这篇稍微在上篇基础上,我们加点料。猛不猛就看你给我是不是点赞了!

    首先,这个红绿K线的逻辑和大家简单交流一下,具体参数大家可以自己修改。

    我们假设,最流行的说法是是5日均线在30日均线之上,行情可以做多,5日均线跌破30日均线就要空仓。

    那么把这个交易规则,做成红绿K线就需要在均线的基础上,加上一个新的函数。

    这个函数叫:STICKLINE

    用法:
    STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY),当COND条件满足时,在PRICE1和PRICE2位置之间画柱状线,宽度为WIDTH(10为标准间距),EMPTH为0画实心柱,-1画虚线空心柱,否则画实线空心柱.

    例如:
    STICKLINE(CLOSE>OPEN,CLOSE,OPEN,0.8,1)表示画K线中阳线的心柱体部分.
    当然
    STICKLINE(CLOSE>OPEN,CLOSE,OPEN,0.8,0)表示画K线中阳线的心柱体部分.


    源代码如下:
    MA5:MA(CLOSE,M1),COLORBLUE;
    MA30:MA(CLOSE,M2),COLORRED;
    MA60:MA(CLOSE,M3);
    MA120:MA(CLOSE,M4);
    STICKLINE(MA5>MA30,C,O,1,0),COLORRED;
    STICKLINE(MA5<MA30,C,O,1,0),COLORGREEN;

    其中MA5,MA30,MA60,MA120都是自定义的函数名称,你也可以设置为MA333,MA414都行,反正你今后搞的清楚你起的名字作用是干嘛的就行了。

    分段解读:
    MA5:MA(CLOSE,M1),COLORBLUE;
    MA30:MA(CLOSE,M2),COLORRED;

    这两行,为什么后面加了“,COLORBLUE”,和“,COLORRED”呢?
    其实,这两个就是代表了均线要显示的颜色,这样我可以一眼就知道什么颜色的均线代表是多少。
    CLOSE后面的M1,和M2 就是上方参数里面设置的参数了。缺省值是多少,M1 和 M2就代表是多少。

    分段解读
    STICKLINE(MA5>MA30,C,O,1,0),COLORRED;
    STICKLINE(MA5<MA30,C,O,1,0),COLORGREEN;

    这两段
    第一行代表这,MA5大于MA30的时候,K线要显示实心的,颜色红色。
    第一行代表这,MA5小于MA30的时候,K线要显示实心的,颜色绿色。

    那么,这样写完以后,你点一下测试,看看,是否显示了

    测试通过字样,如果显示测试通过!,恭喜您,成功了!

    点击一下确认。

    在任意股票K线图上,输入您自己自定义的公式名称,比如我定义的叫MA350,那么直接输入“MA350”,就能看到K线上的变化啦!

    红K线买,绿K线卖,一目了然了!

    当然,这个不是最终决定您买卖的参数,您还需要结合每个个股不同的股性,自己调整一下参数,找到每个股票的最佳参数是什么!

    这样完成之后,是不是很有自豪感?! 我都会写红绿K线了!!!

    什么唬人的技术指标,还能难道你吗?!

    要想继续学习,很简单,记得给我点赞,点赞越多,留言越多,越能激发我写作热情! 越能激发我拿出更多干货的热情!!!所以,一切就看各位的表现了!

    每天都可以点赞哦!!不要忘记!!!谢谢大家。今天就到这里!!

    两个章节结束!

    2017-03-14 15:20:14

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-4-29 08:50
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    392

    主题

    1349

    帖子

    1794

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1794
    发表于 2017-3-14 23:26:48 | 显示全部楼层
    毛利哥赞美率:89%

    《从零开始-拥有自己的红绿K线2》毛利哥亲授通达信编程 Part3

    接上一篇,简单的编写代码后,是不是觉得很神奇?! 自己也可以拥有最简单的红绿K线来做个股择时系统了!

    那么有没有可以提前点预判风险,或者提前预判下跌空间即将到位的红绿K线呢?

    我写代码其实已经有快17年了! 从C开始, VC,VB, delphi, php , python基本上都是只有你想不到,没有我写不出的。

    所以,只要敢想,那么我就敢写!

    那么现在开始我们《拥有自己的红绿K线第二篇》。

    在原先红绿K线基础上,我们加上蓝色警戒标识K线!

    用法:
    行情如果向上趋势,遇到蓝色,说明近阶段有调整风险。
    行情如果向下趋势,遇到蓝色,说明近阶段有有可能触底了。



    看了上面这个个股,是不是觉得,炒股总体来说不会很难了吧,基本上大小风险不能说100%规避掉,但是基本上不会遭遇什么大坑!

    代码怎么写呢?!


    前面几个设置均线的没有任何变化,中间多了一行
    A1:=MA((C-MA30)/MA30*100,20);
    这句什么意思呢?!
    我解答一下: 今天收盘价-30日均线 除以 30日均线的值,得到的百分比。(判断是相对于30日均线乖离度),然后取这个百分比的20日平均移动数据作为A1

    那么下面这段
    STICKLINE(A1>20 OR A1<=-15,C,O,1,0),COLORBLUE;
    STICKLINE(A1<=20 AND A1>-15 AND MA5>MA30,C,O,1,0),COLORRED;
    STICKLINE(A1<=20 AND A1>-15 AND MA5<MA30,C,O,1,0),COLORGREEN;

    一一分解:
    第一行说A1大于20 或者 A1小于等于-15的时候,K线都要编程蓝色。 也就是说A1超过20了就是风险,A1小于-15了,就是机会!

    机会和风险,我都用了蓝色。当然,我也可以把他们分开写,可是我比较懒。这里可以把课后作业留给大家,机会如果用黄色代表,风险用蓝色代表,怎么写?!

    第二、三行,A1在-15 到 20之间区域,判断MA5和MA30的关系,MA5在上,显示红色K线,在下,显示绿色K线

    好了,就这么处理一下之后,你的红绿K线从此就升华了!对!升华了!

    从此变成了豪华版《红绿K线》

    拥有了豪华版《红绿K线》之后,从此问股票就不再求别人了。自己看着办吧!!!!

    因为,此时,可能你比砖家都要砖家了!

    别小看这个系统!!!真的,你已经迈向大师的级别了!

    所以,接下去,你得给我点赞。。。点赞越多,我越开心,我越容易抖干货!!

    关键!!!!免费!!!!免费!!!!免费!!!!免费!!!!

    点赞吧!!!

    2017-03-14 17:28:02


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-4-29 08:50
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    392

    主题

    1349

    帖子

    1794

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1794
    发表于 2017-3-15 17:15:19 | 显示全部楼层

    《从零开始-基础函数篇1》毛利哥亲授通达信编程 Part4


      打开技术指标公式,我们最常见的,它的组成不外乎两种情况,一是K线,二是均线。其他诸如柱状线,彩带,分段线等等,都是在K线或均线基础上的延伸或变形。为此,我们先熟悉一下构成这两种状态的基本函数。

      一、K线函数

      非常简单,大家都可能熟知。作为基础,还是说明一下。

      1、开盘价:OPEN 可简写为 O

      2、最高价:HIGH 可简写为  H

      3、最低价:  LOW  可简写为  L

      4、收盘价:CLOSE 可简写为  C

      有了这4个函数,就可构成一根K线了。比如:收盘价小于开盘价,即阴线:C<o; 收阳线则互为相反。

      那么长下影的光头阳线,即 T 形线呢?理解了原理,也很简单。一要以最高价收盘(否则有上影),二要开盘价大于最低价。所以有如下表示:C=H AND O>L;这里我们没有考虑下影的长度和 T 字上边一横(实体部分)的宽度。

      习题:一根光头阳线,实体部分小于5分钱,下影超过实体的两倍,如何表述?

      特别提示:编辑指标必须在英文状态下输入。其中运用的数学符号,包括加减乘除、分号,引号等(+ - * / ; "" ''><#)也必须在英文状态下输入。

        二、均线函数

      单根K线的形态是相当枯燥的。尤其在主图里。配合以均线等形式就会丰富多采,或者更利于我们从中发现规律和分析问题。这就需要均线函数来解决了。

    最常见的:

      1、MA(X,N),求X的N周期简单移动平均值。

      算法:(X1+X2+X3+...+Xn)/N

      例如:MA(CLOSE,20),表示求20日均价。

      2、EMA(X,N),求X的N周期指数平滑移动平均。

      算法: 若Y=EMA(X,N) 则Y=[2*X+(N-1)*Y']/(N+1), 其中Y'表示上一周期Y值。

      例如:EMA(CLOSE,20),表示求20日指数平滑均价。

      3、SMA(X,N,M),求X的N周期移动平均,M为权重。

      算法: 若Y=SMA(X,N,M) 则 Y=(M*X+(N-M)*Y')/N, 其中Y'表示上一周期Y值,N必须大于M。

      例如:SMA(CLOSE,20,1),表示求20日移动平均价。

      这三个均线函数在股软中是通用的。关于它们的区别,开始学习时不必深究。其实数值区别也不是很大。要均线真实反映每天的价格变化,用MA,适当圆滑些,用EMA 或SMA。

    未完待续。。。记得点赞!!点赞越多越能激发激情!!!


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-4-29 08:50
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    392

    主题

    1349

    帖子

    1794

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1794
    发表于 2017-3-15 17:16:55 | 显示全部楼层

    《从零开始-基础函数篇2》毛利哥亲授通达信编程 Part5


    承接上一篇继续开展函数教程


      三、常用连接函数

    有了上述基本函数,可以表述出K线和均线了,但实际应用中要复杂得多,还要一些函数把他们连接起来。

    大致有这么几个:

      1、AND 就是“和”的意思。如:A AND B;就是A和B两个条件要同时成立。

      2、OR “或”,“或者”的意思。如:A OR B;就是A和B两个条件有其中一个成立就行。

      3、IF 根据条件取不同的值。如:IF(X,A,B),若X不为0则返回A,否则返回B。实例:IF(C<O,L,H),表示收阴返回最低价,否则返回最高价。

      4、CROSS 交叉函数。CROSS(A,B),表示A从下方向上穿过B。

      5、REF 向前引用。引用若干周期前的数据。例如:REF(CLOSE,1),表示昨收的收盘价。那么前天的最高价呢,就是:REF(H,2)。



     四、成交量 

      VOL 表示每天的成交量。因以后会经常用到,所以先交待给大家。

      上面这几个函数是最常用的,希望大家记住,不知怎么写也要知道其表述的意思。当然,记不住也不要紧,《公式编辑器》中全有。

     

    接下来再讲讲各种形态如何用代码来表达?


       懂得运用公式编辑器,掌握了公式的基本函数,就可以进行简单的公式编写了。下面我们共同认识一下公式的基本语句。这些基本语句,是编写公式和整理选股公式信号的基础,大家要熟知。

    一、K线的基本形态

      1、当天收阳:CLOSE>OPEN;

      2、当天收阴:CLOSE<OPEN;

      3、当天股价高开,言下之意开盘高于昨日收盘:OPEN>REF(CLOSE,1);

      4、当天股价低开:OPEN<REF(CLOSE,1);

      5、跳空高开:OPEN>REF(HIGH,1);当日开盘在昨日最高价之上

      6、跳空低开:POEN<REF(LOW,1);

      7、长阳:C/O>1.03 或者 (C-O)/O*100>5 或者 (C-O)/O>0.05 意思是收盘价比开盘价上涨5%以上。当然,用7%以上也可。

      8、长阴:C/O<0.94; 注意:同一语句可有多种表述,此为其一。

      9、高开大阴:O/REF(C,1)>1.04  AND C/O<1.94; 今天开盘比昨天收盘高出4%和收盘价较开盘下降6%。低开大阳与此正好相反。

      10、标准十字星:CLOSE=OPEN AND HIGH<>LOW

      更多见的是近似十字星。例:ABS(C-O)<0.02 AND H-C>0.03 AND C-L>0.03; 该语句用上了一个函数:ABS,意思是求绝对值。这样,该近似十字星即可能是阳星也可能是阴星。

      再认识两个函数:MAX(A,B) 求A和B中的最大值。

              MIN(A,B) 求A和B中的较小值

      有了这两个函数,近似十字星还可这样表述:ABS(C-O)<0.02 AND H> MAX(C,O) AND L< MIN(C,O);

      另外,该公式还可以用比例数编写。

      11、长下影线:也有收阴收阳之分。以阳线长下影线为例:C>O AND (O-L)>(C-O);此公式只表达了下影线比实体线长,并没有表达长度比例和有无上影线。


       形态还有许多,有几十种,不一一例举了,大家举一反三,慢慢摸索吧。


    未完待续,先讲到这里,下一篇讲《条件选股的基本形态》


    请记得点赞!!点赞是对我写作创作最大的动力!  


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-4-29 08:50
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    392

    主题

    1349

    帖子

    1794

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1794
    发表于 2017-3-15 17:17:39 | 显示全部楼层
    《从零开始-什么阶段用什么技术指标最靠谱》毛利哥亲授通达信编程 Part6

       在讲函数的课程里,我插一个番外篇。因为连续两天写了5篇稿子以后,反馈比较多。大部分网友很含蓄,都是微信私信问我,或者QQ单独问我。其实有问题,在帖子内给我留言,我统一回答效果会更好。因为你的问题或许也是别人的问题。

       那么这篇我暂停一下讲技术指标的写法和一些函数的介绍,专门讲一下,到底什么阶段该用什么类型的模型比较靠谱?!

    从我个人自己理解的程度来讲,技术指标大致可以分为这几种。

    第一:右侧信号(均线、成本均线,expma)此类,也就是说,金叉买,死叉卖。
    优点:买入信号出现比较明确,但行情如果是震荡期,往往容易出现右侧信号,买到了波段高点被套。
    缺点:卖出信号会有滞后,由于均线死叉,K线表现出的形态已经从高点回落好几天了。

    第二:左侧信号(乖离判断正负高点),正乖离太大了,需要价格回归,负乖离太大了,也需要价格回归。一般来说,是做打提前量预判来用的。

    第三:kdj,macd,rsi这类属于近阶段择时指标,相对低位金叉买,相对高位死叉卖。

    那么搭配起来怎么玩呢?!

    出现左侧买入预警信号,等待kdj,rsi,macd等指标低位金叉。 这样概率会大一点。
    出现左侧卖出预警信号,等待kdj、rsi,macd等指标相继高位死叉,均线死叉等同步发生,这样概率也会大一点。

    当然,结合背离等,成功率会提高更多一点。

    其次,切记任何指标均非万能,不要过于迷信技术指标。 指标均有一定的适用性,所谓适用性就是并非每个股票都是准确的。

    举个例子:前阵子给的一个选股器,瓮中捉鳖,这段时间为什么不提了?! 很简单,前段时间(2016年11月中旬开始的下跌),由于很多股票都出现了大幅度的下跌,并且有了一定超卖的信号,瓮中捉鳖就属于判断负乖离信号,选择底部有二次金叉的标的进行选股。

       这个指标仅仅适合在市场快速下跌阶段使用,那么最近的行情,并非处于快速下跌行情,最近属于盘整市场,所以,这个指标会选不出股(由于没有超跌股存在)。

       所以,我这里想说明的就是,什么阶段行情要用什么技术类型指标才是恰当的,切莫认为,一个指标吃遍天这种错误的逻辑思维,最终你会被这种错误逻辑带入到市场无情的鸿沟里去的。

      研究指标编程很有意思事情,但是,切记原理和方法要融会贯通,切莫张冠李戴的胡乱用指标。

    2017-03-15 16:57:29

    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    快速回复 返回顶部 返回列表