自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大道至簡的博客

You were always consuming.What did you produce?

  • 博客(75)
  • 问答 (1)
  • 收藏
  • 关注

原创 MT4/MT5手机App没有警报功能怎么办?那就自己写一个

MT4/MT5手机App没有警报功能怎么办?那就自己写一个。作为一个外汇交易者,深感MT4手机App功能有限,无法满足自己更多的交易需求,于是自己开发了一款交易助手App。希望能更方便高效地进行外汇交易。目前的主要功能是外汇价格警报功能,这是MT4手机App不具备,但我觉得又是很必要的功能,因此最先开发了这个功能。

2021-02-12 17:17:24 5458 3

原创 如何编写一个模块化交易系统EA

引言本人之前在用MQL4开发EA交易系统的时候,总是习惯性的将所有的代码逻辑都放在一个.mql4文件里,新写一个EA的时候,也是直接把老的EA直接复制粘贴过来再改。这样做在当时觉得很快很爽,但是当我写了很多EA的时候就发现问题来了。第一,重复的样板代码太多,有时一个EA的某个功能改了,你去修改另一个EA的时候,发现这个功能还得再改一遍,像这种情况,完全可以把一些通用的功能抽取出来,让所有EA都去依赖它就可以了,这样只用修改一处即可。第二,把所有的逻辑都堆到一个文件中,也不符合软件设计中的单一职责原则,随着

2020-05-29 10:24:06 5724 2

原创 简单三步教你在MT4/5中设置邮箱email提醒

1、到你的邮箱 设置 里 找到pop3/smtp 服务,默认是 已关闭状态,点击 开启,并记住复制下 独立密码 或 授权码,下面以QQ邮箱为例:2、到邮箱帮助中心,搜索找到官方提供的 smtp服务器地址及端口3、在 mt4 的 工具->选项 中 的 电邮 tab 中 填写相关信息,电邮密码 填写 第一步得到的那个密码(授权码),然后点击 测试 按钮 ,如果 你的邮箱马上收到邮件,说明设置成功。接下来点 确定,关闭选项对话框,在代码中可以愉快地调用 SendMail("标题","正.

2020-05-18 11:53:29 6269 1

原创 亚马逊EC2部署turnserver穿透/中继服务指北

安装版本:turnserver-3.2.3.95.tar.gz  系统环境:AWS ec2 一、下载必要库 sudo yum install -y make auomake gcc cc gcc-c++ wget sudo yum install -y openssl-devel libevent libevent-devel mysql-devel mysql-server...

2018-12-29 19:29:06 2272

原创 ScrollView和Fragment中的ListView、WebView滑动冲突问题的解决

日常开发中很少会碰到ScrollView中嵌套listview或webview的情况,而且谷歌官方也不推荐这么做,但是也不是一定不会有这样的需求,毕竟定需求的不是我们程序员,而是产品经理。比如像下面这种需求:       可以看到,整个页面有一个共同的头部,下面有两个tab,左边tab下是个可以滚动的webview,右边是个listview。要求listview和webvi

2017-06-02 10:54:36 2544 1

转载 Java8 Lambda表达式教程

1. 什么是λ表达式 λ表达式本质上是一个匿名方法。让我们来看下面这个例子:    public int add(int x, int y) {        return x + y;    }转成λ表达式后是这个样子:        (int x, int y) -> x + y;参数类型也可以省略,Java编译器会根据上下文推断出来:

2017-03-14 14:18:09 414

转载 C语言register关键字—最快的关键字

register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很多很多register 变量,它累死也可能不能全部把这些变量放入寄存器吧,轮也可能轮不到你。一、皇帝身边的小太监----寄存器    不知道什么是寄存器?那见过太监没有?没有?

2017-02-21 10:54:28 704

转载 C语言external-internal-none链接属性浅析

很多C语言初学者对C语言的链接属性不是很清楚,通过自己的学习将C语言的链接属性浅析总结如下:工具/原料GNU-gcc方法/步骤㈠. external和internal以及none链接属性的讲解备注:1.链接属性分为external,internal,none。

2017-02-10 15:31:02 1197

原创 2016年终总结

憋了半个小时,终于憋出上面四个大字,说实话,作为一个程序员,宁愿写一千行的代码,也不想写几百字的文章。为什么会这样呢?因为我们平时代码写得多,而文章写的少,写总结自然没有写代码溜。人总是喜欢做自己熟练的事情,而不想做不熟练的事情,因为做熟练的事情不用怎么思考,而对于不熟练的事情还需要不停的思考和摸索。人总是倾向于能不思考就不思考,这是人的惰性使然。这种惰性,是阻碍人进一步提升自己的最大

2017-01-20 16:00:56 764

原创 HeadFirstC笔记_13 十大遗漏知识点

#1.  运算符递增与递减递增将数字加1,递减将数字减1++i; // 递增1,返回新值i++; // 递增1,返回旧值--i; // 递减1,返回新值i--; // 递减1,返回旧值//这些表达式都会改变 i 的值//++ 和 -- 的位置决定了表达式返回i 的原始值还是新值,例如:int i = 3;int j = i++; //这行代码执行以后,j

2016-12-26 10:26:28 713

原创 HeadFirstC笔记_12 线程:平行世界

难道每当想要同时做几件事时都得创建进程吗?不见得,有以下几个原因:1.创建进程要花时间有的机器新建进程只要花一丁点时间。虽然时间很短,但还是需要时间。如果你想要执行的任务才用几十毫秒,每次都创建进程就很低效。2.共享数据不方便当创建子进程时,子进程会自动包含父进程所有数据的副本。但这些只是副本,如果子进程想把数据发回父进程,就需要借助管道之类的东西。3.进程真的很难

2016-12-26 10:22:11 566

原创 HeadFirstC笔记_11  网络与套接字

内容待更新!

2016-12-26 10:18:26 403

原创 HeadFirstC笔记_10 进程间通信:沟通的艺术

输入输出重定向在命令行运行程序时,可以用“>”运算符把标准输出重定向到文件:命令:python ./rssgossip.py Snooki > stories.txt标准输出是三大默认数据流之一。顾名思义,数据流就是流动的数据,数据从一个进程流出,然后流入另一个进程。除了标准输入、标准输出和标准错误,还有其他形式的数据流,例如文件连接和网络连接也属于数据流。

2016-12-21 17:58:24 976 1

原创 HeadFirstC笔记_9  进程与系统调用:打破疆界

操作系统热线电话C程序无论做什么事都要靠操作系统。如果它想与硬件打交道,就要进行系统调用。系统调用是操作系统内核中的函数,C标准库中大部分代码都依赖于它们。system()sytem()是一个系统函数,它接收一个字符串参数,并把它当成命令执行:system("dir D:"); // windows上 打印D盘内容。system("gedit"

2016-12-19 16:50:54 1026 1

原创 HeadFirstC笔记_8 静态库与动态库:热插拔代码

#include中的尖括号代表标准头文件如果在 #include 语句中使用尖括号,编译器就会在标准头文件目录中查找头文件,而不是当前目录。为了用本地头文件编译程序,需要把尖括号换成双引号("xxx.h"):#include // 标准头文件#include "encrypt.h" // 本地头文件#include "checksum.h"标准头文

2016-12-17 11:06:32 1163

原创 HeadFirstC笔记_7 高级函数:发挥函数的极限

寻找真命天子……完成find()函数,用它过滤出ADS列表中所有运动迷,同时他们不能是Bieber的粉丝。#include #include #include int NUM_ADS = 7;char *ADS[] = { "William: SBM GSOH likes sports, TV, dining", "Matt: SWM NS

2016-12-15 15:54:59 748

原创 HeadFirstC笔记_6  数据结构与动态存储:牵线搭桥

保存可变数量的数据由于数组长度是固定的,为了保存可变数量的数据,需要一个比数组更灵活的东西,即链表。链表就是一连串的数据链表是一种抽象数据结构。链表是通用的,可以用来保存很多不同类型的数据,所以被称之为抽象数据结构。链表保存了一条数据和一个指向另一条数据的链接。如果想在A和B之间插入C,只要将A中原

2016-12-14 15:48:13 991

原创 HeadFirstC笔记_5  结构、联合与位字段:创建自己的结构

有时要传很多数据C语言可以处理很多不同类型的数据:小数字、大数字、浮点数、字符与文本。但现实世界中的事物往往需要一条以上的数据来记录。比如:/* 打印目录项 */void catalog(const char *name, const char *species, int teeth, int age){ printf("%s is a %s with %

2016-12-13 14:26:56 793

原创 HeadFirstC笔记_4 使用多个源文件:分而治之

简明数据类型指南char字符在计算机的存储器中以字符编码的形式保存,字符编码是一个数字,因此在计算机看 来, A 与数字65完全一样。65是A的ASCII码int如果你要保存一个整数,通常可以使用 int 。不同计算机中 int 的大小不同,但至少应该有16 位。一般而言, int 可以保存几万以内的数字short

2016-12-09 17:54:07 1520 2

原创 HeadFirstC笔记_3 创建小工具:做一件事并把它做好

先写个小工具这个工具能从命令行读取用逗号分隔的数据,然后以JSON格式显示#include int main() { float latitude; float longitude; char info[80]; int started = 0; puts("data=["); while (scanf("%f,%f,%79[^\n]", &latitude,&longitud

2016-12-08 09:10:29 1586 5

原创 HeadFirstC笔记_2.5  字符串:字符串原理

所谓的字符串数组,其实就是个二维的字符数组char tracks[][80] = { "I left my heart in Harvard Med School", "Newark, Newark - a wonderful town", "Dancing with a Dork", "From here to maternity", "The girl from Iwo

2016-12-06 14:21:11 815 1

原创 HeadFirstC笔记_2.存储器和指针:指向何方?

如果真的想玩转C语言,就需要理解C语言如何操纵存储器。掌握指针和存储器寻址对成为一名地道的C程序员来讲非常重要。什么是指针?指针就是存储器中某条数据的地址。为什么要使用指针?1.在函数调用时,可以只传递一个指针,而不用传递整份数据。 2.让两段代码处理同一条数据,而不是处理两份独立的副本。 简单来讲,指针做了两件事:避免副本和共享数据

2016-12-06 10:54:15 945

原创 HeadFirstC笔记_1.C语言入门

相比其他大多数语言,C语言的工作层次更低,因此理解C语言可以让你更清楚程序在运行时到底发生了什么,C语言还可以帮助你更好地理解其他语言。C语言旨在创建空间小、速度快的程序。它比其他大多数语言的抽象层次更低,也就是说用C语言写的代码更加接近机器语言。绝大多数的操作系统、其他计算机语言和大多数游戏软件都是用C语言写的 。三

2016-12-05 15:19:54 971

原创 cygwin不自带telnet的处理方法

由于cygwin不自带telnet,apt-cyg list telnet后也没有发现东西。查询找到telnet在cygwin的inetutils包里。如果有apt-cyg,可以apt-cyg install inetutils安装,如果没有可以在cygwin图形界面下选择安装inetutils包即可。

2016-11-30 13:59:03 2679

转载 c语言中main函数参数argc,argv说明,及命令行中如何传参数

方法1.C/C++语言中的main函数,经常带有参数argc,argv,如下:int main(int argc, char** argv)int main(int argc, char* argv[])这两个参数的作用是什么呢?argc 是指命令行输入参数的个数,argv存储了所有的命令行参数。假如你的程序是hello.exe,如果在命令行运行该程序,(首先应该在命令

2016-11-28 16:18:59 49735 3

原创 关于使用AsyncHttpClient做断点上传功能时无法回调进度的问题

在使用AsyncHttpClient做简单的非断点上传功能时,我们要想实时检测任务的开始、结束以及进度,需要实现AsyncHttpResponseHandler,并复写其各种onXXX()方法。 其中,在onProgress里,我们可以得到上传的进度。以上说的是简单上传,运行一点问题都没有。 可是当我按照服务端提供的接口做断点上传时,onProgress就不能正常的返回进度了。为了找出原因,我对两种情况的http请求都进行了抓包,发现原因出在http请求头里。在简单上传时,请求头里的"Content-Ty

2016-10-19 12:57:50 1583 2

转载 学习设计模式应该读哪些书

国内目前能够找到的有关设计模式的书按照出版时间排列有以下几本(含点评):* GoF的《设计模式》1994年英文版出版,2000.09中文版出版大师之作,经典作品,言简意赅,归纳充分。可惜中文版翻译质量很低,有些句子不通顺,好像是机器翻译的,有个别难译的句子干脆没有翻译(如Chain of responsibility一章的适用性一节的and the handler isn't known

2016-10-14 13:43:42 11617 1

转载 面向初学者的 MQL4 语言系列之5——自定义指标2

简介这是“面向初学者的 MQL4 语言”系列的第五篇文章。今天我们将学习使用图形对象,这是个非常强大的开发工具,可以大幅拓宽指标的应用范围。此外,它们可以用于脚本和 Expert Advisor。我们将学习创建对象,更改其参数以及检查错误。当然,我不可能详细地描述所有对象,那也太多了。但你会获得让你能够自主学习这些对象的所有必要知识。本文还包含一个逐步引导你创建复杂信号指标的示例。于此基础

2016-09-29 10:06:53 6682 2

转载 面向初学者的 MQL4 语言系列之3——技术指标和内置函数

简介这是“面向初学者的 MQL4 语言”系列的第三篇文章。在前两篇文章中, 我们学习了 MQL4 的基础知识,它们是进一步开发的基石。现在我们将学习使用内置 函数和用于技术指标的函数。后者对于以后开发你自己的 Expert Advisor 和指标至 关重要。另外,我们将通过一个简答的例子,解释如何追踪进入市场的交易信号, 以及如何正确使用指标。在文章的末尾,你将学到一些关于语言本身的新鲜有

2016-09-29 09:55:43 9748 1

转载 面向初学者的 MQL4 语言系列之2——MQL4语言入门深入

简介这是“MQL4 语言入门”系列的第二篇文章。第一篇文章“MQL4 语言入门简介”描述了 MQL4 的功能,我们学习编写简单脚本,了解变量含义,学习使用变量,分析函数、数组、内置数组和变量、循环“for”以及简单和复杂的条件。现在我们将探讨该语言更复杂、更高级的构造,学习新内容,并了解如何将它们应用到日常实践中。您将了解新循环类型“while”,新条件类型“switch”,运算符“bre

2016-09-29 09:52:27 9021 2

转载 面向初学者的 MQL4 语言系列之1——MQL4 语言入门

简介本系列的文章主要针对的是完全不懂编程,但想要在最短的时间内花费最少的精力尽快了解 MQL4 语言的交易者。如果您看到“面向对象”或“三维数组”这类词语就觉得头痛,那么这篇文章正是您需要的良方。这些课程的设计旨在最快出成果。内容也通俗易懂。我们在理论方面不会有太深的研究,但从第一课起就已能获得实际的收益了。建议如果您之前从未做过编程工作,第一次阅读某些案例时,您会发现

2016-09-29 09:45:29 30707 3

转载 面向初学者的 MQL4 语言系列之4——自定义指标

这是“面向初学者的 MQL4 语言”系列的第四篇文章。今天我们将学习编写自定义指标。我们将熟悉指标特征的分类,了解这些特征如何影响指标,学习新函数和优化方法,最后就是编写我们自己的指标。此外,本文末尾处提供了有关编程风格的建议。如果这是你阅读的第一篇“面向初学者”文章,那你最好抽空读读之前的几篇文章。此外,确保你已经正确理解了之前学过的材料,因为本文不介绍基础知识。指标

2016-09-28 16:26:28 17841

翻译 Android Content Provider Tutorial--安卓内容提供者系列5--Loader用法

Loaders(加载器)What’s a Loader?(什么是加载器)Loaders make it easy to load data asynchronously in an activity or fragment. Loaders have the

2016-09-18 16:30:28 1040

翻译 Android Content Provider Tutorial--安卓内容提供者系列4--如何创建内容提供者

Creating a Content Provider(如何创建一个ContentProvider)Content Provider Overview(ContentProvider概述)A content provider manages access to a

2016-09-18 16:13:33 1060

翻译 Android Content Provider Tutorial--安卓内容提供者系列3--操作安卓联系人

Accessing Contact Information (通过ContentProvider访问联系人信息)Objectives(学习目标)After this section, you will be able to:Describe the pri

2016-09-18 15:57:28 1602

翻译 Android Content Provider Tutorial--安卓内容提供者系列2--内容提供者用法

Using a Content Provider(如何使用Content Provider)Objectives(学习目标)After this section, you will be able to:通过这一部分的学习,你将能够:Write client

2016-09-18 15:31:09 891

翻译 Android Content Provider Tutorial--安卓内容提供者系列1--内容提供者介绍

在安卓系统默认的情况下,一个app是不能访问另一个app的数据的。这种基于沙盒的原则,是保护安卓系统安全的基石。但确实经常会有这样的需求:你想让一个app能分享一些数据给其他app。Content providers就是这样一个数据接口,能使数据在不同app之间共享。在这一部分学习中,您将学会如何设计和开发Content providers。下面是这部分学习的主题:

2016-09-18 15:11:26 578

原创 You need to use a Theme.AppCompat theme (or descendant) with this activity

一个小问题,顺手记录一下。今天做项目的时候,有个小小的需求,就是让一个activity运行但不显示界面出来,网上找了一下,方法很简单,只需要在你的清单文件中,将该activity的主题改成如下即可:android:theme="@android:style/Theme.NoDisplay"但是当我运行的时候,报了一个错误:You need to use a Theme.AppCom

2016-09-11 17:14:49 808

翻译 Using Styles and Themes in Android(在Android中使用主题和样式)

Basics XML Attributes(基本的XML属性)If you’ve written an Android app, you’ve seen them. They look like this:如果你写过一个Android应用,那你一定见过他们。他们看起来像下面这样: android:layout_width="wrap_content"

2016-09-02 16:07:29 1232

翻译 Enhancing Android UI with Custom Views 通过自定义view来让你的UI更屌!

能够构建自己的UI组件对你来说有很大的优势,比如你可以完全控制你的内容的显示样式。但成为一个自定义视图专家的最好理由之一,就是你将有能力使自己的视图层级结构变得扁平化。

2016-08-31 09:41:20 1784 2

空空如也

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

TA关注的人

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