您现在的位置是:主页 > MT4平台下载 >
MODE_HIGHmt4代理商
2024-09-11 12:54MT4平台下载 人已围观
简介MODE_HIGHmt4代理商 MQL4 低级培训教程 作家:老易 2011 年5 月25 日 目次 第一章 先河操纵MT4 1 1.1 引子1 1.2 MT4 下载与安设1 1.3 熟谙软件境遇5 1.4 操纵MT4 智能业务编造6 1.4.1 智能业务编造筑立...
MODE_HIGHmt4代理商MQL4 低级培训教程 作家:老易 2011 年5 月25 日 目次 第一章 先河操纵MT4 1 1.1 引子1 1.2 MT4 下载与安设1 1.3 熟谙软件境遇5 1.4 操纵MT4 智能业务编造6 1.4.1 智能业务编造筑立6 1.4.2 第一个标准:Hello Word !7 1.4.3 预备10 年的汗青数据10 第二章 MQL4 讲话12 2.1 打算学问12 2.1.1 EA 框架12 2.1.2 目标框架13 2.1.3 坐标系14 2.2 内置变量与函数15 2.2.1 整数相除的办法15 2.2.2 墟市函数15 2.2.3 账户函数17 2.2.4 墟市变量17 2.2.5 时辰函数18 2.2.6 烛炬序列函数18 2.2.7 业务函数19 2.2.8 数学、三角函数19 2.2.9 数组函数19 2.2.10 弹出信息框函数19 2.3 自界说目标20 第三章 编程进阶21 3.1 构思战略21 3.1.1 业务历程的证据21 3.1.2 时间目标的拣选23 3.1.3 危机驾驭的战略23 3.2 逻辑理解24 3.2.1 EA 逻辑框架25 3.2.2 操盘驾驭模块流程图25 3.3 汗青数据回测26 3.3.1 先河一个EA 测试27 3.3.2 测试通知中各项目标证据29 3.3.3 通知中颜色的寓意31 3.4 常用自界说函数31 3.4.1 最大开仓量谋略32 3.4.2 新单开仓33 3.4.3 持仓单平仓34 3.4.4 追踪止损35 3.4.5 依时业务36 2 3.4.6 正在屏幕上显示文字37 3.4.7 两点之间画线.7 自界说目标样板:图形化回忆汗青业务47 第四章 MQL4 时间目标52 4.1 Accelerator Oscillator 震撼加快目标54 4.2 Accumulation/Distribution 离散目标55 4.3 Alligator 鳄鱼目标56 4.4 Average Directional Movement Index 均匀对象挪动目标57 4.5 Average True Range 均匀线 Awesome Oscillator 振荡目标59 4.7 Bears Power 熊力震撼目标60 4.8 Bollinger Bands 保力加通道时间目标61 4.9 Bulls Power 牛力震撼目标62 4.10 Commodity Channel Index 商品通道目标62 4.11 DeMarker 63 4.12 Envelops 包络目标64 4.13 Force Index 强力目标66 4.14 Fractals 分形目标66 4.15 Gator Oscillator 加众摆动目标67 4.16 Ichimoku Kinko Hyo 一目均衡外目标68 4.17 MACD 挪动均匀汇总/离别目标70 4.18 Market Facilitation Index 墟市鼓动指数目标71 4.19 Momentum 动量索引目标71 4.20 Money Flow Index 资金流量指数目标72 4.21 Moving Average 挪动均匀线 Moving Average of Osillator 挪动均匀震撼目标75 4.23 On Balance Volume 能量潮目标75 4.24 Parabolic SAR 掷物线 Relative Strength Index 相对强弱目标77 4.26 Relative Vigor Index 相对生气指数目标78 4.27 Standard Deviation 尺度离差目标79 4.28 Stochastic Oscillator 随机震撼目标80 4.29 Volumes 成交量目标82 4.30 Williams’Percent Range 威廉目标82 3 第一章 先河操纵MT4 1.1 引子 当幻化莫测的外汇墟市、24 小时不间断的业务、种类繁众的泉币对同时展此刻你的面前 时,你肯定有七手八脚无所适从的感触。自从杀青了互联网外汇业务,咱们倍感外汇业务的 艰苦与繁琐,于是 EA (英文Expert Advisors 缩写,称专家照管,或智能业务编造)就应运 而生了。 大众半外汇业务商供给MT4 平台,大众半外汇业务者先河闭心以至依恋 MT4 平台上的 EA,网上呈现了良众的免费EA 以至收费的EA 。不幸的是,正在这里我要下个结论,那便是大 众半 EA 都是垃圾毫不是“圣杯”,不管是免费的仍是收费的,真正的圣杯只可正在你本人手 中成立。 纵观积年邦际上 EA 大赛,还没有呈现一位连气儿获胜的选手。恐怕咱们可能刹那以为连 续巩固赢利的业务编造是保存的,然而连气儿巩固赢利的EA 是否保存则有待巡视证据。电脑 和人脑比拟目前还保存难以超过的阻塞,咱们期盼并恭候着众众的专家学者能造造出真正的 人工智能业务编造。 然而,正在所谓真正的人工智能业务编造问世之前,举动凡是的炒汇者不行闲着,咱们需 要踊跃的做些什么来取得本人的圣杯。 有一点可能必然,咱们必需正在无误的墟市观和长远理解墟市的根柢上去构筑适合本人的 办法,拟订墟市顺应才华较强的战略,担保编造或许动态地以最切近墟市的形式运转,再通 过整饬业务历程的逻辑法规,根据MQL4 讲话典型编出适合电脑主动业务的标准,就可能阶 段性的实实际现巩固剩余。 EA 的最大用处就正在于把无误的业务逻辑计划定量化、标准化,从而创筑一套墟市顺应 才华较强的战略。切记 EA 只是你业务行径的一个别,切忌 EA 驾驭你的业务行径。你必需 全程参加到总共业务历程中,即使你过分依恋EA,那么EA 就只可是个传说。 本书将从搭筑业务平台、明白主动业务编程、练习编程等方面分章节描画,并贯穿若干 个 EA 实例标准,根据构思战略、逻辑理解、编造代码、汗青数据测试、模仿操盘的纪律, 深度一共地批注EA 的成立历程,同时供给了MQL4 常用指令集、外汇常用时间目标注释等 实质。 笔者既不属于信息派也不属于时间派,更不是二合一派。外汇业务是“零和博弈”,我 更倾向从数学统计论的角度来忖量外汇,理性的参加博弈。 明了EA,编造EA,操纵EA,从此刻先河。 1.2 MT4 下载与安设 正在业务商指定的网站上下载安设标准,并运转: 2 3 4 1.3 熟谙软件境遇 5 1.4 操纵MT4 智能业务编造 1.4.1 智能业务编造筑立 MT4 安设运转后,智能业务是被禁止的,必要筑立“允诺”智能业务。 6 1.4.2 第一个标准:Hello Word ! 创筑一个空缺的标准 7 8 写一个标准 回到MT4 终端,翻开智能业务编造可能看到方才的标准仍旧预备好了: 9 鼠标双击这个名字,新编写好的标准就调入到图外窗口,右上角有标准名和一个乐容, 乐容透露编造允诺推行主动业务: 咱们正在终端窗口的智能业务标签里能看到标准运转的结果: 1.4.3 预备10 年的汗青数据 一个编造好的 EA 必要汗青数据回考试证。目前从 MT4 平台上可能下载从 1999 年 10 月今后的整个种类的数据(包含外汇、黄金、期货、股票指数等等)。 下载10 年的数据根据以下办法即可。 10 第一步,筑立终端图外显示参数。翻开终端“东西”- “选项”,点击“图外”标签。 第二步,下载汗青数据。翻开终端“东西”- “汗青数据中央”。 这一步下载了选定泉币对的从 1999 年 10 月1 日今后的整个1 分钟数据。其他时辰周 期的数据都市遵循这个M1 数据主动天生,只是,你还必要双击每个时辰周期,让整个的周 期都显示成彩色的。这证据整个时辰周期的数据都将被终端挪用。 因为汇集或者办事器的出处,你或许必要重复点击泉币对和下载按钮,直到1999 年数 据显示为止。 其他种类以此类推。 11 第二章 MQL4 讲话 2.1 打算学问 正在练习MQL4 讲话前,最初要撤销本人的顾虑,不要被网上撒播的“写MQL4 标准必需 具备C 讲话根柢”给吓到,大众半人学不会编程便是本人把本人劝退的。 当然,练习谋略机讲话请求你必需有很好的逻辑思想才华。咱们可能通过下面的实质来 明了谋略机的逻辑。 整个的谋略机讲话都蕴涵两个语句,一个是要求(if )语句一个是轮回(for )语句。 If 语句顾名思义,满意要求就推行,不然就跳过。 for 语句顾名思义,便是正在肯定要求下重复推行规矩的指令,直到要求不满意。 2.1.1 EA 框架 尺度的EA 由5 个个别构成,辞别是变量预订义、EA 初始化标准、EA 停止标准、EA 执 行标准和自界说变量,如下图: 12 正在int init()的前面是EA 变量界说区,当EA 调入到图标时,必要做预筑立的参数都正在这 里界说。 正在int start()后面都是自界说函数区间。 2.1.2 目标框架 与EA 框架相通。区别如下: 1、 变量预订义个别的首行必需界说该目标显示的处所,主图和副图。 2、EA 初始化标准个别用来界说显示元素的属性。 3、EA 推行标准个别用来谋略目标值。 如下图: 13 2.1.3 坐标系 主动业务的推行是必要切确定位的,因而就必需创办起了解坐标系的观念。 图上的横坐标既可能是墟市时辰也可能是烛炬序号,正在编程的期间凡是操纵烛炬序号。 坐标系现实上是三维的,即时辰、价钱、开仓量,第三维开仓量凡是正在危机驾驭战略中 思索,例如呈现耗损加大开仓量,或者耗损20%平仓等等,因而咱们编写标准核心就正在时辰 和价钱这二维空间中。 14 创办起无误的坐标系观念是编程的根柢,由于你即将对时间目标举办理解,谋略开仓平 仓信号,以至正在图外上画线 内置变量与函数 MQL4 供给了众量的内置变量与函数,用来取值谋略。目前网上有很众的手册,但都是 翻译机械从原版英文手册主动翻译的,可读性极差。作家通过蕴蓄堆积众量的阅历加上本人的理 解,精选了个别常用的、适用的实质从新证据如下。 2.2.1 整数相除的办法 正在MQL4 的语法中有“+ - * /”四则运算,当你直接用“1/3”的期间,会返回0 。正在程 序中可能这么来杀青的: double i=(1*0.01)/(3*0.01); 这时变量i 才会返回你所要的值:0。 2.2.2 墟市函数 咱们每每能遭遇差别平台报价花式差别、滑点数差别、最小开仓量差别、墟市时辰差别 等等景况。这些数据都能通过墟市函数直接获取,云云才略给EA 带来了较大的实用性。 墟市函数挪用样板:界说最低价变量myLow,并获取最低价。 MarketInfo(symbol(),MODE_LOW) 获取目今泉币对的最低价 整个参数列外如下: 常数 描画 MODE_LOW 当日最低价 MODE_HIGH 价钱最高日 MODE_TIME 最终价钱转化时辰 (办事器显示时辰) MODE_BID 墟市最新买入叫价,即使你要卖出则根据这个价钱推行 15 MODE_ASK 墟市最新卖出叫价,即使你买入则根据这个价钱成交 MODE_POINT 价钱最小转化单元,比方USDJPY 为0.01,有的平台为 0.001 MODE_DIGITS 泉币业务价钱小数点位数,例如2 位、4 位、5 位 MODE_SPREAD 买入叫价与卖出叫价的差价,也叫“点差”。为业务商收 取的手续费。例这样刻必要买入 1 手,那么成交价便是 “卖出叫价”,反之则是“买入叫价”,成交后会与墟市 价钱造成一个差价 MODE_STOPLEVEL 平仓点差。筑立止损止赢点时只允诺正在这张订单价钱± 平仓点差局限以外。比方USDJPY 成交价为91.75,平仓 点差为5,那么止损止盈点筑立必需正在91.70~91.80 范 围以外 MODE_LOTSIZE 根本泉币的尺度手巨细,比方:USDJPY 为100000 美元, GBPUSD 为100000 英镑,EURUSD 为100000 欧元 MODE_TICKVALUE 1 手每点本币的代价,比方USDJPY 当价钱为91.90 时1 手每点代价$10.8841,当价钱形成91.88 时1 手每点价 值为$10.8838。UERUSD 恒定为10 欧元,GBPUSD 恒定 为10 英镑。这个值是业务商用来谋略平仓时谋略现实货 币的凭据 MODE_TICKSIZE 报价最小单元,与上面最小转化单元或许有差别,我不 能确定 MODE_SWAPLONG 众头仓位掉期。该当与结算息金闭系,闭于掉期的巨子 解 释 参 睹 d.html MODE_SWAPSHORT 空头仓位掉期。 MODE_STARTING 墟市先河日期 (预留常量),凡是为0 MODE_EXPIRATION 墟市时辰周期 (预留常量) ,凡是为0 MODE_TRADEALLOWED 业务允诺泉币对数目,整个泉币对都为1 MODE_MINLOT 最小允诺尺度手数,凡是为0.01 MODE_LOTSTEP 转化尺度手最小单元,凡是为0.01 MODE_MAXLOT 最大允诺尺度手数,凡是为10000 手 MODE_SWAPTYPE 掉期谋略办法. 0 - 点; 1 -根本泉币对; 2 - 意思; 3 - 货 币担保金,凡是为0 MODE_PROFITCALCMODE 赚钱谋略形式,0 –Forex (外汇); 1 –CFD (黄金); 2 – Futrues (期货) MODE_MARGINCALCMODE 担保金谋略形式,0 - Forex; 1 - CFD; 2 - Futrues; 3 - CFD for indices (黄金指数) MODE_MARGININIT 闭于1 尺度手的初始担保金需求,凡是为0 MODE_MARGINMAINTENANCE 闭于1 尺度手开仓的担保金,凡是为0 MODE_MARGINHEDGED 闭于1 尺度手的护盘担保金,凡是为5000 MODE_MARGINREQUIRED 闭于置备一个尺度手开仓的自正在担保金 MODE_FREEZELEVEL 冻结定单水准点。即使推行的价钱正在冻结水准点局限内, 定单将会被刊出或紧闭,这是业务商筑立的参数,凡是 16 为0 2.2.3 账户函数 AccountBalance( ) 获取账户余额 AccountCredit( ) 获取账户信用点数 AccountCompany( ) 获取业务平台公司名称 AccountCurrency( ) 获取账户通用泉币名称 AccountEquity( ) 获取账户净值 AccountFreeMargin( ) 获取账户免费担保金 AccountFreeMarginCheck( string 获取目今账户确当前价钱上正在指定开仓的仓位返回自正在 symbol, int cmd, double volume) 担保金,即最大可用担保金,价钱转化,该值跟着转化。 差别泉币对、差别价位,自正在担保金差别。 AccountFreeMarginMode( ) 正在目今开仓处所的账户上谋略免费担保金的形式。谋略 形式或许选取以下价钱值: 0 - 浮动profit/loss 不操纵 1 - 两个浮动赚钱和耗损正在开仓处所上操纵谋略自正在保 证金; 2 - 惟有赚钱值被操纵谋略,不思索目今开仓的耗损; 3 - 惟有耗损值被操纵谋略, 不思索目今开仓的耗损。 AccountLeverage( ) 获取账户杠杆比率 AccountMargin( ) 获取账户被占用的担保金总和 AccountName( ) 获取账户名称 AccountNumber( ) 获取账户账号 AccountProfit( ) 获取账户利润 AccountServer( ) 获取账户住址办事器名称 AccountStopoutLevel( ) 获取账户松手水准 AccountStopoutMode( ) 闭于松手水准返回的的运算形式。运算形式值如下: 0 - 谋略担保金和净值之间的百分比; 1 - 比力自正在担保金水准和绝对值。 2.2.4 墟市变量 Close[i] 获取第i 个烛炬的收盘价,即使i=0,便是获取目今价 High[i] 获取第i 个烛炬的最高价 Low[i] 获取第i 个烛炬的最低价 Open[i] 获取第i 个烛炬的开盘价 Time[0] 获取第i 个烛炬的时辰,这个值是用秒来谋略的 Volume[0] 获取第i 个烛炬的成交量 17 2.2.5 时辰函数 MQL4 内置时辰函数数值的最小读取单元是以每个新价钱(tick )为根柢。即使没有新 价钱呈现,则时辰数值不行获取。 Time[0]和TimeCurrent() 的数据类型为datetime,返回从1970 年1 月1 日0 点先河至今 累计的“秒”数,Time[0]返回目今烛炬时辰,TimeCurrent()返回目今新价钱(tick )时辰。 int Day( ) 返回目今办事器的日,如14,透露14 日 int DayOfWeek( ) 返回目今办事器的礼拜,如4 ,透露礼拜4 int DayOfYear( ) 返回目今办事器的年,如2010,透露2010 年 int Hour( ) 返回目今办事器的时,如10,透露10 点 int Minute( ) 返回目今办事器的分,如15,透露15 分 int Month( ) 返回目今办事器的月,如10,透露10 月 int Seconds( ) 返回目今办事器的秒,如34,透露34 秒 datetime TimeCurrent( ) 返回目今办事器最新价钱的秒,该数值透露从1970 年1 月1 日至今累计秒。 int TimeDay( datetime date) 返回日期类型参数中的日 int TimeDayOfWeek( datetime 返回日期类型参数中当周的天数,如4 ,透露当周的第4 date) 天 int TimeDayOfYear( datetime date) 返回日期类型参数中当年的天数,如 287,透露当年的 第287 天 int TimeHour( datetime time) 返回日期类型参数中当天的小时数,如 5,透露当天的 第5 个小时 datetime TimeLocal( ) 返回当地谋略机目今时辰,以秒为单元 int TimeMinute( datetime time) 返回日期类型参数中的分钟数,如17,透露第17 分钟 int TimeMonth( datetime time) 返回日期类型参数中当年的月数,如10,透露当年的第 10 个月 int TimeSeconds( datetime time) 返回日期类型参数中的秒数,如26,透露第26 秒 int TimeYear( datetime time) 返回日期类型参数中的年份,如2009,透露2009 年 int Year( ) 返回目今办事器的年份,如2010,透露2010 年 2.2.6 烛炬序列函数 咱们每每必要谋略n~n+i 个烛炬的最高最低价,因而这组函数用处特别广。 iBars(NULL,0) 获取目今图外中烛炬总数 iBarShift(NULL,0,D2010.09.01) 获取目今图外自2010-9-1 今后的烛炬总数 iHighest(NULL,0,MODE_HIGH,20,4) 获取从第4 个烛炬先河的20 个烛炬局限内最高价的烛炬 序号 iLowest(NULL,0,MODE_LOW,20,4) 获取从第4 个烛炬先河的20 个烛炬局限内最低价的烛炬 序号 18 2.2.7 业务函数 闭于业务函数详睹 MT4 的匡帮,简直用法正在本书后续的样板中会一再呈现。正在这里需 要夸大的是: 1、正在自界说目标中不行挪用 OrderSend(), OrderClose, OrderCloseBy, OrderDelete 和 OrderModify 业务函数。 2 、OrderClose, OrderCloseBy, OrderDelete 和 OrderModify 函数正在挪用前必需用 OrderSelect()号召拣选订单。 2.2.8 数学、三角函数 闭于数学函数详睹MT4 的匡帮。 值得夸大的是绝对值函数是用频率最高,咱们每每必要判决目今价是否到达了预期的止 盈止损,就假若用这个函数。下面是个例句: If (MathABS(Close[0]-OrderOpenPrice())StopLoss*Point;//即使价位到达止损 操纵这个语句的意旨就正在于咱们不必去管目今订单是买入类型仍是卖出类型。 2.2.9 数组函数 闭于数组函数详睹MT4 的匡帮。正在此夸大以下几个防备事项: 1、数组的最大维数最大为4 维。 比方界说一个数组为myArray[10,10,10,10],证据该数组有4 维,每维有10 个元素。 2、维数元素序号从0 先河谋略。 比方 myArray[0],就透露变量myArray 第0 个处所的数据。如若该数组界说为 10 个数 字,那么第10 个数字就该当透露为myArray[9]。 3、MQL4 不是专业的谋略机开荒讲话,正在数组操纵方面有不苛谨之处。例如正在编写指 标的期间,你预先界说了一个一维数组A[] ,这个方括号里为空透露可能操纵恣意众个元素, 现实正在挪用这个数组的期间,必需先界说元素数目,不然无法取值。 2.2.10 弹出信息框函数 【源代码】 int start() { // string TradeInformtion=Buy; PlaySound(alert.wav); int MsgBoxInfo=MessageBox(墟市发出业务指令:+TradeInformtion+\ n+是否业务?, 业务提示窗口,MB_YESNOMB_ICONWARNING); Print(返回新闻:+MsgBoxInfo); // 19 return(0); } 【源代码证据】 MessageBox 必要挪用mql 的函数,因而正在标准头必要增加一个语句,不然通只是编译, 该语句后面不要跟“; ”。 #include WinUser32.mqh 2.3 自界说目标 时间目标是一种用来辅帮判决行情的标准,根据特定的算法过程对墟市数据谋略后的值 正在屏幕上用线条、箭一级标注出来。 MQL4 规矩正在统一个图标中最众只可画8 品种型的线条或者符号,为了便当明了,咱们 正在此称为8 个图层。如下图: 20 自界说目标又分为两品种型,一个是正在主图中显示,如挪动均匀线,一个是正在副图中显 示,如MACD。 正在本书的样板中有一个目标的源代码,通过明了源代码比任何阐明都有用。 第三章 编程进阶 3.1 构思战略 3.1.1 业务历程的证据 21 下面是一个完备的业务流程图: 翻开业务图外 增加时间目标 巡视行情 是否满意入市 否 要求? 是 开仓 同时筑立止损、止盈 巡视行情 篡改止损/止盈价 否 位 是 是否满意平仓 否 是否必要篡改 要求 止损/止盈价位? 是 平仓 毫无疑义,整个的人都市根据上面这个流程举办外汇业务,同时取得一个结果:剩余或 者耗损。正在业务历程中咱们会遵循时间目标供给的信号决心买入或者卖出,再遵循时间目标 供给的信号决心篡改止损止盈点,最终决心平仓出市。 坚信整个的人都有一个合伙的资历:当账面呈现浮动剩余的期间,会以为剩余将延续扩 大而没有根据计算赢利平仓。当行情反向运转,剩余缩减的期间就会抚慰本人,行情会掉头 的再等等,又没有实时赢利平仓。行情往往会跟你的美丽盼望相悖而驰,当账面呈现耗损抵 达止损点的期间,如故理思行情回顾,以至抚慰本人说不要紧,这一点点我亏得起,结果自 然显而易见。 每位参加外汇业务的人都有一套本人熟谙的目标系统来辅帮决定,除此以外另有一套适 合本人的资金盘子计算。每一次做单都必要思索账户担保金和下单量,开仓后呈现的浮动亏 损与剩余景况又成为了下一步举措的紧张参考,奈何从新筑立止损止盈价位,用众大的补仓 量等等,整个这些忖量和举动的宗旨仅仅是确保账户资金的平安,杀青稳步剩余,避免呈现 爆仓。我们的老祖宗说过:留得青山正在不愁没柴烧。 坚信整个的人都清爽要根据计算推行操作,但往往决定的期间忘掉了计算,这便是人性 22 的弱点,谁都降服不了,包含我也遁脱不了,我每每云云评判本人和中邦的汇友:亏得起, 赢不起。因而,咱们不困难出这个结论:操纵EA,或许回避人性的弱点,让操盘尤其尺度, 尤其肃穆根据计算推行。 从业务流程图的理解咱们发掘,一朝确定了时间目标、开仓量、补仓量、止损价位、止 盈价位等等计算后,便是根据业务逻辑推行了,全历程十足可能不必要人工参加,证实 EA 可能匡帮咱们主动盯盘,遵循拟订好的战略推行开仓、平仓、挂单、篡改止损止盈价位等等 各式举措,是十足可行的。 咱们正在构思战略时起码要归纳思索以下三个方面: 价:入市的价位、止损止盈的价位 量:遵循账户余额决心开仓、补仓的量 信号:遵循时间目标决心入市(出市)及其对象 此刻以“红狼教材-EURUSD-M30”为例,先河构思战略。 3.1.2 时间目标的拣选 但凡炒外汇的人都市操纵极少时间目标并将其整合,举动判决入市出市的参考凭据。 MQL4 讲话供给了 29 个默认时间目标,囊括了险些整个常睹操纵的目标。网上也有人供给 1000 个时间目标的,时间目标的用意是供给判决凭据,咱们险些没有需要过众明白和练习 默认值目标以外的,也不必深远研讨时间目标是奈何编造的,只须懂得时间目标是否发出了 操作信号即可。 闭于时间目标,可能参考我编写的《轻松研读MT4 时间目标》一文。 3.1.3 危机驾驭的战略 对行情走势的判决之后,咱们必要着重思索危机驾驭。是重仓入市仍是轻仓入市都是有 讲求的,你不行输了一单就猖獗加倍反向做单,那样只会加疾你账户爆仓。 开仓下单量 开仓下单量谋略公式如下: 账户余额×危机系数 开仓下单量 1尺度手业务量 证据: 杠杆 1:100; 1 尺度手业务量为125000 美元; 危机系数可遵循本人的接受才华筑立,凡是咱们设定危机系数为5,系数大危机越高。 假设账户余额为10000 美元,列外谋略如下: 危机系数 下单量(手) 1 0.08 2 0.16 3 0.24 23 4 0.32 5 0.40 6 0.48 7 0.56 8 0.64 9 0.72 补仓下单量 正在业务历程中,即使行情对象无误,账户可用担保金会跟着扩展,为了不华侈一轮好 的行情,咱们必要做补仓管造,以赚取更大的利润。或者行情呈现了反向,为了淘汰耗损, 加大剩余概率,也可能思索反向补仓。 补仓量的巨细是遵循账户净额来确定的,即使账户净额大于账户余额,证据账面剩余, 补仓量可能稍微加码,反之则必要淘汰。 谋略补仓下单量也筑立一个系数,谋略公式如下: 耗损订单数目 补仓下单量 开仓下单量 1- 补仓系数 比方,补仓系数为3,耗损订单数目为1,那么这时补仓下单量便是开仓下单量的2/3 。 正在后面的逻辑理解章节中,会禁止该公式呈现负数,也会管造补仓系数为0(分母为零) 的景况,不然正在标准运转时会呈现过错。 价钱摇动驾驭 遵循时间目标咱们发掘了入市信号,遵循帐户余额咱们选定了下单量,就可能开仓了, 此时止损止盈价钱的筑立是必需的,尤其当你启动了EA 后分开汇市,就显得尤其紧张。 思索到汇市变革众端,危机难以驾驭,红狼教材- 以M30 为最小时辰周期来思索操作策 略的,宗旨便是为了消除小周期(M1、M5、M15)墟市呈现的搅扰信号。当然这只是阅历 数据,即使你的账户是Mini 型的,杠杆又大于100,那么就要量体裁衣思索参数的筑立。 纵观外汇数据图外不难发掘盘整行情众于单边行情,那么咱们就必要欺骗趋向类目标 确定单边行情的到来,同时欺骗震撼类目标过滤掉窄幅震撼行情。 驾驭价钱摇动没有绝对的区间,这是个睹仁睹智的数据。 3.2 逻辑理解 讲及逻辑推行,这但是谋略机标准的强项,一个拟订好的逻辑标准交给谋略机要比人工 的推行力强得众。 跟着外汇EA 化水平越来越高,很众人先河切磋人工智能的谋略模子,试图让谋略机具 备练习才华,来周旋瞬息万变的汇市。迩来肖似网格、云谋略等等人工智能专业术语充分了 总共EA 天下。 咱们不是专家,咱们的宗旨是足够欺骗谋略机的逻辑推行才华来辅帮咱们的决定,这就 24 简陋了。 上一章针对外汇业务流程及危机驾驭的阐明可能取得这么一个结论:外汇业务行径中有 99%是逻辑行径,剩下的 1%是突发性事宜成分,而周旋突发性事宜的处置计划便是筑立合 理的或许接受的止损空间,这照旧可能归类到逻辑行径。 本章着重针对业务行径和业务战略举办逻辑化的标准化的理解,旨正在为下一章编造代码 拟定一个切确详明的流程。 学会流程理解是编程的需要要求。 3.2.1 EA 逻辑框架 MQL4 讲话为EA 拟订了一个固定的框架,睹下图: 第一个别 参数界说模块 第二个别 初始化界说模块 第三个别 预订义函数模块 第四个别 操盘驾驭模块 墟市呈现新的 价钱转化 参数界说模块安排目今 EA 的属性,包含 EA 运转前必要人工界说的极少墟市必需的参 数(如止损、止盈点等),还可能包含极少外部函数库的挪用和图外根本属性(如线型、颜 色等)的界说。 初始化界说模块正在EA 运转时会先推行一次,凡是用于举办和图外相闭的极少属性的设 置,也可能对后续标准中必要挪用的变量给出初始值。 预订义函数模块正在战略参数被篡改后会推行一次,紧接着再推行初始化界说模块,战略 初度导入图外时不推行该模块代码。 操盘驾驭模块是EA 主模块,当墟市呈现每一次价钱转化时都市推行一次。 3.2.2 操盘驾驭模块流程图 25 正在图外上显示墟市新闻 判决运转境遇 否 退出恭候下一个价钱 确定能否下单 是 时间目标取值 遵循时间目标及持仓单 否 数目景况判决是否开仓 是 未平仓订单 遵循持仓订单盈亏景况判决 否 是否篡改止损止赢 是 篡改止损止赢 杀青动态追踪止损止盈 仔细的人会发掘,上面这个流程图中竟然没有平仓的举措?这是个意思的话题,其它 找时辰缓慢忖量回味吧。 3.3 汗青数据回测 汗青数据回测是主动化业务验证EA 标准逻辑的一个很紧张的闭键。 MT4 供给了一个功效宏大的编造测试模块,欺骗汗青数据测试EA 战略的结果并提交一 份详明的测试通知,你可能遵循通知调度EA 的战略和参数,重复举办,以期到达最佳的模 式。 汗青数据蕴涵了开盘价、收盘价、最高价、最低价、成交量、时辰等 6 项目标,分为 M1、M5、M15、M30、H1 、H4、D1、W1 、MN 等9 个周期。 26 3.3.1 先河一个EA 测试 1、拣选一个EA 加载到图外 2、点击东西栏的“智能业务”松手智能业务 3、按F6,翻开测试窗口 测试窗口各项证据如下: 告终整个筑立后,按“先河”,编造即先河测试: 27 测试完毕后,咱们可能防备查看测试通知标签: 28 3.3.2 测试通知中各项目标证据 测试柱数 汗青数据烛炬的总数 Bars in test 汗青数据最小模子是M1,蕴涵了4 个即时值格(开盘价、收盘 即时值数目 价、最高价、最低价),这4 个价钱用来模仿墟市正在1 分钟内发 Ticks modelled 出了4 个新价钱(tick )。因而,M5 时辰周期每个烛炬就蕴涵了 20 个即时值位。该目标透露正在造依时辰周期内即时值位总数。 ModellingQuality = ((0.25*(StartGen-StartBar) + 0.5 *(StartGenM1-StartGen) + 0.9 *(HistoryTotal-StartGenM1)) / (HistoryTotal-StartBar))*100%; 个中: HistoryTotal 节造时辰段里汗青数据烛炬总数 StartBar 先河测试烛炬的数,即使测试数据从图外的第一个蜡 复盘模子的质料 烛先河,则总数减去101 Modelling quality StartGen 设定测试时辰段内先河的烛炬序数 StartGenM1 设定测试时辰段内先河的1 分钟烛炬序数 闭于迩来时辰局限数据库模子的先河和迩来时辰局限数据 模子的先河保存重量系数0. 25 的区别; 闭于迩来时辰局限数据库模子的先河和迩来时辰局限数据 模子的先河正在原有分钟内保存重量系数0. 5 的区别; 正在原有时辰上模子的先河和汗青数据的末尾之间重量系数 0.9 的区别。 总净剩余 净赚钱值和净耗损值之间的差 Total net profit TotalNetProfit = GrossProfit - GrossLoss 总赢利 整个赚钱业务总数的净赚钱值 Gross profit 29 总耗损 整个耗损业务总数的净耗损值 Gross loss 剩余比 正在设定测试时辰内净赚钱值与净耗损值的比 Profit factor ProfitFactor = GrossProfit / GrossLoss 预期剩余操纵以下公式举办谋略: Expected Payoff = (ProfitTrades / TotalTrades) * (GrossProfit / ProfitTrades) - (LossTrades / TotalTrades) * (GrossLoss / LossTrades) 预期剩余 个中: Expected payoff TotalTrades 业务总数; ProfitTrades 赚钱业务总数; LossTrades 耗损业务总数; GrossProfit 净赚钱业务总数; GrossLoss 净耗损业务总数 绝对耗损 AbsoluteDrawDown = InitialDeposit –MinimalBalance AbsoluteDrawDown 最大借钱值和目今最小借钱值的最大差异: MaximalDrawDown = Max of (Maximal Peak - next Minimal Peak) 最大耗损 最大借钱百分比的比率等于最大借钱和它的各自代价的商: MaximalDrawDown MaxDrawDown % = MaxDrawDown / its MaxPeak * 100% 正在通知中显示的其他结果可能行使简陋的数学办法谋略 业务单全部 正在测试里的业务总数 Total trades 卖单赢利百分比 卖空仓位总数额和个中赚钱百分比 Short positions (won %) (卖空仓位/卖空仓位总数*100% ) 买单赢利百分比 看涨仓位总数额和个中赚钱百分比 Long positions (won %) (看涨仓位/看涨仓位总数*100% ) 剩余业务(占总百分比) 赚钱业务总数和业务总数的百分比 Profit trades (% of total) (赚钱业务/业务总数*100% ) 耗损业务(占总百分比) 耗损业务总数和业务总数的百分比 Loss trades (% of total) (耗损业务/业务总数*100% ) 最大赢利业务 赚钱业务中获取的最大赢利 Largest profit trade 最大耗损业务 耗损业务中获取的最大耗损 Largest loss trade 均匀赢利业务 赚钱业务中赚钱的均匀数 Average profit trade (净赚钱值 / 赚钱业务) 均匀耗损业务 耗损业务中耗损的均匀数 Average loss trade (净耗损值 / 耗损业务) 最大连气儿赢利金额 Maximum consecutive 赚钱总数和业务的赚钱系列中最大连气儿剩余 wins (profit in money) 最大连气儿耗损金额 耗损总数和业务的耗损系列中最大连气儿耗损 30 Maximum consecutive losses (loss in money) 最众连气儿赢利次数 Maximal consecutive 正在业务总数中最大连气儿业务的赚钱 profit (count of wins) 最众连气儿耗损次数 Maximal consecutive loss 正在业务总数中最大连气儿业务的赚钱 (count of losses) ) 均匀连气儿赢利数 赚钱系列中连气儿剩余的均匀数 Average consecutive wins 均匀连气儿耗损数 耗损系列中连气儿耗损的均匀数 Average consecutive losses 3.3.3 通知中颜色的寓意 3.4 常用自界说函数 MQL4 供给了众量的根本函数和语句,然而咱们正在编程中发掘良众的对行情的判决与操 作都是反复的,例如判决目标疾慢线是否交叉,这就必要用到自界说函数来简化主标准。 自界说函数凡是放正在标准的后面,函数花式与证据如下: 31 正在标准中挪用该自界说函数的例子如下: If (myIndicators(“金叉”,Close[0]))=”Sell” 将自界说函数参数写进去,就会取得按预订算法返回一个结果。 3.4.1 最大开仓量谋略 担保金的合理操纵是危机驾驭的紧张法子,因而谋略最大开仓量就显得十分紧张。正在许 众危机驾驭阐明中都市有这么一段肖似的文字描画:“开仓量为余额的 5% ”。本来这种说法 极其的不切确,以至会导致因开仓量驾驭不肃穆而带来无谓的耗损。 差别泉币对的1 尺度手自正在担保金是差别的,况且即使你有持仓订单,因为价钱变革导 致账户净值也正在变革,那么开仓量(手)也会爆发变革。 以下代码谋略了正在目今泉币对、目今价钱的条件下,操纵全盘自正在担保金(本币元)的 最大开仓量(手): double myLots=(AccountEquity()/MarketInfo(Symbol(),MODE_MARGINREQUIRED)); 个中 myBuyLots 为买入订单的最大开仓量(手),mySellLots 为卖出订单的最大开仓量 (手)。谋略办法是: 账户净值 开仓量 1尺度手自正在担保金 以是,无误的5%开仓量该当为:myLots ×5% 。 咱们来看看通历程序谋略显示的结果: 从上图可能看出,最大开仓量谋略到了小数点后面8 位,而现实操盘时的开仓量最小为 0.01 手,即使你直接操纵这个数据,标准会报错,因而还必要通过内置函数将开仓量截止(不 用四舍五入)到小数点后面2 位: myLots =NormalizeDouble(myLots,2) OrderSend(Symbol(),OP_SELL, myLots ,Bid,0,0,0);//开一张卖出订单 32 3.4.2 新单开仓 读者也许很怪异,编造中一条号召就能搞定,奈何还必要做这个函数呢?作家总结标准 编写阅历得出操纵这个这个自界说函数能大大降低编程速率和质料。 正在有些ECN 平台上,欺骗EA 新开仓是不允诺筑立止损止盈价的,正在这里指挥读者,使 用本函数尽量不要带止盈止损价钱。 【函数代码】 /* 函数:新单开仓 参数证据: 开仓类型:Buy 买入订单、Sell 卖出订单、 myLots 开仓量、myLossStop 止损点数、myTakeProfit 止盈点数 */ void iOpenOrders(string myType,double myLots,int myLossStop,int myTakeProfit) { int mySPREAD=MarketInfo(Symbol(),MODE_SPREAD);//获取墟市滑点 double BuyLossStop=Ask- myLossStop*Point; double BuyTakeProfit=Ask+myTakeProfit*Point; double SellLossStop=Bid+myLossStop*Point; double SellTakeProfit=Bid-myTakeProfit*Point; if (myLossStop=0)//即使止损参数为0 { BuyLossStop=0; SellLossStop=0; } if (myTakeProfit=0)//即使止赢参数为0 { BuyTakeProfit=0; SellTakeProfit=0; } if (myType==Buy) OrderSend(Symbol(),OP_BUY,myLots,Ask,mySPREAD,BuyLossStop,BuyTakeProfit); if (myType==Sell) OrderSend(Symbol(),OP_SELL,myLots,Bid,mySPREAD,SellLossStop,SellTakeProfit); } 【挪用语句证据】 iOpenOrders(Sell,0.1,25,40); 新单开仓只必要正在函数后面跟4 个参数,辞别是业务类型 (Buy 和Sell )、开仓量、止损 点数、止盈点数,四个参数的数据类型辞别为string 、double、int、int 。 例句中参数”Sell”透露开空头订单,0.1 透露开仓量为0.1 ,25 为止损点数,40 为止盈点 数。 即使止损、止盈点数都筑立为0 ,结果是新开订单不筑立止损止盈。 33 3.4.3 持仓单平仓 正在编程中,每每必要反复编写平仓代码,作家特地编写这个函数,只必要一条号召,就 能杀青众头订单、空头订单、剩余订单、耗损订单以及全盘订单的平仓举措,众量淘汰了重 复做事。 【函数代码】 /* 函数:持仓单平仓 平仓类型:Buy 众头订单、Sell 空头订单、Profit 剩余订单、Loss 耗损订单、All 全盘 订单 */ int CO_cnt;//订单计数器 void iCloseOrders(string myType) { if (OrderSelect(OrdersTotal()-1,SELECT_BY_POS)==false) return(0);//拣选目今持仓订单 if (myType==All) { for(CO_cnt=OrdersTotal();CO_cnt=0;CO_cnt--) { if(OrderSelect(CO_cnt,SELECT_BY_POS)==false) continue; else OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0); } } if (myType==Buy)//平掉整个众头订单 { for(CO_cnt=OrdersTotal();CO_cnt=0;CO_cnt--) { if(OrderSelect(CO_cnt,SELECT_BY_POS)==false) continue; else if (OrderType()==0) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0); } } if (myType==Sell)//平掉整个空头订单 { for(CO_cnt=OrdersTotal();CO_cnt=0;CO_cnt--) { if(OrderSelect(CO_cnt,SELECT_BY_POS)==false) continue; else if (OrderType()==1) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0); } } if (myType==Profit)//平掉整个剩余订单 { 34 for(CO_cnt=OrdersTotal();CO_cnt=0;CO_cnt--) { if(OrderSelect(CO_cnt,SELECT_BY_POS)==false) continue; else if (OrderProfit()0) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0); } } if (myType==Loss) { for(CO_cnt=OrdersTotal();CO_cnt=0;CO_cnt--) { if(OrderSelect(CO_cnt,SELECT_BY_POS)==false) continue; else if (OrderProfit()0) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0); } } } 【挪用语句证据】 iCloseOrders(All); 持仓单平仓只必要正在函数后面跟一个参数,参数类型为String 。 参数规矩如下: Buy-众头订单、Sell-空头订单、Profit-剩余订单、Loss-耗损订单、All-全盘订单。 3.4.4 追踪止损 【函数代码】 /* 函数:挪动止损 参数证据:myStopLoss 预设止损点数 功效证据:遍历整个持仓订单,当持仓单赢利到达止损点数时,篡改止损价位 */ void iMoveStopLoss(int myStopLoss) { int MSLCnt;//订单计数器 if (OrderSelect(OrdersTotal()-1,SELECT_BY_POS)==false) return(0);//拣选目今订单 if (OrdersTotal()0) { for(MSLCnt=OrdersTotal();MSLCnt=0;MSLCnt--) { if (OrderSelect(MSLCnt,SELECT_BY_POS)==false) continue
职业时间学校医疗用具保卫与处理+智能医疗装置时间+医用电子仪器时间专业人才计划.docx
B∕T 3098.9-2020 紧固件呆滞机能 有用力矩型钢锁紧螺母(高清版).pdf
原创力文档创筑于2008年,本站为文档C2C业务形式,即用户上传的文档直接分享给其他用户(可下载、阅读),本站只是中心办事平台,本站整个文档下载所得的收益归上传人整个。原创力文档是汇集办事平台方,若您的权力被侵吞,请发链接和闭系诉求至 电线) ,上传者
广告位 |