自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

漆学军的编程笔记

MQL4,MQL5,PowerBasic和PHP语言编程笔记

  • 博客(45)
  • 资源 (2)
  • 收藏
  • 关注

原创 【漆学军】如何实现鼠标指哪根k线,COMMENT就显示哪根k线的内容?

刚刚在我们的《从零开始学MQL4编程》微信答疑群里有个学员提问:“comment 函数显示的内容,可以让它跟着鼠标移动变化吗? 鼠标指哪根K线,就显示那根K线的comment的内容”下面我来解答一下:这是可以实现的,通过捕获图表事件里面的鼠标移动事件可以实现。第一步:新建EA之后,在EA的初始化函数里面,启动鼠标移动事件 ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,0,true);int OnInit() {//--- set prope

2022-05-31 13:22:04 940

原创 【漆学军】函数如何返回两个或更多值?

一般情况下,一个函数就返回一个值,比如说获取最后下单时间,获取账户盈亏等等。但在有些时候,我们想通过一个函数中的for计算,同时获取多单持仓数量和空单持仓数量,应该怎么做呢?直接上例子://+------------------------------------------------------------------+//| 函数返回两个值.mq4 |//|

2022-04-19 11:59:45 1004

原创 【漆学军】MT4进阶到MT5速成之路(4)修改和删除挂单

一、首先我们来看下修改订单函数int OrderModify(ulong ticket,double tpp,double slp) {//--- 准备请求 MqlTradeRequest request= {}; request.action=TRADE_ACTION_SLTP; // 设置// request.symbol=symbol;// request.type = type; request.position =ticket; requ

2022-04-16 00:09:41 2081 3

原创 【漆学军】MT4进阶到MT5速成之路(3)获取账户交易历史单

MQL5语言提供了多种函数获取历史订单,下面先分享一种,另一种之后补充。下面函数的功能是获取账户下本币种的所有历史单子的盈亏。double GetProfitHis(datetime t) { double res=0;//--- 请求交易历史记录 HistorySelect(0,TimeCurrent());//--- 创建物件 uint total=HistoryDealsTotal(); ulong ticket=0; double p

2022-04-15 23:57:59 1340

原创 【漆学军】MT4进阶到MT5速成之路(2)获取持仓

MT5在持仓获取上,要比MT4复杂些,分两部分,获取持仓和挂单采用了不同的方法。一、获取持仓中的buy和sell单int b=0;//获取buy单个数int s=0;//获取sell单个数double lot_total_buy=0;//获取持仓中buy单的总手数double lot_total_sell=0;//获取持仓中sell单的总手数for(int i=0; i<PositionsTotal(); i++) { ulong ticket=Positi

2022-04-15 23:52:08 1200 1

原创 【漆学军】MT4进阶到MT5速成之路(1)下单

当你对MT4已经相当熟练了,能够独立编写EA了,这个时候,想快速学习并掌握MT5,那么可以参看本教程。MT5跟MT4相比,变化很多,但是核心编程思维和基础语法是相同的,下面重点来说下不同的部分。一、下单函数uint OrderSend(ENUM_ORDER_TYPE type,double clot,double price) {//--- 准备请求 MqlTradeRequest request= {}; request.action=TRADE_ACTION_DEAL;

2022-04-15 23:42:00 1450

原创 漆学军:RSI信号,RSI<20做多,RSI>80做空的例子程序

《MT4EA编程速成教程》中第33页习题:第三题:将交易信号改成RSI,RSI<20做多,RSI>80做空。RSI指标又叫相对强弱指标,是一个很简单的指标,只有一个缓存,获取RSI的值跟移动平均线差不多,这道题只需要获取位移为1的RSI指标值即可。一单一结的EA模版中,信号函数修改如下即可:int signal() { int res=0; //获取指标值 double rsi=iRSI(NULL,0,6,PRICE_CLOSE,1); if(

2021-10-27 01:07:13 1411

原创 漆学军:MACD交叉,金叉做多,死叉做空的例子程序

《MT4EA编程速成教程》中第33页习题:第二题:将交易信号改成MACD交叉,金叉做多,死叉做空。这道题的重点和难点就是获取MACD的指标值,MACD和之前的抛物线指标或者均线指标不一样,稍微复杂些。MACD指标有两个缓存数组,一个显示的是柱体部分,一个显示的是红色虚线。double iMACD( string symbol, // 品种 int timeframe, // 时间周期 int

2021-10-27 00:56:34 1600

原创 漆学军:均线交叉,金叉做多,死叉做空的例子程序

《MT4EA编程速成教程》中第33页习题第一题:将交易信号改成均线交叉,金叉做多,死叉做空。金叉死叉,需要获取小均线两个点,大均线两个点,然后比较四个点的大小变化,就能判断金叉和死叉。当黄色为小均线,红色为大均线 当 A>B 并且 C>D 就是金叉。当黄色为大均线,红色为小均线 当 A>B 并且 C>D 就是死叉。在之前一单一结的EA基础上,只需要修改signal()这个信号函数。代码修改如下:int signal() { in...

2021-10-27 00:35:02 1591

原创 漆学军:EA编程如何点击按钮打开网页

今天来分享一个比较常用的系统api的小功能。我们在编写好了ea之后,有时候想要通过点击图表上的按钮或者图片后,能够打开指定的网页,网页就显示本EA的详细使用方法,甚至可以看到介绍视频,这样,更利于用户对这个ea的了解。编写这个ea的时候,首先是创建要给按钮,这个非常简单,使用MQL语言参考里面自带的函数即可。创建按钮的函数如下:bool ButtonCreate(const long chart_ID=0, // chart's .

2021-10-24 22:32:04 990

原创 漆学军:永远保持订单距离最大盈利处10个点(移动止损)

《MT4EA编程速成教程》中第23页习题2、永远保持订单距离最大盈利 10 个点,也就是多单随着行情上涨,止损上移,行情下跌, 止损不变,空单相反。这种操作就是标准的移动止损,移动止损和平保不同,平保只修改一次止损,移动止损会不断将多单的止损往上移动,空单的止损往下移动。移动止损不仅仅只是保护了账户不亏损,而且还能随着行情变化,将利润扩大。在MT4平台上,实现这样一个EA非常简单,只需要短短几十行代码,下面提供完整全部代码,供初学者学习参考。//+------------...

2021-10-08 21:44:09 1141 6

原创 漆学军:盈利30点将止损提高到盈利15点处(平保)

《MT4EA编程速成教程》中第23页习题1、盈利30点将止损提高到盈利15点处。这种操作,有时候也叫平保,为了避免将盈利的单子变亏损了所做的一个保护。这种操作非常有用,很多人都会用到,通过编写ea来实现这种功能,非常简单,短短几十行代码就能实现。下面是这个程序的全部代码,感兴趣可以复制下去保存为EA就可以运行。//+------------------------------------------------------------------+//|

2021-10-08 21:11:42 631

原创 漆学军:为什么要学MT4而不直接学更强大的MT5呢?

​​​​​​很多人在纠结到底是学MT4还是MT5的自动交易编程,我的建议是先学MT4。理由如下:MT4相对简单易学。MT4跟MT5比起来,简单很多,数据类型更少,订单处理方式更简单,指标 值的获取也简单了很多,整体学习起来更加容易些。MT4的交易商更多,用户量更庞大。MT4毕竟出来更早些,用户已经习惯了MT4,很多EA群里都是讨论MT4的 EA,而很少有人讨论MT5的EA,就说那些知名的统计工具,大多都是MT4 版本而没有MT5的版本。据我所知,有些做MT5培...

2021-08-19 14:56:08 901 1

原创 漆学军:学EA编程,熟练掌握这108个英文单词就够了

编程离不开英语,写代码的时候,我也不喜欢总去切换输入法,一会英文一会儿中文,很多人说自己英文不好,怕学不了编程,现在我们来总结下到底哪里需要用到英文。1、常用的语法关键字,比如下表前半部分,是必须记住的,大小写都不能错,这部分大约50个单词。2、其他关于交易平台的单词,比如订单,帐号之类,是便于使用系统功能,是经常要用到的,也是50多个,基本就够了,随着编程经验增加,可认识的更多,这部分单词只需要记住前面三个字符,因为编辑器有自动提示。下面是我整理的必学的108的单词。if 如果

2021-07-13 16:01:43 4399

原创 漆学军:MT4平台量化交易故事

1、我姓汤,是一名宝妈,83年生于重庆,因为性格内向,不善言辞,大学毕业后,在家里炒股票和期货,2008年结婚后跟随老公移民到了加拿大,我开始接触mt4平台的ea交易,因为考虑到要带孩子,ea自动交易非常适合我,我果断决定要学习ea编程,我在外汇火线论坛上看到了一个网名叫云开(现在是漆老师)的人比较活跃,总在讨论ea编程方面的问题,于是,我找到了他,让国内的朋友帮我给他支付了2000元学费,后面一个多月里,我天天研究代码,天天缠着老师给我讲解,给我指点,很快,编写ea对我来说,已经没有什么难度了...

2021-07-13 15:55:25 4110 2

原创 【漆学军】如何快速成为一个很厉害的人?

如何快速成为一个很厉害的人?方法是唯一的,就是要不断找更厉害的老师,然后向他学习。《射雕英雄传》里面的郭靖,一开始的师傅是江南七怪,后面是全真教的马钰,最后是洪七公,学会了降龙十八掌,一跃成为一代大侠。为什么这些师傅愿意教他,因为他是名门之后,有钱大方,人品又好。杨过,学了好几个师傅的功夫,牛逼哄哄之后,博采众长,自创顶级功夫“黯然销魂掌”,如果没有那么多年的基础,让他一开始就自学,自创顶级武功,可能吗?不可能。所以,靠自学,是不能快速成为一个很厉害的人的。我们上幼儿园,小学,中学,大学,跟的都是普

2021-07-06 00:51:03 408

原创 【漆学军】你搞了这么多年EA编程,到底有没有稳定盈利的EA?

几乎每天都会有人问我,“你搞了这么多年EA编程,到底有没有稳定盈利的EA?”不想聊的时候,我会直接说“没有”。心情好的时候,我会不痛不痒地多说几句有。不是不想说,也不是忽悠。是因为不同的人对于“稳定盈利”的标准不一样,回答起来可能会陷入无穷无尽的争吵当中。什么是稳定盈利?A说一年内每个月都赚钱就是稳定盈利;B说三年内每个月都盈利就是稳定盈利;C说没有五年的实盘盈利记录算不上稳定盈利;D说连续三个月每月盈利大于5%,回撤小于20%就是稳定盈利;......

2021-06-29 13:01:29 1518 2

原创 妥妥的世界第一:为什么MT4软件的地位无法撼动?

我是漆学军,2004年接触MT3.83的时候,还没有太在意,直到2005年,MT4正式推出之后,我就再也没有真正爱上别的软件,即便是MT4的升级版本MT5,我也一直提不起太大兴趣。外汇市场上有很多不同类型的交易软件,包括占领了大部分外汇交易市场的MT4、MT5、cTrader和各个机构自行研发的交易软件等等,然而,尽管竞争者很多,已经发布十六年了的MT4平台却依旧称得上是“交易软件之王”,市场占有率稳居世界第一,在外汇市场上具备不可动摇的地位。MT4平台简介MetaTrader 4(MT4)..

2021-06-24 12:30:46 2150 4

原创 【漆学军】MT4编程技巧:如何获趋势线的角度?

大家好,我是漆学军,今天我又来分享MT4编程技巧。有时候为了判断趋势强弱,我们想知道趋势线的角度,角度越接近90度,表示趋势越强,这个时候更需要重点关注。在MT4里面,实现这个并不难。void OnStart() {//--- //ObjectDelete(0,"1"); double a=Close[2]; double b=Close[1]; Print("a = ",a," b = ",b); ObjectCreate(0,"1",OBJ_TREND

2021-06-23 14:09:40 1238 1

原创 【漆学军】EA编程速成教程(5)增加一个下单条件:抛物线指标

这次,我们在之前课程的基础上,给EA增加一个下单条件,也就是抛物线指标转向的时候,下单。具体是,抛物线从k线下面转到k线上面去之后,第二根k线开盘价卖出,如图中标记5处。反之,抛物线从k线上面转到k线下面去之后,第二根k线开盘价买入,如图中标记1处。...

2021-06-07 22:04:16 1500 1

原创 【漆学军】如何编写健壮的一键平仓脚本

在MT4的各种快捷工具中,一键平仓脚本是非常有用的一个小脚本程序。在面对账户有几十个甚至几百个单子的时候,一个一个去手动平仓将会是非常痛苦麻烦的事情,使用yi'jian

2021-06-07 15:38:17 2938 3

原创 【漆学军】分享一个自定义K线的指标的源码

实现方法:在每根k线上绘制柱子,粗柱子作为K线主体,细柱子作为k线引线。效果如图:

2021-06-05 17:09:55 5198 2

原创 【漆学军】EA编程速成教程(4)修改止损止盈

本课程的目标是给之前下的单子添加止损止盈价。首选添加外部参数input int SL=600; //止损点数input int TP=200; //止盈点数给单子添加止损止盈有两个方法:一、在下单函数里面带上相应的止损和止盈。OrderSend函数有11个参数,其中第六个(stoploss)和第七个(takeprofit)分别是止损价和止盈价。int OrderSend(string symbol, // symbolint cmd, // operat

2021-06-02 23:51:39 2568 1

原创 【漆学军】EA编程速成教程(3)设置EA属性

在上一节课里面,我带大家编写了第一个可以下单的EA,虽然比较简单,但是你应该充分了解了下单函数的功能。今天我们来学习EA的属性部分。#property copyright "云开"#property link "https://qixuejun.ke.qq.com/"#property version "1.00"#property strict将鼠标光标放到property中间,然后按键盘功能键F1。(property英文是属性的意思。)这是MQL4参考,..

2021-06-02 23:45:26 1036

原创 【漆学军】EA编程速成教程(2)第一个程序:下单

我们写EA的目的就是为了自动下单做交易的,所以本课我们就来好好学习下MQL4语言中下单函数OrderSend的使用。1 OrderSend字面意思,订单发送,这个函数的功能就是用来向交易服务器发送一个下单指令,返回值为下单成功后的单子的订单编号。 intOrderSend( stringsymbol,//交易品种,比如“EURUSD”,"XAUUSD" intcmd, ...

2021-06-02 23:31:08 1718

原创 【漆学军】EA编程速成教程(1)准备知识

EA编程速成教程要求你必须了解并具备如下一些知识和能力:第一、需要具备一定的编程基础,最好是熟悉任意一门传统编程语言,比如说C语言,VB等等,都可以,需要了解程序的逻辑。第二、你需要了解MT4是什么,MT4就是MetaTrader 4外汇交易软件。第三,你需要了解EA是什么,我相信您肯定知道什么是EA,EA就是Expert Adviser(智能交易系统),EA就是使用MQL4语言编写的程序,EA程序使用在MT4软件上面,可帮你自动进行外汇黄金期货交易,至于什么时候交易,怎样买卖,什么时候平仓等等

2021-06-02 23:16:54 3579 2

原创 如何使MDI MFC应用程序在任务栏中显示一个实例?(How do you make your MDI MFC app show one instance in the TaskBar?)

我有一个MDI应用程序,当我单击新文档时,它将打开一个单独的选项卡。这将在Windows的任务栏中创建该图标的另一个实例。我有什么办法可以更改此行为,以便仅在任务栏上显示一个图标实例?我知道一种方法是使用SDI并在视图中使用标签,但我想将其保留为MDI。这有可能吗?经过一天的探索,我找到了解决方案。天哪,最终解决这个问题感觉很好。无论如何,这里都是解决方案。我只需要重写子框架的 CanShowOnTaskBarTabs()方法来返回FALSE。这是类方法:首先在childframe.h文件中

2020-12-22 09:27:56 196 2

原创 【漆天编程】Powerbasic语言读写ini配置文件的例子

我们编写程序的时候,经常会要求快速读取数据和写入数据,下面这个例子演示了使用winApi操作ini配置文件的过程。主要用到了两个函数:Getprivateprofilestring 获取数据字符串,函数用法请看例子。WritePrivateProfileString 写入数据节点字符串,函数用法请看例子。请看完整的例子,首选说明下,这个例子程序运行后就是显示一个窗口,显示窗口之前,从ini文件获取数据,然后按照读取的数据显示确定的位置,大小的窗口。关闭程序的时候,将窗口位置,...

2020-10-29 14:58:25 236

原创 【漆天编程】Powerbasic语言读写注册表函数

最近学了下C++,感觉C++真的挺难,太多的数据类型,数据结构等等,太难了,编写程序还是PowerBasic10方便简单,编译快,运行也快,尤其是编写DLL,爽歪歪!下面是全局定义$DefCompany = "Software\QItian"GLOBAL mCompany AS STRING使用Powerbasic读取注册表数据函数FUNCTION REG_GetSetting(BYVAL AppName$,BYVAL Section$,BYVAL Key$,BYVAL Default

2020-10-29 14:26:10 272

原创 【漆天编程】交易员为什么一定要学会EA编程

01人工智能时代已经到来2016年3月,举世闻名的人机围棋大赛开幕,当今世界围棋第一人李世石对战谷歌公司开发的机器人阿尔法狗,结果是李世石连败两局,标志着人工智能时代真正到来。早在十年和二十年前,人工智能就已经分别战胜了象棋和国际象棋的世界冠军,机器人的智慧一直在快速发展着,时至今日,人工智能在各行各业都开始超越了人类智慧了。首选是在最多流水...

2019-12-23 14:59:44 1354

原创 【漆天编程】如何用代码设置图表是否置前景

我们在图上显示信息的时候,经常会被K线图挡住。看我编写的功能面板,也被K线挡住了。如何解决呢?其实也很简单,禁用图表置前景。操作步骤1.在图上按F8,调出图表属性窗口。操作步骤2.取消“图表置前景”前面的勾,然后按确定。这样操作之后,K线就被我们的面板挡住了,效果如下:但是今天我要说的是怎样通过代码来设置图表是否置前景。ChartSetInteger(0,CHART_FOREGROUN...

2019-12-23 14:55:43 360

原创 【漆天编程】分享我自用多年的马丁策略EA完整源码(winkey),曾半年将我账户翻3倍

马丁策略一直都是具有很大争议的,因为有太多的人使用这个策略爆仓了,但是依然有人使用这个赚钱了。那些使用这个策略爆仓了的人会认为马丁策略不行,是垃圾,我是不同意这种说法的。比如说过马路有人被车撞死了,你是要取消马路,还是要取消汽车呢?吃饭有人被噎死了,那就不要在吃饭了吗?正因为上面问题的答案都是不能,所以我们也不能说马丁策略是垃圾策略。天下大势,分久必合,合久必分。外...

2019-12-23 14:49:10 11268 16

原创 【漆天编程】MT4平台如何打开10分钟或者2小时的图表周期

我们都知道,MT4平台默认只提供了九个时间周期 分别是1分钟,5分钟,15分钟,30分钟,1小时,4小时,日线图,周图和月图。 但有时候为了技术分析的需要,我们需要能打开10分钟图,或者2小时图这种独特的图表用来加载指标分析行情,这个时候怎么做呢? 第一步:生成历史数据 MT4安装好了之后,自带了一个周期转换脚本如图: PeriodConverte...

2019-11-22 19:24:34 7847 4

原创 【漆天编程】最牛逼的均线交叉指标,做出了EA历史数据测试器的效果

首先看效果图:指标描述:这是一个做趋势的指标, 两根均线交叉, 在开仓点和平仓点把中间的差价表现出来了,还有最近2000根K线(这个数可以自己调整)一共产生了多少个交叉信号,一共有多少个盈利的信号,多少个亏损的信号,最大连续亏损多少次,最大连续盈利多少次,盈利最多的信号盈利了多少,亏损最多的信号亏损了多少。指标源码://+------------...

2019-11-22 19:10:07 4364

原创 【漆天编程】Mql4语言编程教程--如何自定义图表背景图片

【注】本文于2015年首发于我本人的QQ空间(https://user.qzone.qq.com/80364276/blog/1439353992),刚刚又有人问到这个问题,我就把这篇文章发到这里来了,希望更多的人看到,并且学会怎样在K线图上面显示背景图,并且还能随意修改背景图片。 MT4越来越花哨了,MT4图表上面都可以显示图片了,甚至还可以玩俄罗斯方块和扫雷了。 ...

2019-10-12 15:24:16 2183

原创 【漆天编程】MT4和MT5有什么区别?这是我见到过的最好的回答

外汇交易员可以自由选择使用交易平台。然而这种选择与外汇经纪人的选择是相互联系的,因为不是每一种交易平台都是由经纪人提供的。此外,一些经纪商与某些外汇交易平台没有真正的兼容性,从而需要通过一个渠道来提供对它们的访问,所以MT4/MT5是一个连接外汇经纪人交易系统的软件。Metatrader 4(以下简称MT4)交易平台是非常有名的交易软件,可以说是设定了行业标准。它不直接通过平台提供交易,不...

2019-09-28 16:24:13 4315 1

原创 【漆天编程】MetaTrader软件的前世今生

MT4(MetaTrader4)是市场行情接收软件,由迈达克软件公司在2005 年 7 月1 日正式发布,提供免费试用,有中文界面。它包括先前系统所有的特点,并且对这些功能和组成部分进行了进一步的介绍和重组。 它适用于外汇, CFD 以及期货市场。MetaTrader4 服务器明显在使用率,工作表现,和可信度方面要优于早先的系统。在2004年我用的还是MetaTrader3.83,编程语言...

2019-09-28 16:18:26 679

原创 【漆天编程】一个例子展示PowerBasic可直接支持的21个控件

下面这个例子包含了我们编程常用的21个基础控件,通过这个例子,可以粗略看下控件是怎样使用的,后面我会单独详细介绍每个控件的使用方法。这个21个控件如下:1.Button2.Label3.TextBox4.ListBox5.ComboBox6.Option7.Checkbox8.Check3State9.ScrollBar10.Line11.ImgBu...

2019-09-26 10:47:56 709

原创 【Powerbasic语言入门教程】第二章:PowerBASIC的基本语法

第二章:PowerBASIC的基本语法1. PowerBASIC中的基本数据类型2. PowerBASIC中的变量和常量a) PowerBASIC的变量b) PowerBASIC的常量3. 变量和常量的作用域a) 定义全局变量和常量b) 定义函数和过程的变量和常量c) 使用不同作用域的变量和常量4. PowerBASIC中的操作符和表达式a) 算术操作符和表达式b) 字符串操...

2019-09-26 10:04:47 1375 2

原创 【Powerbasic语言入门教程】第一章:进入PowerBASIC世界的准备

第一章:进入PowerBASIC世界的准备1. PowerBasic简介PowerBASIC是个编译器,它允许 BASIC 程序师使用熟悉的 BASIC 语言编写工业标准的动态连接库(DLLs)和可执行程序(EXEs)。  用PowerBASIC 创建的可执行程序能做几乎任何事情!用PowerBASIC,你能访问全部的Windows API,因此你能编写几乎你能构思的任何事情的应用程序;从文...

2019-09-26 10:00:35 2616 1

均线交叉指标.mq4

【漆天编程】最牛逼的均线交叉指标,做出了EA历史数据测试器的效果。这是一个做趋势的指标, 两根均线交叉, 在开仓点和平仓点把中间的差价表现出来了,还有最近2000根K线(这个数可以自己调整)一共产生了多少个交叉信号,一共有多少个盈利的信号,多少个亏损的信号,最大连续亏损多少次,最大连续盈利多少次,盈利最多的信号盈利了多少,亏损最多的信号亏损了多少。

2019-11-22

gbsnippets.pbr

本类目编程代码里面用到的各类图片图标,菜单等等资源文件,缺少这个文件,很多代码将不能正常运行,不利于学习Powerbasic语言。

2019-09-26

空空如也

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

TA关注的人

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