Ошибки, баги, вопросы - страница 1960

 
fxsaber:
Как быстро сложить много строк (например, сгенерировать торговый отчет в string)

Результат

Красным отмечен факт, который никак не удается объяснить.

Особенности работы пула памяти, при первом вызове SumString2 в пул памяти "насыщается" памятью из системы, при повторном, память у системы больше не запрашивается.

Рекомендую поправить SumString1

ulong SumString1( string TmpStr, const int Amount )
{
  const ulong StartTime = GetMicrosecondCount();

  string Str;
  StringInit(Str,Amount * StringLen(TmpStr) + 1);            << обеспечим строке приёмный буфер

  for (int i = 0; i < Amount; i++)
    Str += TmpStr;

  return(GetMicrosecondCount() - StartTime);
}
 
fxsaber:

По редактору

  • Если в Metaeditor набирать следующую строкуто тултип (или как правильно называется всплывающая подсказка с вариантами?) GetMicrosecondCount не появляется.
    DoubleToString(GetMicro

Подсветка умная, аргумент DoubleToString должен быть дабл, а GetMicrosecondCount — ulong.

Сработает вот так:

DoubleToString( (double)GetMicro
 
fxsaber:

Есть мысли, как получить имя произвольного input-параметра в виде строки?

input double dParam1 = 1.0; // Double
input int iParam2 = 2;      // Integer

Print( InputToString( dParam1 ) ); // "dParam1"
Print( InputToString( iParam2 ) ); // "iParam2"

template<typename T>
string InputToString(T param)
{
   ???
}
 
Andrey Khatimlianskii:

Есть мысли, как получить имя произвольного input-параметра в виде строки?

input double dParam1 = 1.0; // Double
input int iParam2 = 2;      // Integer

#define TOSTRING(A) (#A)

Print( TOSTRING( dParam1 ) ); // "dParam1"
Print( TOSTRING( iParam2 ) ); // "iParam2"
 
fxsaber:

Супер, спасибо!

А получить список инпутов советника при запуске одиночного прогона тестера? Без чтения файла настроек с использованием длл.
Сделал удобное отображение параметров, используемых при тесте после оптимизации (через файл и гл. переменные), осталось одно неудобство — все параметры нужно перечислить вручную.

 
Andrey Khatimlianskii:

А получить список инпутов советника при запуске одиночного прогона тестера?

Никак, только в режиме Оптимизации.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2017.07.25 11:27

Как узнать входные параметры советника хотя бы в режиме одиночного прогона?

Для индикаторов есть IndicatorParameters.

Для оптимизации - FrameInputs.

А для одиночного прогона советника или обычного его запуска - ничего.

 
fxsaber:
Никак, только в режиме Оптимизации.

Кхм... А задача, обратная "TOSTRING", решается?

Тогда можно было бы при оптимизации записать список параметров в файл в виде текста, а при тесте считать его и сопоставить с используемыми значениями input-ов.

 
Andrey Khatimlianskii:

Кхм... А задача, обратная "TOSTRING", решается?

К сожалению, опять же решается только в режиме Оптимизации, а точнее - FRAME_MODE.

 

При обычном запуске советника (не тестер) список входных параметров со значениями легко получается через парсинг ChartSaveTemplate.

 
fxsaber:

К сожалению, опять же решается только в режиме Оптимизации, а точнее - FRAME_MODE.

Вариант "оптимизация + тест" вполне подходит для удобного отображения входных параметров одиночных проходов после оптимизации.

Но как при одиночном проходе получить список параметров, кроме как из файла, подготовленного при оптимизации? И как параметрам из этого файла сопоставить используемые в тесте значения?