MetaTrader 5 Strategy Tester! - страница 74

 
Andrey Dik:

Самообман в чем?

Я об этом уже писал:

Я верю в самообман и человеческий curve fitting (что и есть самообман).

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

Я понимаю, по какой причине была оставлена именно эта функция, но я не считаю возможным так себя вести.
 
Renat Fatkhullin:

Я об этом уже писал:

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

Зря Вы так. Я из самых чистых побуждений стремился сделать действительно трудную ФФ. Реально, мне всё равно. Пусть кто угодно предложит свою ФФ, и Вы предложите, и мы снова проведем тесты. У меня нет никакого желания что то кому то доказать или тем более обмануть (моя библиотека с алгоритмом оптимизации вон лежит и я её не меняю под какие то конкретные ФФ), предложите свою ФФ.

Вообще, раз мы допускаем возможность сравнивать наши алгоритмы с любыми другими, таким как R, то пусть они и позаботятся сами как обеспечить доступ к библиотеке ex5 с ФФ. Если не могут - это их проблемы. Или нужно написать библиотеку ФФ в виде dll. 

 
Andrey Dik:

Зря Вы так. Я из самых чистых побуждений стремился сделать действительно трудную ФФ. Реально, мне всё равно. Пусть кто угодно предложит свою ФФ, и Вы предложите, и мы снова проведем тесты. У меня нет никакого желания что то кому то доказать или тем более обмануть (моя библиотека вон лежит и я её не меняю под какие то конкретные ФФ), предложите свою ФФ.

Вообще, раз мы допускаем возможность сравнивать наши алгоритмы с любыми другими, таким как R, то пусть они и позаботятся сами как обеспечить доступ к библиотеке ex5 с ФФ. Если не могут - это их проблемы. Или нужно написать библиотеку ФФ в виде dll. 

Я больше скажу.

Вы так и не представили чистый MQL5 код для штатного тестера. Не надо прикрываться "куски кода были разбросаны" и "есть некий скрипт генерации чего-то". То, что вы выложили - тоже вредительство и запутывание.

Вы не представили чистого MQL5 кода, включая условия теста. Поэтому вы заведомо читер, пытающийся на словах проскочить. Особенно в попытках доказать преимущества в десятки раз своего невидимого варианта тестера.

Выходя с такими заявлениями, надо быть готовым, что тебя разложат на кирпичики.

Тут не самообманом пахнет, а чистым обманом.
 
Renat Fatkhullin:

Я больше скажу.

Вы так и не представили чистый MQL5 код для штатного тестера. Не надо прикрываться "куски кода были разбросаны" и "есть некий скрипт генерации чего-то".

Вы не представили чистого MQL5 кода, включая условия теста. Поэтому вы заведомо читер, пытающийся на словах проскочить.

Ренат, я ведь за свои слова отвечаю. Вы смотрели коды, которые я предоставил все в одном посте? Или мне в каждом своем посте дублировать ссылку на этот пост?

Хорошо, вот они. Даже пошагово описал что нужно делать и как проверить.

Я даже написал генератор тестового советника для Вашего оптимизатора, потому что в ручную заполнять сотни параметров это, скажу я Вам, тот ещё гемор. И после всего этого говорите что я читер? Посмотрите коды пожалуйста и заберите свои слова обратно!

Ваш оптимизатор поигрывает объективно не только моему алгоритму, но и другим, даже простым. Если хотите что бы были другие тесты - создайте библиотеку с ФФ и проведем повторные тесты, можете даже в виде скомпилированной библиотеки без исходного кода для чистоты эксперемента, соблюдите только одинаковость импортируемых функций. Без проблем - проведём любые тесты, я не съезжаю с разговоров, ЛЮБЫЕ ТЕСТЫ с ЛЮБЫМИ ФФ. С Вашими ФФ. 

 
Andrey Dik:

Зря Вы так. Я из самых чистых побуждений стремился сделать действительно трудную ФФ. Реально, мне всё равно. Пусть кто угодно предложит свою ФФ, и Вы предложите, и мы снова проведем тесты. У меня нет никакого желания что то кому то доказать или тем более обмануть (моя библиотека вон лежит и я её не меняю под какие то конкретные ФФ), предложите свою ФФ.

Вообще, раз мы допускаем возможность сравнивать наши алгоритмы с любыми другими, таким как R, то пусть они и позаботятся сами как обеспечить доступ к библиотеке ex5 с ФФ. Если не могут - это их проблемы. Или нужно написать библиотеку ФФ в виде dll. 

Вы что тестируете? Алгоритмы, или ex5 советник? Алгоритм это просто набор правил, их результат не будет зависеть от языка на котором они реализованы. Портировать тысячи алгоритмов из R чтоб с вами посоревноваться - никто не будет. Зато один победивший алгоритм можно смело портировать на mql и использовать для своих целей всем сообществом.

А то получается вообще дико - где-то скачали какую-то библиотеку, сравнили её с mql, предложили посоревноваться другим, проиграли, решили отказаться от соревнования с другими путём ввода новых требований. Не надо так.

Хотите сравнивать свои алгоритмы с mql5 - сравнивайте, пишите статью, выкладывайте.
Хотите соревноваться - пишите свод правил, выкладывайте их как окончательный вариант. "Конечный" означает последний, финальный, более-не-редактируемый. В вашем случае нужен нотариально заверенный свод правил, иначе смысла вообще нету.

 

Andrey Dik:

Вы смотрели коды, которые я предоставил все в одном посте? 

 Кода вашего оптимизатора там нету. Есть только скомпиленная библиотека. Не вводите в заблуждение.

 
Andrey Dik:

Ренат, я ведь за свои слова отвечаю. Вы смотрели коды, которые я предоставил все в одном посте? Или мне в каждом своем посте дублировать ссылку на этот пост?

Хорошо, вот они. Даже пошагово описал что нужно делать и как проверить.

Я даже написал генератор тестового советника для Вашего оптимизатора, потому что в ручную заполнять сотни параметров это, скажу я Вам, тот ещё гемор. И после всего этого говорите что я читер? Посмотрите коды пожалуйста и заберите свои слова обратно!

Ваш оптимизатор поигрывает объективно не только моему алгоритму, но и другим, даже простым. Если хотите что бы были другие тесты - создайте библиотеку с ФФ и проведем повторные тесты, можете даже в виде скомпилированной библиотеки без исходного кода для чистоты эксперемента, соблюдите только одинаковость импортируемых функций. Без проблем - проведём любые тесты, я не съезжаю с разговоров, ЛЮБЫЕ ТЕСТЫ с ЛЮБЫМИ ФФ. С Вашими ФФ. 

Дайте мне чистый и точный код одиночного эксперта, который вы тестировали как "вариант MT5 + его штатный тестер".

Вашу ссылку я уже смотрел и указал ее. Вы в ней сделали все, чтобы не дать людям разобраться. Как умудрились несколько десятков страниц вести обсуждения вообще без кода и без воспроизводимых доказательств.

Вот опубликуйте тут реальный код, который вы заявляете как тот, что вы сравнивали и мы посмотрим на результаты. Конечно, теперь разобрав по косточкам и детально все проверив самостоятельно.

Уже видно, что вы мухлевали и подгоняли условия под себя.

 
Dr.Trader:

Вы что тестируете? Алгоритмы, или ex5 советник? Алгоритм это просто набор правил, их результат не будет зависеть от языка на котором они реализованы. Портировать тысячи алгоритмов из R чтоб с вами посоревноваться - никто не будет. Зато один победивший алгоритм можно смело портировать на mql и использовать для своих целей всем сообществом.

А то получается вообще дико - где-то скачали какую-то библиотеку, сравнили её с mql, предложили посоревноваться другим, проиграли, решили отказаться от соревнования с другими путём ввода новых требований. Не надо так.

Хотите сравнивать свои алгоритмы с mql5 - сравнивайте, пишите статью, выкладывайте.
Хотите соревноваться - пишите свод правил, выкладывайте их как окончательный вариант.

 Кода вашего оптимизатора там нету. Есть только скомпиленная библиотека. Не вводите в заблуждение.

Вы дурак или как? Я Вас просил выкладывать код своего оптимизатора? Вы ИДИОТ!!!!!

Вы видели код оптимизатора МТ? Скакого перепугу я Вам должен показывать код своего оптимизатора? Будьте добры обращаться из своего алгоритма к библиотеке с ФФ как это делает мой алгоритм и штатный от MQ (одна и тажа библа), тогда и будем дальше разговаривать будем. 

 
Renat Fatkhullin:

Дайте мне чистый и точный код одиночного эксперта, который вы тестировали.

Вашу ссылку я уже смотрел и указал ее. Вы в ней сделали все, чтобы не дать людям разобраться. Как умудрились несколько десятков страниц вести обсуждения вообще без кода и без воспроизводимых доказательств.

Вот опубликуйте тут реальный код, который вы заявляете как тот, что вы сравнивали и мы посмотрим на результаты.

Уже видно, что вы мухлевали и подгоняли условия под себя.

Не торопитесь с выводами, пожалуйста.

Вот, компилируете сначала эту тестовую ФФ:

#property library
#property strict
//#include <Graphics/Graphic.mqh>

int    countRuns    = 0;
string Key      = "A;a;B;b;C;c;D;d;E;e;F;f;G;g;H;h;I;i;J;j;K;k;L;l;M;m;N;n;O;o;P;p;Q;q;R;r;S;s;T;t;U;u;V;v;W;w;X;x;Y;y;Z;z";
string KeyArray [];
int    KeyLen   = 0;
string Text     = "SptstmLEjXhdESqotbRQbmsYKkJTZiOHBEenIbGqLHwxqfWTok";
int    TextLen  = 0;

//+------------------------------------------------------------------+
int GetParamCount () export
{
  TextLen = StringLen (Text);
  KeyLen  = StringSplit (Key, StringGetCharacter (";", 0), KeyArray);
  return (TextLen);
}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
void GetParamProperties (double &min, double &max, double &step) export
{
  min = 0.0;
  max = KeyLen - 1;
  step = 1.0;
}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
double FF (double &param []) export
{
  countRuns++;
  
  int sizeArray = ArraySize (param);
  if(sizeArray != TextLen)
    return (0.0);
  
  int ffVolue = 0;
  
  for(int i = 0; i < TextLen; i++)
  {
    if(GetCode (param [i]) == StringSubstr (Text, i, 1))
      ffVolue++;
  }
  
  // сохранение результатов
  if(CompareBests (ffVolue))
    SaveResults (BestResults, ffVolue);
  SaveResults (AllResults, ffVolue);
  
  return (double(ffVolue));
}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
int GetCountRunsFF () export
{
  return (countRuns);
}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
void SaveResultsToFiles () export
{
  string str = "";
  int handle = FileOpen ("AllResults.csv", FILE_WRITE | FILE_CSV | FILE_ANSI, ";");
  
  if(handle != INVALID_HANDLE)
  {
    for(int i = 0; i < ArraySize (AllResults); i++)
      str += (string)AllResults [i] + ";" + "\n";
    
    FileWriteString (handle, str, -1);
    FileClose (handle);
  }
  else
  {
    Print ("Ошибка записи в файл AllResults.csv");
  }
  
  str = "";
  handle = FileOpen ("BestResults.csv", FILE_WRITE | FILE_CSV | FILE_ANSI, ";");
  
  if(handle != INVALID_HANDLE)
  {
    for(int i = 0; i < ArraySize (BestResults); i++)
      str += (string)BestResults [i] + ";" + "\n";
    
    FileWriteString (handle, str, -1);
    FileClose (handle);
  }
  else
  {
    Print ("Ошибка записи в файл BestResults.csv");
  }
  
  //ResourceSave(GraphPlot(AllResults, CURVE_LINES), "AllResults.bmp");
  //ResourceSave(GraphPlot(BestResults,CURVE_LINES), "BestResults.bmp");
}
//+------------------------------------------------------------------+

double AllResults  [];        // все результаты ФФ
double BestResults [];        // лучшие результаты ФФ
double BestResult = -DBL_MAX; //последний лучший результат

//+------------------------------------------------------------------+
bool CompareBests (double Res)
{
  if(Res > BestResult)
  {
    BestResult = Res;
    return (true);
  }
  
  return (false);
}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
void SaveResults (double &SavedResults [], double Res)
{
  const int size = ArraySize (SavedResults);
  ArrayResize (SavedResults, size + 1, 10000);
  SavedResults [size] = Res;
  return;
}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
string GetCode (double param)
{
  int p = (int)MathRound (param);
  if(p < 0)
    p = 0;
  if(p > KeyLen - 1)
    p = KeyLen - 1;
  
  return (KeyArray [p]);
}
//+------------------------------------------------------------------+

переименуйте полученую библиотеку в ff.ex5
 

 
Andrey Dik:

Вы дурак или как? Я Вас просил выкладывать код своего оптимизатора? Вы ИДИОТ!!!!!

Вы видели код оптимизатора МТ? Скакого перепугу я Вам должен показывать код своего оптимизатора? Будьте добры обращаться из своего алгоритма к библиотеке с ФФ как это делает мой алгоритм и штатный от MQ (одна и тажа библа), тогда и будем дальше разговаривать будем. 

Вы выложите код под MT5 оптимизатор.

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

 
Renat Fatkhullin:

Вы выложите код под MT5 оптимизатор.

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

Я выкладываю уже, дайте дописать.