外汇EA编写教程:使用MQL5和MQL4实现的选择和导航实用程序:添加家庭作业选项卡并保存图形对象外汇EA编写教程:操纵MQL5和MQL4实行的选拔和导航适用顺序:增添家庭功课选项卡并保全图形对象
总结 正在前一篇著作中,咱们开垦了一个适用的顺序来挑选具有妥贴入口点的种类。咱们还进修了何如依照各类参数对种类实行分类,以及何如操纵特意策画的按钮浏览种类。然而,正在种类选拔上,环境并
正在前一篇著作中,咱们开垦了一个适用的顺序来挑选具有妥贴入口点的种类。咱们还进修了何如依照各类参数对种类实行分类,以及何如操纵特意策画的按钮浏览种类。然而,正在种类选拔上,环境并不乐观。目前,咱们务必正在一张纸上写下所选金融产物的代码,这对地球上的丛林物种有着十分负面的影响。
正在本文中,咱们将偏护树木免遭砍伐,并将进修何如自愿保全正在图外上创筑的图形对象,号召您将不必接连创筑它们。
最先,咱们简化了适用顺序到MQL4的迁徙。正在前一篇著作中,咱们用另一个代码模块调换了一个代码模块,以使顺序正在MQL4形式下使命。现正在咱们面对的职业特别困苦。咱们可能用一种措辞(比如MQL5)实行开垦,不绝创造哪些代码块正在MQL4中不起功用,然后用无误的代码调换它们,或者咱们可能同时开垦两套顺序版本:MQL5和MQL4。
两种选拔都不是最优的。咱们该当不绝地调换正在MQL4(每个版本)中不使命的模块,或者记住咱们正在适用顺序中窜改的代码个人,以便它们可能用另一种措辞实行。
因而,咱们将采用分歧的办法。MQL5和MQL4都声援前提编译指令,应允奉行一个代码模块或有前提地奉行另一个代码模块。正在这些指令中,依照目下的MQL措辞版本奉行一个构制。其重要语法如下:
默认环境下,一齐按钮都已按下,这意味着与咱们的过滤器立室的一齐种类的列外将显示如下:
用于存储选项卡实质的数组。最先,咱们增添变量来存储选项卡的实质。以前,咱们惟有一个选项卡的实质存储正在arrpanel1变量中。咱们将向其他卡选拔增添相像变量:
辅助变量。另一个更改涉及panel1val变量。咱们已将其名称改为panelval。这是一个纯粹的点缀性厘正案,但该当谨慎。
cur_panel参数还增添了包罗目下激活选项卡的索引。变量类型为UChar。这意味着它恐怕须要一个介于0和255之间的值,这就足够了,由于咱们惟有四个选项卡。
默认环境下,第一个选项卡(数组中的索引0)被激活。因而,咱们向OnIIT()函数增添一个字符串,将变量赋值为0。末了,OnInit()函数的最终形态是:
由于咱们有一行选项卡,是以须要以某种格式显示它。为了实行它,咱们创筑了一个零丁的函数。代码如下:
; iarrPanels[cur_panel].Total(); i++ ){
( btn_leftbtn_right-BTN_WIDTH ){ btn_line++; btn_left=
( checkSYMBwithPOS(arrPanels[cur_panel].At(i)) ){
用于向卡片选拔增添种类的按钮。现正在,咱们须要向所选选项卡增添种类。咱们将正在掀开的图外页上操纵新按钮“增添长”、“增添短”和“增添界限”来奉行此操作。
即使您还记得,正在上一篇著作中,咱们实行了单击所需变体按钮的本事。单击某个种类后,将掀开一个图外,正在左下角有一个按钮区域,用于导航一切种类列外。咱们正在这个区域增添按钮。依照项目是否正在妥贴的选项卡上,按钮会将其增添或从选项卡中删除。
// 即使从选卡中删除的按钮被按下,最先,删除种类,并再次掀开种类图外
// 即使增添到选项卡的按钮被按下,则最先增添种类,然后掀开下一个种类图外
Deltopanel函数最先从所选选项卡中删除种类,然后更新启动适用顺序的图外上的一齐种类按钮,或者只更新题目按钮:
){ panelval--; } arrPanels[j].Delete(i);
(num==cur_panel){ initial_btn_line();
show_panel_buttons(); show_symbols(); }
正在利用顺序启动之间保全选项卡实质。即使咱们不料合上EA会发作什么?那咱们的整个竭力都将徒然。咱们要从头发端增添一齐实质吗?让咱们确保增添到“家庭功课”选项卡的项目列外可能保全到文献中,并正在稍后从头掀开时还原。
出于某种因由,咱们操纵carraystring类型的对象来存储所选种类的列外。这种对象的很众利益之一是圭臬办法,它可能轻松地将数组的一齐实质发送到文献中,并从文献中规复数组。正在合上适用顺序之前,咱们操纵它们将数组的实质保全到文献中。换句话说,咱们该当将对新的savepanels函数的挪用增添到圭臬的ondeinit()函数中:
为了不散开谨慎力,纠合精神正在须要的种类上,可认为分歧邦度的商场和外汇商场创筑零丁的参数集,并正在须要时加载每个配置文献。这很简略。只须要几秒钟。一、二、一、二、二、二、三、二、三、二、三、三、四、四、四、四、四、六、四、四、六、四、四、四、
为了查看所利用的参数集,咱们将增添CMT输入,正在个中咱们谨慎到对目下被掌管的商场的注解:
除了识别目下参数集除外,CMT输入还可能助助咱们正在“家庭功课”选项卡平分离种类列外。真相,即使咱们正在功课卡上加上各类各样的东西来掌管美邦商场,咱们掌管俄罗斯股票时就不须要它了。配置文献有分歧的参数集,还应为功课卡选拔供应零丁的列外。
为了实行它们,咱们务必稍微窜改将数组保全到文献中的代码,并从中规复它们。咱们思索将窜改后的函数保全到文献中行为示例:
咱们须要管理的另一个荆棘是掌管图外,以自愿保全和规复咱们正在图外上创筑的图形对象。即使咱们正在图外上配置了一个级别,咱们生气正在合上图外窗口并从头掀开它时再次看到它。每次咱们掀开众样性图外,咱们一定不允诺从头定位几十个级别。
到目前为止,咱们编写的代码正在mql5和mql4中同样有用。然则,对付保全和规复图形对象的函数,环境并非这样。正在mql4中,图形对象类型及其单个属性由数字类型的常量形容,而mql5则为此利用罗列。这即是为什么很难将它们保全到文献中并还原它们。起码正在大凡旨趣上我不行措置这个职业。保全mql4图形对象的功效对咱们更有助助。外面上,它可能保全任何图形对象(我没有对一齐对象实行测试,是以恐怕会有不同)。MQL5只应允它操作秤谌线、标签和文本字段。即使须要保全其他图形对象,则务必我方实行它们。
由于MQL4更容易保全图形对象,是以让咱们从该措辞中的函数发端。将图形对象保全到文献的函数:
图外保全功效的挪用将增添到图外导航按钮的相应下推相应代码模块:下一个图外、上一个图外和Los图外,以及功课卡片选拔中增添/删除种类的按钮。
正在前一篇著作中,咱们酿成了一组输入,应允用户按代价、ATR等对种类实行排序。然则,与finviz.com网站过滤器比拟,这些功效显得惨白无力。最首要的是,MQL4不行依照实践生意量对种类实行排序,这是很众基于级其它生意政策中十分首要的目标。finviz.com应允您依照股票的均匀生意量和当天的生意量对股票实行排名。
增添从输入参数获取种类列外的本事。要操纵第三方种类列外,咱们将向适用顺序增添三个附加输入:
即使代庖的名称与官方代码分歧,咱们只须要symbols前缀和symbols后缀参数。极少经纪人添加道。美邦股票的美邦后缀,欧洲股票的欧盟后缀,以及极少经纪人正在一齐代码中增添M后缀。经纪人也可能正在股票代码的初步增添。
增添从文献导入种类的功效。一提到这一点,我将磋议从进口商品中进口种类时遭遇的题目。这个题目涉及到最大字符串长度。操纵输入时,咱们最众只可输入15-20个代码。因而,输入只可用于有限数目的金融产物。
因而,除了输入外,还可能正在符号中放入须要的变种。正在文献文献夹中创筑的txt文献。
第一个模块查抄文献或输入中是否有变体。即使是,请用它们填充结果数组。此数组增添到OnInit()函数:
咱们仍旧做了良众使命使咱们的公用奇迹特别适用。现正在咱们可能很容易地操纵它,遗忘纸条记本了。我生气这个星球上的丛林能浏览到这一点。=)
外汇EA编写教程:基于框架和 C# 开垦图形界面(第二个人):别的的图形元素
外汇EA编写教程:正在生意中利用 OLAP(第 1 个人):正在线解析众维数据
外汇EA编写教程:正在生意中利用 OLAP(第 2 个人):可视化交互式众维数据解析的结果
[解析]10月30日财经早餐:英邦议会照准提前大选,黄金跌至一周低点,等候美联储决议上场
大反转!非农就业数据“失真”,特朗普“干得很好”到底是个玩乐,机警下周商场大的振动
OPEC+缩小减产加重需求操心,但两巨头夸大不扩展出口!众空信息对撞,机警油价剧震
[解析]4月25日财经早餐:美元桂林一枝冲破98合口,欧元崩塌商品泉币全线重挫
11月30日外汇生意指示:鲍威尔称新毒株扩展经济危险,美元冲高回落商品泉币上涨
FXCG 相关资讯