Пример из справки Типы char, short, int и long:
... Для целочисленных переменных значения можно задавать в бинарном виде с помощью префикса B. Например, можно закодировать рабочие часы торговой сессии в переменную типа int и использовать информацию о них согласно требуемому алгоритму:
Но задать в бинарном виде входной параметр (именно в виде 111111111000000000) -
не выйдет - во входных параметрах бинарное представление числа преобразовывается в обычное число:
Вопрос: есть ли способ задавать во входных параметрах значения именно в бинарном виде (чтобы пользователь видел не число, а именно бинарное представление, вроде 111111111000000000)?
Используйте строку - string, а затем делайте ее парсинг - это не сложно. На сколько я знаю, прямого способа - нет :)
Как вариант, такой подход:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Vladimir Karputov, 2017.04.07 08:42
...
Вот такое решение: маска задаётся в виде перечисления
//+------------------------------------------------------------------+ //| Enum pattern mask | //+------------------------------------------------------------------+ enum ENUM_PATTERN_MASK { _0 = 0 , // 0 _1 = 1 , // 1 _2 = 2 , // 00 _3 = 3 , // 01 _4 = 4 , // 10 _5 = 5 , // 11 _6 = 6 , // 000 _7 = 7 , // 001 _8 = 8 , // 010 _9 = 9 , // 011 _10 = 10 , // 100 _11 = 11 , // 101 _12 = 12 , // 110 _13 = 13 , // 111 _14 = 14 , // 0000 _15 = 15 , // 0001 _16 = 16 , // 0010 _17 = 17 , // 0011 _18 = 18 , // 0100 _19 = 19 , // 0101 _20 = 20 , // 0110 _21 = 21 , // 0111 _22 = 22 , // 1000 _23 = 23 , // 1001 _24 = 24 , // 1010 ...
в OnInit() маска переводится в строковую переменную "sExtMorseCode" (переменная "sExtMorseCode" объявлена на глобальном программном уровне) в функции ConvertNumberToString:
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool ConvertNumberToString(const ENUM_PATTERN_MASK num_mask,string &text) { bool result=true; //--- switch(num_mask) { case 0: text="0"; break; case 1: text="1"; break; case 2: text="00"; break; case 3: text="01"; break; case 4: text="10"; break; case 5: text="11"; break; case 6: text="000"; break; case 7: text="001"; break; case 8: text="010"; break; case 9: text="011"; break; case 10: text="100"; break; ... case 53: text="10111"; break; case 54: text="11000"; break; case 55: text="11001"; break; case 56: text="11010"; break; case 57: text="11011"; break; case 58: text="11100"; break; case 59: text="11101"; break; case 60: text="11110"; break; case 61: text="11111"; break; default: text=""; return(false); } //--- return(result); }
Решилось две проблемы:
1). пользователь видит во входных параметрах паттерн в виде "0101":
2). Входной параметр отлично поддаётся оптимизации в тестере.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Пример из справки Типы char, short, int и long:
... Для целочисленных переменных значения можно задавать в бинарном виде с помощью префикса B. Например, можно закодировать рабочие часы торговой сессии в переменную типа int и использовать информацию о них согласно требуемому алгоритму:
Но задать в бинарном виде входной параметр (именно в виде 111111111000000000) -
не выйдет - во входных параметрах бинарное представление числа преобразовывается в обычное число:
Вопрос: есть ли способ задавать во входных параметрах значения именно в бинарном виде (чтобы пользователь видел не число, а именно бинарное представление, вроде 111111111000000000)?