初学者的问题 MQL5 MT5 MetaTrader 5 - 页 617

 
Alexander Kharlamov:

你好!

MT4有一个命令,如果(IsTesting()

在MT5中是否有类似的情况?

我想问你几个问题,谢谢你。

P.S. 还有一件事--在正常模式下,我的专家顾问写了一个日志文件,但如果我在MT5的测试器中运行它,我在通常的测试器文件夹中没有看到它,因为它在M4中是这样。

选择你需要的 东西。

enum_mql_info_integer

识别器

描述

财产类型

mql_memory_limit

MQL5程序动态内存的最大可能大小,单位:MB

䵮䵮

mql_memory_used

一个MQL5程序使用多少内存(MB)?

䵮䵮

mql_program_type

mql5-程序的类型

enum_program_type

mql_dlls_allowed

允许使用该运行中的程序DLL

bool

mql_trade_allowed

允许 运行项目进行交易

bool

mql_signals_allowed

允许使用本程序信号工作

bool

MQL_DEBUG

调试模式下运行程序的标志

bool

MQL_PROFILER

在代码剖析模式下运行程序的标志

bool

MQL_TESTER

在测试器中运行一个程序的标志

bool

mql_optimization

优化过程中运行程序的标志

bool

mql_visual_mode

一个正在运行的程序处于视觉测试模式的标志

bool

MQL_FRAME_MODE

收集优化结果的框架模式 下在图表上运行专家顾问的标志

bool

mql_license_type

EX5模块的许可类型。许可证指的是EX5模块,从该模块使用MQLInfoInteger(MQL_LICENSE_TYPE)进行请求

enum_license_type

关于文件:FileOpen 帮助

该文件在客户终端文件夹的子文件夹MQL5\Files中打开(如果是测试,则在文件夹_agent_testing/MQL5\Files中打开)。如果在标志中指定了FILE_COMMON,文件将在所有客户终端的公共文件夹(Terminal\Common\Files)中打开

例如,数据目录

C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Files,

那么测试代理的目录(以代理1号为例)将在这里。

C:\Users\KVN\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\Files

 
Karputov Vladimir:

选择你需要的 东西。

enum_mql_info_integer

识别器

描述

财产类型

mql_memory_limit

MQL5程序动态内存的最大可能大小,单位:MB

䵮䵮

mql_memory_used

一个MQL5程序使用多少内存(MB)?

䵮䵮

mql_program_type

mql5-程序的类型

enum_program_type

mql_dlls_allowed

允许使用该运行中的程序DLL

bool

mql_trade_allowed

允许 运行项目进行交易

bool

mql_signals_allowed

允许使用本程序信号工作

bool

MQL_DEBUG

调试模式下运行程序的标志

bool

MQL_PROFILER

在代码剖析模式下运行程序的标志

bool

MQL_TESTER

在测试器中运行一个程序的标志

bool

mql_optimization

优化过程中运行程序的标志

bool

mql_visual_mode

一个正在运行的程序处于视觉测试模式的标志

bool

MQL_FRAME_MODE

收集优化结果的框架模式 下,在图表上运行专家顾问的标志

bool

mql_license_type

EX5模块的许可类型。许可证指的是EX5模块,从该模块使用MQLInfoInteger(MQL_LICENSE_TYPE)进行请求

enum_license_type

关于文件:FileOpen 帮助

该文件在客户终端文件夹的子文件夹MQL5\Files中打开(如果是测试,则在文件夹_agent_testing/MQL5\Files中打开)。如果在标志中指定了FILE_COMMON,文件将在所有客户终端的公共文件夹(Terminal\Common\Files)中打开

例如,数据目录

C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Files,

那么测试代理的目录(以代理1号为例)将在这里。

C:\Users\KVN\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\Files

谢谢你,用IsTesting替换马上就能理解了,而且日志文件也整理好了,在交易模式下是写到我的文件里的,但在测试中却不是。(
 
Alexander Kharlamov:
谢谢你,通过替换IsTesting,我一下子明白了一切,我会处理好日志文件,在交易模式下,我的文件是写的,但在测试中,它不是。(
策略测试器中,只需点击 "日志 "标签,然后右击并选择上下文菜单中最上面的项目:"打开"。这将启动资源管理器,它将立即打开装有策略测试器日志的文件夹。
 
你能告诉我,如果我把一个EA放在10个不同的图表上,或者放在10个相同的图表上,但有不同的TF,我是否必须在每个图表上进入EA的属性,并改变Magic号码?

谢谢你
 
Ivan Butko:
你能告诉我,如果我把一个EA放在10个不同的图表上,或者放在10个相同的图表上,但有不同的TF,我是否需要在每个图表上进入EA的属性,改变Magic数字?

谢谢你
如果你把它放在不同的图表上,很可能就会有问题;如果你把它放在同一图表上的不同TF上,很可能就不能正常工作,但要得到你问题的确切答案,你必须看一下代码。
 
BlackTomcat:
为了避免寻找日志文件夹的麻烦,只需切换到策略测试器中 的 "日志 "选项卡,点击那里,在打开的上下文菜单中选择最上面的项目:"打开"。这将启动资源管理器,它将立即打开装有策略测试器日志的文件夹。
我写的不是你所说的标准日志。我创建了自己的日志,并把我需要的东西写在里面。在贸易工作中,测试人员不创建文件。
 
Alexander Kharlamov:
我没有写你所说的标准日志。我创建了自己的日志,并把我需要的东西写在里面。在贸易工作中,测试人员不创建文件。

无论你如何尝试创建文件 - 文件将在沙盒内创建。如何找到文件。

关于交易、自动交易系统和交易策略测试的论坛

初学者的问题

Karputov Vladimir, 2016.09.06 10:19

...

关于文件:FileOpen帮助

该文件在客户终端文件夹中的子文件夹MQL5\Files(或者在测试的情况下,在_agent_testing_directory/MQL5\Files)中打开。如果在标志中指定了FILE_COMMON,文件将在所有客户终端的公共文件夹(Terminal\Common\Files)中打开

例如,数据目录

C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Files,

那么测试代理的目录(以代理1号为例)将在这里。

C:\Users\KVN\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\Files


TERMINAL_DATA_PATH 也会有帮助。
 
Karputov Vladimir:

无论你如何尝试创建文件 - 文件将在沙盒内创建。如何搜索文件。


TERMINAL_DATA_PATH 也会有帮助。

在这里,它就像在MT5中一样!!!))找到了!))谢谢你!

终端文件夹 中寻找,它在Tester文件夹中......但不是在终端文件夹中的那个!

 

告诉我,我写的 收盘价指标 是否正确,或者是否有我没有考虑到的陷阱?

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
#property  indicator_color1  clrRed
#property  indicator_type1   DRAW_LINE 

double Buffer[];

void OnInit()
{
  SetIndexBuffer(0, Buffer, INDICATOR_DATA); 
}

int OnCalculate( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[] )
{
  return(rates_total - prev_calculated + ::ArrayCopy(Buffer, close, prev_calculated, prev_calculated));
}
 
你能告诉我为什么会出现这种情况吗?:
//--- По отдельности

Fun_1();     // Работает
//----------------------
Fun_2();     // Работает

//--- Совместно

Fun_1();     // Работает
Fun_2();     // не Работает
//----------------------
Fun_2();     // Работает
Fun_1();     // не Работает
Fun_1()和Fun_2()是相似的。
原因: