//--- кешируемая запись содержит номер прохода (при генетике - номер по порядку), структуру результатов тестирования (если математика, то 1 double), буфер оптимизируемых параметров и генетический проход
//+------------------------------------------------------------------+//| Структура для статистики торговли |//+------------------------------------------------------------------+struct ExpTradeSummary;
#define TOSTRING(A) #A + " = " + (string)(A) + "\n"string ToString( void ) const
{
return(
TOSTRING(initial_deposit) + // начальный депозит
TOSTRING(withdrawal) + // снято средств
TOSTRING(profit) + // общая прибыль (+)
TOSTRING(grossprofit) + // общий плюс
TOSTRING(grossloss) + // общий минус
TOSTRING(maxprofit) + // максимально прибыльная сделка
TOSTRING(minprofit) + // максимально убыточная сделка
TOSTRING(conprofitmax) + // прибыль максимальной последовательности прибыльных сделок
TOSTRING(maxconprofit) + // максимальная прибыль среди последовательностей
TOSTRING(conlossmax) + // убыток максимальной последовательности убыточных сделок
TOSTRING(maxconloss) + // максимальный убыток среди последовательностей
TOSTRING(balance_min) + // минимальное значение баланса (для расчёта абсолютной просадки)
TOSTRING(maxdrawdown) + // максимальная просадка по балансу
TOSTRING(drawdownpercent) + // отношение максимальной просадки по балансу к её пику
TOSTRING(reldrawdown) + // максимальная относительная просадка по балансу в деньгах
TOSTRING(reldrawdownpercent) + // максимальная относительная просадка по балансу в процентах
TOSTRING(equity_min) + // минимальное значение equity (для расчёта абсолютной просадки по equity)
TOSTRING(maxdrawdown_e) + // максимальная просадка по equity
TOSTRING(drawdownpercent_e) + // отношение максимальной просадки по equity к её пику (+)
TOSTRING(reldrawdown_e) + // максимальная относительная просадка по equity в деньгах
TOSTRING(reldrawdownpercnt_e) + // максимальная относительная просадка по equity в процентах
TOSTRING(expected_payoff) + // матожидание выигрыша (+)
TOSTRING(profit_factor) + // показатель прибыльности (+)
TOSTRING(recovery_factor) + // фактор восстановления (+)
TOSTRING(sharpe_ratio) + // коэффициент Шарпа (+)
TOSTRING(margin_level) + // минимальный уровень маржи
TOSTRING(custom_fitness) + // пользовательский фитнесс - результат OnTester (+)
TOSTRING(deals) + // общее количество сделок
TOSTRING(trades) + // количество сделок out/inout
TOSTRING(profittrades) + // количество прибыльных
TOSTRING(losstrades) + // количество убыточных
TOSTRING(shorttrades) + // количество шортов
TOSTRING(longtrades) + // количество лонгов
TOSTRING(winshorttrades) + // количество прибыльных шортов
TOSTRING(winlongtrades) + // количество прибыльных лонгов
TOSTRING(conprofitmax_trades) + // максимальная последовательность прибыльных сделок
TOSTRING(maxconprofit_trades) + // последовательность максимальной прибыли
TOSTRING(conlossmax_trades) + // максимальная последовательность убыточных сделок
TOSTRING(maxconloss_trades) + // последовательность максимального убытка
TOSTRING(avgconwinners) + // среднее количество последовательных прибыльных сделок
TOSTRING(avgconloosers) // среднее количество последовательных убыточных сделок
);
可能是错过了。
他们并没有错过。
目前opt文件的格式不允许这样做。你必须考虑到这一点。
他们并没有错过。
目前opt-file的格式不允许。你必须考虑到这一点。
似乎不需要改变什么。
关于交易、自动交易系统和策略测试的论坛
虫子、虫子、问题
斯拉瓦, 2019.04.19 15:11
//--- кешируемая запись содержит номер прохода (при генетике - номер по порядку), структуру результатов тестирования (если математика, то 1 double), буфер оптимизируемых параметров и генетический проход
每个输入是由一个带有所需字段的结构来定义的。
现在很容易发现
但我们无法找出,例如,单次通行的统计数据。很明显,有一个tst-format。但如果在策略测试器中使用CTRL+C,在回测选项卡中形成一个带有统计数据的集合文件,那就很方便了。
关于交易、自动交易系统和策略测试的论坛
图书馆:TesterCache
fxsaber, 2019.11.11 04:45
我不知道其他人的情况,但我发现当集合文件包含所有的信息时很方便。要弄清楚它是什么,它来自哪里,有多少,非常快。
这是ExpTradeSummary结构字段的输出。
关于交易、自动交易系统和交易策略测试的论坛
虫子、虫子、问题
斯拉瓦, 2019.04.19 15:11
既然出现了强大的缓存,就值得对其进行一定程度的改进。
现在只有一个用户参数,OnTester,进入了缓存。
如果ExpTradeSummary变得大三倍或五倍,那就非常方便了。这可以通过以下方式填写
现在你分析缓存,显然缺乏可能性,不能看到一个用户的价值,而是几个。
这是对Metaquotes的请求,我希望至少有一个团队的开发人员可以回答(如果他已经被问过了,很抱歉,但由于语言问题,我在俄罗斯论坛上找不到答案)。
要求改进策略测试器,增加测试在模拟账户上从未发生的交易情况,而只在真实账户上发生,这是否合理?因为如果不能够完全测试,真的很难创建健壮的代码。
这主要是因为集中的市场(相对于外汇/差价合约)。例如,部分 订单填充,在模拟账户上,这种情况从未发生(据我所知),但在期货或股票的真实账户上,这是一种常见的情况。如果有一个工具来模拟这种情况,将是非常有用的。
部分填充只是一个例子,如果Metaquotes认为与这样的功能合作是一个好主意,我愿意把这些想法集中起来,并对这样的功能提供详细的描述。(没有针对我自己的需求的具体内容)。
谢谢你的时间和回答。
如果不能对其进行全面测试,就很难创建可靠的代码。
为了做到这一点,每个严肃的EA开发者都会在真实账户上 对其交易库进行多年的调试。
没有它,就没有办法创建可靠的代码。
为了做到这一点,每个严肃的EA开发者都会在真实账户上 对其交易库进行多年的调试。
没有它,就没有办法创建可靠的代码。
这是真的,但这将有助于避免在真实账户上进行大量耗时的测试。
所以这是真的,但这个功能将有助于避免在真实账户上进行许多耗时的测试。
有两个目标。
测试员只能帮助解决第二点,即简单的问题。你可以通过测量TS的所谓 "流动性上限 "来实施部分执行。但这将是一个极其粗略的估计。
应该理解的是,测试仪中的任何增强功能都是额外的刹车,即使这些增强功能没有被使用。
为了做到这一点,每个严肃的EA开发者都会在真实账户上 对其交易库进行多年的调试。
没有它,就没有办法创建可靠的代码。
我建议你用你的无用和傲慢的帖子一劳永逸地忘记我。
不幸的是,我没有办法把它们过滤掉。
千万不要回复我的帖子,拜托,你是在浪费我的时间,因为通知的问题。
我建议你用你的无用和傲慢的帖子一劳永逸地忘记我。
我建议你开始质疑你使用的自动俄语翻译器是否足够。
不幸的是,我没有办法将它们过滤掉。
千万不要回复我的帖子,拜托,你是在浪费我的时间,因为通知的问题。
好的。