Как получить случайное число в N-ном деапазоне ? - страница 8

 
Nikolai Semko #:

попробуйте в начале OnInit поставить  MathSrand(GetTickCount());

Спасибо. Ранее упомянул, что это улучшает ситуацию.

 
Dmitry Fedoseev #:

Диапазоны изменения всех параметров определены, шаги изменения каждого параметра тоже известны. Дальше придумать можно, если нужно. Можно даже не генерировать массив, а вычислять N-ый набор. Что-то типа календаря Майя.

Массив перемешать - это вообще не проблема - менять местами два случайных элемента массива.

---

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

---

А почему бы просто не оптимизировать эксперта, используя генетический алгоритм тестера? 

Так а N  как генерировать тогда.

Перемешивание же будет похожим, так как рандом совпадает - или я не понял чего то...

Фрейм получаем же после уже прохода в тестере, а надо бы до него всё настроить.

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

Хорошо бы вот понять, как получить из нормального распределения хотя бы 0,1% всех комбинаций мне, тогда можно прикрутить тот же CatBoost и убрать проходы с плохими результатами опираясь на комбинации выбранных комбинаций...
 
Maxim Kuznetsov #:

тогда привычного MathRand вам за глаза и с лихвой :-)

-----

кстати про настройку советников, если советник не лютый ночной скальпер, то все настройки и оптимизации сводится всего-то к сравнению с картинкой:

вариантов собственно немного:

- картина почти в точности совпадает. Робота придётся выбросить
- более глубокие и резкие впадины - у вас в руках потенциальный (контр)трендовый личный грааль. Входы/выходы близки к оптимальным
- смещено и искажено (или впадины стали нечёткими, что побочный эффект смещений)- используются сильно опаздывающие сигналы, скорее всего не лечится
- пики и впадины инвертированы - офигенный флетовый скальпер

Интересное наблюдение, но требуется наличие примеров, для восприятия и как то оцифровать бы это, да проверить...

 
Aleksey Vyazmikin #:

Интересное наблюдение, но требуется наличие примеров, для восприятия и как то оцифровать бы это, да проверить...

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

1) вариант раз (это когда совпадение и робот на выброс), сигналы роботы вызваны исключительно волатильностью. И строго ей следуют. (например робот торгует реальными/вирт. отложками или по когда-то заранее придуманным уровням)

2) варик с граалем - это трендистый (трендовый/контр-трендовый/канальный) робот который умеет использовать дневную/недельную волатильность и не прёт против неё. Цена на пиках - покупает/продаёт, при откатах двигает стопы и фиксирует убытки. 

3) с искажениями - робот фигачит от оконных функций (пресловутое пересечение средних и прочие MO,нейронки), они по природе отстают и сигналы приходятся ровно когда "ваше очко переходит в зал"

4) последний случай (когда график инвертирован) - это скальпер. Он не торгует когда открывается №2, но поджирает его стопы. Скальперы работают на низкой или падающей амплитуде. 

 
Aleksey Vyazmikin #:

1. Так а N  как генерировать тогда.

2. Перемешивание же будет похожим, так как рандом совпадает - или я не понял чего то...

3. Фрейм получаем же после уже прохода в тестере, а надо бы до него всё настроить.

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

Хорошо бы вот понять, как получить из нормального распределения хотя бы 0,1% всех комбинаций мне, тогда можно прикрутить тот же CatBoost и убрать проходы с плохими результатами опираясь на комбинации выбранных комбинаций...

1. По порядку. Сгенерировать массив со всеми возможными вариантами. Его перемешать.

2. См. п1.

3. Через фрейм передаем тот набор параметров, с которым был выполнен проход, чтобы сохранить его, чтобы больше его не использовать.

Вообще данных о задаче недостаточно, чтобы что-то вразумительное придумать. 

 
Maxim Kuznetsov #:

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

1) вариант раз (это когда совпадение и робот на выброс), сигналы роботы вызваны исключительно волатильностью. И строго ей следуют. (например робот торгует реальными/вирт. отложками или по когда-то заранее придуманным уровням)

2) варик с граалем - это трендистый (трендовый/контр-трендовый/канальный) робот который умеет использовать дневную/недельную волатильность и не прёт против неё. Цена на пиках - покупает/продаёт, при откатах двигает стопы и фиксирует убытки. 

3) с искажениями - робот фигачит от оконных функций (пресловутое пересечение средних и прочие MO,нейронки), они по природе отстают и сигналы приходятся ровно когда "ваше очко переходит в зал"

4) последний случай (когда график инвертирован) - это скальпер. Он не торгует когда открывается №2, но поджирает его стопы. Скальперы работают на низкой или падающей амплитуде. 

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

 
Rand 0 ... Max Int с равномерным распределением
Rand 0 ... Max Int с равномерным распределением
  • www.mql5.com
Потребовалась функция ГСЧ с гнерацией числа Int от 0 до любого значения. Получилась такая функция. Думаю распределение получилось равномерным. int RandomInteger(int max_vl){return
 
Maxim Kuznetsov #:

3) с искажениями - робот фигачит от оконных функций (пресловутое пересечение средних и прочие MO,нейронки), они по природе отстают и сигналы приходятся ровно когда "ваше очко переходит в зал"

Забавляет отсутствие осознания того простого факта, что всё посчитанное по графику является "оконной функцией". Красивые гистограммки волатильности, например, тоже)

Наличие логических дыр в рассуждениях не делает их "практично-практическими") 

 
Aleksey Nikolayev #:

Забавляет отсутствие осознания того простого факта, что всё посчитанное по графику является "оконной функцией". Красивые гистограммки волатильности, например, тоже)

Наличие логических дыр в рассуждениях не делает их "практично-практическими") 

Пьяный что-ли ? смотрю повсюду прошёлся с теоретически важными замечаниями :-)

или обиделся...правда она такая. Именно поэтому в МО не выходит нишиша

 
Maxim Kuznetsov #:

Пьяный что-ли ? смотрю повсюду прошёлся с теоретически важными замечаниями :-)

или обиделся...правда она такая. Именно поэтому в МО не выходит нишиша

Всё как обычно) Старый добрый ad hominem вместо ad rem)