Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
ага, так и сделал
для практических целей наверное надо брать худший вариант
Есть числа от StartN до EndN включительно.
Нужно составить сочетания по CountN в каждом
Написал такой скрипт для количества чисел в сочетании 3:
который выдаёт:
2020.07.12 21:48:47.763 sProbCandlComb XAUUSD..,H4: 111
2020.07.12 21:48:47.763 sProbCandlComb XAUUSD..,H4: 110
2020.07.12 21:48:47.763 sProbCandlComb XAUUSD..,H4: 101
2020.07.12 21:48:47.762 sProbCandlComb XAUUSD..,H4: 100
2020.07.12 21:48:47.762 sProbCandlComb XAUUSD..,H4: 011
2020.07.12 21:48:47.762 sProbCandlComb XAUUSD..,H4: 010
2020.07.12 21:48:47.762 sProbCandlComb XAUUSD..,H4: 001
2020.07.12 21:48:47.762 sProbCandlComb XAUUSD..,H4: 000
Что то затупил я, как сделать что бы работало с заданным количеством CountN?
Двоичное представление числа...
Двоичное представление числа...
дело не в этом, просто параметры я такие взял, от 0 до 1 включительно.
возьмем [0;2]
и получим:
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 222
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 221
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 220
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 212
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 211
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 210
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 202
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 201
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 200
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 122
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 121
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 120
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 112
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 111
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 110
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 102
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 101
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 100
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 022
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 021
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 020
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 012
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 011
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 010
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 002
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 001
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 000
Есть числа от StartN до EndN включительно.
Нужно составить сочетания по CountN в каждом
Что то затупил я, как сделать что бы работало с заданным количеством CountN?
по моему я такое уже делал, вот топик
https://www.mql5.com/ru/forum/335077
дело не в этом, просто параметры я такие взял, от 0 до 1 включительно.
возьмем [0;2]
и получим:
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 222
2020.07.12 22:16:57.703 sProbCandlComb XAUUSD..,H4: 221
...
Так задача сводится к преобразованию числа основного цикла к другой системе счисления, плюс поправка на StartN
Так задача сводится к преобразованию числа основного цикла к другой системе счисления, плюс поправка на StartN
можно код?
по моему я такое уже делал, вот топик
https://www.mql5.com/ru/forum/335077
не всё ладно с кодом, но вроде в целом то что нужно, поправлю выложу сюда.
сейчас код генерит комбинации не на всю длину
по моему я такое уже делал, вот топик
https://www.mql5.com/ru/forum/335077
не получилось добиться того, что нужно, в коде слишком много циклов непонятного назначения.
моё решение такое:
полагаю, этот код с минимально возможным количеством итераций.
результат при значениях чисел [0;1] с количеством в ряду 3:
2020.07.13 01:21:41.037 sProbCandlComb EURUSD..,M5: 111
2020.07.13 01:21:41.037 sProbCandlComb EURUSD..,M5: 011
2020.07.13 01:21:41.037 sProbCandlComb EURUSD..,M5: 101
2020.07.13 01:21:41.037 sProbCandlComb EURUSD..,M5: 001
2020.07.13 01:21:41.037 sProbCandlComb EURUSD..,M5: 110
2020.07.13 01:21:41.037 sProbCandlComb EURUSD..,M5: 010
2020.07.13 01:21:41.037 sProbCandlComb EURUSD..,M5: 100
2020.07.13 01:21:41.037 sProbCandlComb EURUSD..,M5: 000
результат при значениях чисел [0;2] с количеством в ряду 4:
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2222
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1222
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0222
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2122
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1122
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0122
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2022
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1022
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0022
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2212
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1212
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0212
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2112
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1112
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0112
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2012
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1012
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0012
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2202
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1202
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0202
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2102
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1102
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0102
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2002
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1002
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0002
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2221
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1221
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0221
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2121
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1121
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0121
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2021
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1021
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0021
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2211
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1211
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0211
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2111
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1111
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0111
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2011
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1011
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0011
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2201
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1201
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0201
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2101
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1101
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0101
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2001
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1001
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0001
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2220
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1220
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0220
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2120
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1120
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0120
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2020
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1020
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0020
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2210
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1210
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0210
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2110
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1110
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0110
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2010
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1010
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0010
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2200
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1200
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0200
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2100
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1100
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0100
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 2000
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 1000
2020.07.13 01:22:50.851 sProbCandlComb EURUSD..,M5: 0000
Логика алгоритма простая и такая же как правило исчисления: прибавляем 1 к разряду, если в разряде получилось больше заданного числа назначаем минимальное и переходим к следующему разряду, если на следующем разряде не произошло "обнуления", то возвращаемся к первому разряду.
Правда разряды у меня не с права, а с лева, нуипох.
0000
0001
0010
0011
0100
0101
....
и т.д.
Возможно, применяя рекурсию можно получить ещё более красивый код, но навряд ли будет более быстрым.
у Вас не сочетание, а перестановка без повторений
а мой пример это сочетание без повторений