自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

转载 编程基础知识之金融统计函数

金融统计函数(一)BARSCOUNT(COND) 第一个有效周期到当前的周期数。注:1、返回值为COND从第一个有效周期开始计算,到现在为止的周期数。2、条件第一次成立的当根k线上BARSCOUNT(COND)的返回值为0例:BARSCOUNT(MA(C,4));//计算MA(C,4)第一次有返回值到当前的周期数。(二)BARSSINCE(COND) 第一个条件成立到当前的周期数。注...

2015-12-09 13:36:00 677

转载 编程基础知识之数组

数组是Go语言编程中最常用的数据结构之一。顾名思义,数组就是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element),一个数组包含的元素个数被称为数组的长度。以下为一些常规的数组声明方法:[32]byte // 长度为32的数组,每个元素为一个字节[2*N] struct { x, y int32 } // 复杂类型数组[1000]*float64 // 指针...

2015-12-08 14:14:00 260

转载 编程基础知识之字符串

在Go语言中,字符串也是一种基本类型。相比之下, C/C++语言中并不存在原生的字符串类型,通常使用字符数组来表示,并以字符指针来传递。Go语言中字符串的声明和初始化非常简单,举例如下:var str string // 声明一个字符串变量str = "Hello world" // 字符串赋值ch := str[0] // 取字符串的第一个字符fmt.Printf("The le...

2015-12-07 14:13:00 164

转载 编程基础知识之复数类型

复数实际上由两个实数(在计算机中用浮点数表示)构成,一个表示实部(real),一个表示虚部(imag)。如果了解了数学上的复数是怎么回事,那么Go语言的复数就非常容易理解了。1. 复数表示复数表示的示例如下:var value1 complex64 value1 = 3.2 + 12i value2 := 3.2 + 12i// 由2个float32构成的复数类型// value2是c...

2015-12-06 14:11:00 987

转载 编程基础知识之浮点型

浮点型用于表示包含小数点的数据,比如1.234就是一个浮点型数据。Go语言中的浮点类型采用IEEE-754标准的表达方式。1. 浮点数表示Go语言定义了两个类型float32和float64,其中float32等价于C语言的float类型,float64等价于C语言的double类型。在Go语言里,定义一个浮点数变量的代码如下:var fvalue1 float32fvalue1 = 1...

2015-12-05 22:10:00 317

转载 编程基础知识之匿名变量

我们在使用传统的强类型语言编程时,经常会出现这种情况,即在调用函数时为了获取一个值,却因为该函数返回多个值而不得不定义一堆没用的变量。在Go中这种情况可以通过结合使用多重返回和匿名变量来避免这种丑陋的写法,让代码看起来更加优雅。假设GetName()函数的定义如下,它返回3个值,分别为firstName、lastName和nickName:func GetName() (firstNam...

2015-12-04 14:09:00 122

转载 编程基础知识之常量定义

通过const关键字,你可以给字面常量指定一个友好的名字:const Pi float64 = 3.14159265358979323846const zero = 0.0 // 无类型浮点常量const (size int64 = 1024eof = -1 // 无类型整型常量)const u, v float32 = 0, 3 ...

2015-12-03 14:09:00 121

转载 编程基础知识之变量赋值

在Go语法中,变量初始化和变量赋值是两个不同的概念。下面为声明一个变量之后的赋值过程:var v10 intv10 = 123Go语言的变量赋值与多数语言一致,但Go语言中提供了C/C++程序员期盼多年的多重赋值功能,比如下面这个交换i和j变量的语句:i, j = j, i在不支持多重赋值的语言中,交互两个变量的内容需要引入一个中间变量:t = i; i = j; j = t;多重赋值的...

2015-12-02 14:08:00 457

转载 编程基础知识之变量初始化

对于声明变量时需要进行初始化的场景,var关键字可以保留,但不再是必要的元素,如下所示:var v1 int = 10 // 正确的使用方式1var v2 = 10 // 正确的使用方式2,编译器可以自动推导出v2的类型v3 := 10 // 正确的使用方式3,编译器可以自动推导出v3的类型以上三种用法的效果是完全一样的。与第一种用法相比,第三种用法需要输入的字符数大大减少,是懒程序员和...

2015-12-01 14:07:00 177

转载 编程基础知识之语言交互性

由于Go语言与C语言之间的天生联系,Go语言的设计者们自然不会忽略如何重用现有C模块的这个问题,这个功能直接被命名为Cgo。Cgo既是语言特性,同时也是一个工具的名称。在Go代码中,可以按Cgo的特定语法混合编写C语言代码,然后Cgo工具可以将这些混合的C代码提取并生成对于C功能的调用包装代码。开发者基本上可以完全忽略这个Go语言和C语言的边界是如何跨越的。与Java中的JNI不同,Cg...

2015-11-30 13:59:00 462

转载 编程基础知识之邮件列表

邮件列表是Go语言最活跃的社区之一,而且与其他语言社区不同的是,在这里你可以很频繁地看到好多Go语言的核心开发成员(比如Ross Cox)亲自回答问题,其权威程度和对学习Go语言的价值显而易见。Go邮件组的地址为http://groups.google.com/group/golang-nuts 。该邮件列表对所有人公开,你可以在这个页面上直接加入。该邮件列表的沟通语言为英语。根据我们的...

2015-11-29 14:06:00 262

转载 编程基础知识之工程管理

在实际的开发工作中,直接调用编译器进行编译和链接的场景是少而又少,因为在工程中不会简单到只有一个源代码文件,且源文件之间会有相互的依赖关系。如果这样一个文件一个文件逐步编译,那不亚于一场灾难。Go语言的设计者作为行业老将,自然不会忽略这一点。早期Go语言使用makefile作为临时方案,到了Go 1发布时引入了强大无比的Go命令行工具。Go命令行工具的革命性之处在于彻底消除了工程文件的概...

2015-11-28 14:04:00 131

转载 编程基础知识之编译程序

假设之前介绍的Hello, world代码被保存为了hello.go,并位于~/goyard目录下,那么可以用以下命令行编译并直接运行该程序:$ cd ~/goyard$ go run hello.go # 直接运行Hello, world. 你好,世界!使用这个命令,会将编译、链接和运行3个步骤合并为一步,运行完后在当前目录下也看不到任何中间文件和最终的可执行文件。如果要只生成编译结果...

2015-11-27 14:03:00 98

转载 编程基础知识之开发工具选择

Google并没有随着Go 1的发布推出官方的Go集成开发环境(IDE),因此开发者需要自行考虑和选择合适的开发工具。目前比较流行的开发工具如下: 文本编辑工具gedit(Linux)/Notepad++(Windows)/Fraise(Mac OS X); 安装了GoClipse插件的Eclipse,集成性做得很好; Vim/Emacs,万能开发工具; LiteIDE,一款专为...

2015-11-26 20:03:00 101

转载 编程基础知识之编译环境准备

前面我们给大家大概介绍了第一个Go程序的基本结构,接下来我们来准备编译这段小程序的环境。在Go 1发布之前,开发者要想使用Go,只能自行下载代码并进行编译,而现在可以直接下载对应的安装包进行安装,安装包的下载地址为http://code.google.com/p/go/downloads/list。在*nix环境中,Go默认会被安装到/usr/local/go目录中。安装包在安装完成后会...

2015-11-25 14:02:00 120

转载 编程基础知识之代码解读

每个Go源代码文件的开头都是一个package声明,表示该Go代码所属的包。包是Go语言里最基本的分发单位,也是工程管理中依赖关系的体现。要生成Go可执行程序,必须建立一个名字为main的包,并且在该包中包含一个叫main()的函数(该函数是Go可执行程序的执行起点)。Go语言的main()函数不能带参数,也不能定义返回值。命令行传入的参数在os.Args变量中保存。如果需要支持命令行开...

2015-11-24 14:01:00 336

转载 编程基础知识之第一个Go程序

自Kernighan和Ritchie合著的《C程序设计语言》(The C Programming Language)出版以来,几乎所有的编程书都以一个Hello world小例子作为开始。我们也不免俗(或者说尊重传统),下面我们从一个简单Go语言版本的Hello world来初窥Go这门新语言的模样,如代码清单1-4所示。package mainimport "fmt"// 我们需要使用...

2015-11-23 14:00:00 70

转载 编程基础知识之反射

反射(reflection)是在Java语言出现后迅速流行起来的一种概念。通过反射,你可以获取对象类型的详细信息,并可动态操作对象。反射是把双刃剑,功能强大但代码可读性并不理想。若非必要,我们并不推荐使用反射。Go语言的反射实现了反射的大部分功能,但没有像Java语言那样内置类型工厂,故而无法做到像Java那样通过类型字符串创建对象实例。在Java中,你可以读取配置并根据类型名称创建对应...

2015-11-22 13:58:00 232

转载 编程基础知识之并发编程

Go语言引入了goroutine概念,它使得并发编程变得非常简单。通过使用goroutine而不是裸用操作系统的并发机制,以及使用消息传递来共享内存而不是使用共享内存来通信,Go语言让并发编程变得更加轻盈和安全。通过在函数调用前使用关键字go,我们即可让该函数以goroutine方式执行。goroutine是一种比线程更加轻盈、更省资源的协程。Go语言通过系统的线程来多路派遣这些函数的执...

2015-11-21 21:57:00 78

转载 编程基础知识之类型和接口

Go语言的类型定义非常接近于C语言中的结构(struct),甚至直接沿用了struct关键字。相比而言,Go语言并没有直接沿袭C++和Java的传统去设计一个超级复杂的类型系统,不支持继承和重载,而只是支持了最基本的类型组合功能。巧妙的是,虽然看起来支持的功能过于简洁,细用起来你却会发现,C++和Java使用那些复杂的类型系统实现的功能在Go语言中并不会出现无法表现的情况,这反而让人反思...

2015-11-20 13:56:00 227

转载 编程基础知识之错误处理

Go语言引入了3个关键字用于标准的错误处理流程,这3个关键字分别为defer、panic和recover。本书的“序”已经用示例展示了defer关键字的强大之处,在第2章中我们还会详细描述Go语言错误处理机制的独特之处。整体上而言与C++和Java等语言中的异常捕获机制相比,Go语言的错误处理机制可以大量减少代码量,让开发者也无需仅仅为了程序安全性而添加大量一层套一层的try-catch...

2015-11-19 13:55:00 81

转载 编程基础知识之函数多返回值

目前的主流语言中除Python外基本都不支持函数的多返回值功能,不是没有这类需求,可能是语言设计者没有想好该如何提供这个功能,或者认为这个功能会影响语言的美感。比如我们如果要定义一个函数用于返回个人名字信息,而名字信息因为包含多个部分——姓氏、名字、中间名和别名,在不支持多返回值的语言中我们有以下两种做法:要么专门定义一个结构体用于返回,比如:struct name {char fi...

2015-11-18 23:54:00 86

转载 编程基础知识之更丰富的内置类型

除了几乎所有语言都支持的简单内置类型(比如整型和浮点型等)外,Go语言也内置了一些比较新的语言中内置的高级类型,比如C#和Java中的数组和字符串。除此之外,Go语言还内置了一个对于其他静态类型语言通常用库方式支持的字典类型(map)。Go语言设计者对为什么内置map这个问题的回答也颇为简单:既然绝大多数开发者都需要用到这个类型,为什么还非要每个人都写一行import语句来包含一个库?这...

2015-11-17 13:52:00 71

转载 编程基础知识之自动收回垃圾

我们可以先看下不支持垃圾回收的语言的资源管理方式,以下为一小段C语言代码:void foo(){char* p = new char[128]; ... // 对p指向的内存块进行赋值 func1(p); // 使用内存指针delete[] p;}各种非预期的原因,比如由于开发者的疏忽导致最后的delete语句没有被调用,都会引发经典而恼人的内存泄露问题。假如该函数被调用得非常频繁,那...

2015-11-16 13:50:00 87

转载 编程基础知识之语言特性

Go语言作为一门全新的静态类型开发语言,与当前的开发语言相比具备众多令人兴奋不已的新特性。本书从第2章开始,我们将对Go语言的各个方面进行详细解析,让读者能够尽量轻松地掌握这门简洁、有趣却又超级强大的新语言。这里先给读者罗列一下Go语言最主要的特性: 自动垃圾回收 更丰富的内置类型 函数多返回值 错误处理 匿名函数和闭包 类型和接口 并发编程 反射 语言交互性...

2015-11-15 13:49:00 66

转载 编程基础知识之编程哲学

计算机软件经历了数十年的发展,形成了多种学术流派,有面向过程编程、面向对象编程、函数式编程、面向消息编程等,这些思想究竟孰优孰劣,众说纷纭。C语言是纯过程式的,这和它产生的历史背景有关。Java语言则是激进的面向对象主义推崇者,典型表现是它不能容忍体系里存在孤立的函数。而Go语言没有去否认任何一方,而是用批判吸收的眼光,将所有编程思想做了一次梳理,融合众家之长,但时刻警惕特性复杂化,极力...

2015-11-14 13:48:00 136

转载 编程基础知识之软件工程

单机时代的语言可以只关心问题本身的解决,但是随着工程规模的不断扩大,软件复杂度的不断增加,软件工程也成为语言设计层面要考虑的重要课题。多数软件需要一个团队共同去完成,在团队协作的过程中,人们需要建立统一的交互语言来降低沟通的成本。规范化体现在多个层面,如: 代码风格规范 错误处理规范 包管理 契约规范(接口) 单元测试规范 功能开发的流程规范Go语言很可能是第一个将代码风格强...

2015-11-13 23:47:00 73

转载 编程基础知识之数理统计函数

(一)AVEDEV(X,N):返回X在N周期内的平均绝对偏差。注:1、N为有效值,但当前的k线数不足N根,该函数返回空值;2、N为0时,该函数返回空值;3、N为空值,该函数返回空值;4、N不能为变量算法举例:计算AVEDEV(C,3);在最近一根K线上的值。用麦语言函数可以表示如下:(ABS(C-(C+REF(C,1)+REF(C,2))/3)+ABS(REF(C,1)-(C+REF...

2015-11-12 13:45:00 464

转载 编程基础知识之逻辑判断函数

(一)AUTOFILTER 自动对模型信号进行过滤。过滤规则:1、连续的同方向指令只有第一个有效,其他的将被过滤;2、交易指令必须先开后平配对出现(例如:出现BK指令,下一个指令只允许出现SP指令;反手则是SPK和BPK交叉出现)。例:CLOSE>OPEN,BK;CLOSE<OPEN,SP;AUTOFILTER;注:1、如果使用自动过滤函数建议就不要在代码中再使用其它的...

2015-11-11 13:42:00 399

转载 编程基础知识之引用数据函数

(一)AVPRICE取得K线图的均价。注:1、表示单根K线内的均价;2、日线周期上收盘后与SETTLE函数一样取得当日的结算价。例1:A:AVPRICE;//定义变量A为均价线;例2:MA5:MA(AVPRICE,5);//定义五个周期均价的平均值;例3:C>MA(AVPRICE,5);//价格大于五个周期均价的平均值则返回1,否则返回0。K线形态(二)CLOSE 取得K线...

2015-11-10 13:40:00 226

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除