推荐回答
一、MT4自定义指标保存在C:\ProgramFiles\MetaTrader4\experts\indicators这个目录中,该目录中主要有二种类型的文件,一种是mq4文件,这是MT4自定义指标的源码文件,是一种高级语言文件,可以人工编写修改,机器不能直接执行,但能在MT4启动时自动编译为ex4可执行文件。另一种就是ex4文件,这是MT4自定义指标的可执行文件,由mq4文件编译得到。mq4文件必须编译为ex4文件才能被MT4执行。但ex4文件是机器码文件,人工不可修改另外还有一个文件是mqlcache.dat,它用来保存目录中的文件信息,如果MT4无法自动编译,只要删除此文件即可解决问题mq4文件编译为ex4可执行文件有两种方法:1、MT4启动时,会自动把此目录中的mq4文件编译为ex4文件。2、用MQ语言编辑器打开mq4文件,点一下“编写”按钮,即可生成ex4文件二、下载保存mq4文件、ex4文件在论坛上我们经常看到有mq4文件、ex4文件可供下载,我们只要把它们保存到C:\ProgramFiles\MetaTrader4\experts\indicators这个目录,也就是下面这个目录中,就可以了。如果下载的是ex4文件,那可以直接调用;如果是mq4文件,则需要重启动MT4,让系统自动编译生成ex4可执行文件。如果下载的是rar、zip等类型的压缩文件,还必须下载后解压到此目录才能使用。三、将源码保存为源码文件在论坛上,我们也经常能看到指标源码贴在网页上,但没有mq4、ex4等文件可以下载,只能复制源码。此时需要我们自己动手将源码保存为源码文件,那也没关系,非常地简单,多点几下鼠标就搞定。1、打开MQ语言编辑器2、在MQ语言编辑器中新建一个文件,文件名一定要输,别的随便操作都没关系。3、删除新文件里面的所有内容,成为一个空文件,4、接着我们就可以将网页上源码复制粘贴进来试着点一下“编写”,如果左下角出现“0错误,0警告”,那说明源码没问题,编译通过了,成功生成了ex4可执行文件5、还有很重要的一点,就是要把源码文件保存到正确的目录中保存后,再点一下编写。到此,源码保存完成。当然,我们也还有另的办法:可以打开一个原已存在的mq4文件,然后另存为你需要的文件名,再删除文件中的所有内容成为空文件,把网页上的源贴到文件中保存即可也可以在记事本中新建一个文件,把网页上的源码贴进记事本,然后取个文件名保存到上面提到的目录,不过文件后缀必须输入mq4,保存类型选择“所以文件”四、mt4程序调用自定义指标这非常简单。
黄盛忠2019-11-03 16:36:22
提示您:回答为网友贡献,仅供参考。
其他回答
-
这个问题无法详细回答。一般方法是根据你给出的MT4公式及你的相应需求,重新编写指标。如果你给的不是公式,而是EA,或是其它公式,还要去了解这个代码的思路和算法、功能,再结合你的需求进行改编。
窦连江2019-11-03 17:59:46
-
添加指标的话就是把模板或指标放到数据文件夹里。你下载一个报警指标复制粘贴到数据文件夹就可以。
龚家风2019-11-03 16:54:22
-
请问谁知道MT4中的ZIGZAG这个指标的代码是什么意思?这个指标的算法是怎么来的。
车广宇2019-11-03 16:18:52
相关问答
系统的定时关机TOKEN_PRIVILEGEStkp;HANDLEhToken;if!OpenProcessTokenGetCurrentProcess,TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken{MessageBox"OpenProcessTokenfailed!";}LookupPrivilegeValueNULL,SE_SHUTDOWN_NAME,&tkp.Privileges.Attributes=0;AdjustTokenPrivilegeshToken,FALSE,&tkp,0,PTOKEN_PRIVILEGESNULL,0;ifGetLastError!=ERROR_SUCCESS{MessageBox"AdjustTokenPrivilegesdisablefailed.";}ExitWindowsExEWX_SHUTDOWN,0;//开始关机程序只运行一个实例,并激活前一个实例具体实现:1、在程序初始化的时候InitInstance枚举所有的窗口,查找本程序的实例是否存在2、在主窗口初始化的时候在本窗口的属性列表中添加一个标记,以便程序查找.部分关键代码1、在App的InitInstance中枚举所有窗口,查找本程序实例HWNDoldHWnd=NULL;EnumWindowsEnumWndProc,LPARAM&oldHWnd;//枚举所有运行的窗口ifoldHWnd!=NULL{AfxMessageBox"本程序已经在运行了";::showWindowoldHWnd,SW_SHOWNORMAL;//激活找到的前一个程序::setForegroundWindowoldHWnd;//把它设为前景窗口returnfalse;//退出本次运行}2、添加EnumWndProc窗口过程函数://添加的标识只运行一次的属性名CStringg_szPropName="YourPropName";//自己定义一个属性名HANDLEg_hValue=HANDLE1;//自己定义一个属性值BOOLCALLBACKEnumWndProcHWNDhwnd,LPARAMlParam{HANDLEh=GetProphwnd,g_szPropName;ifh==g_hValue{*HWND*lParam=hwnd;returnfalse;}returntrue;}3、在主窗口的OnInitDialog中添加属性//设置窗口属性SetPropm_hWnd,g_szPropName,g_hValue。