[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 66
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ниже сам код.
Если есть более простые варианты решения проблемы, буду рад комментариям.
Наверное так лучше
Спасибо, но для меня сложновато, и Ваша функция выводит сразу 4 сообщения, а мне надо одно. Получается не более 64-х символов в одной строке?
Нет. Берёте своё длинное сообщение и делите его на столько частей, сколько удобно для восприятия на экране, но не более четырёх. Главное, чтобы каждая часть не превышала 64 символа. Если сообщение короткое, то его можно и одной частью передать в функцию.
Посмотрите, я в прицепе пристегнул советничек для проверки этой функции. Запустите его в тестере в визуальном режимеи на график визуализации накиньте индикатор Win_Inform (он в прошлом моём сообщении в прицепе). Сразу увидите работу этой функции.
Наверное так лучше
Я примерно с такого кода начинал свой модернизировать. В Вашем варианте 3 проблемы возникают:
- как только будут открыты ордера типа OP_BUY и OP_SELL то на каждом тике автоматически будут увеличиваться параметры OrdB и OrdS, поэтому я добавил условие пересчета только на изменении соответствующего тикета (селл или бай);
- пересчет всех ордеров приводит к погрешности OrdB и Ord, нам нужно только последние изменения в ордерах считать;
- в Вашем варианте отсутствует уменьшение параметров OrdB и Ord для дальнейшего открытия ордеров if(OrdB<=OrederBuy), if(OrdS<=OrederSell).
Вроде как-то так.
Я примерно с такого кода начинал свой модернизировать. В Вашем варианте 3 проблемы возникают:
- как только будут открыты ордера типа OP_BUY и OP_SELL то на каждом тике автоматически будут увеличиваться параметры OrdB и OrdS, поэтому я добавил условие пересчета только на изменении соответствующего тикета (селл или бай);
- пересчет всех ордеров приводит к погрешности OrdB и Ord, нам нужно только последние изменения в ордерах считать;
- в Вашем варианте отсутствует уменьшение параметров OrdB и Ord для дальнейшего открытия ордеров if(OrdB<=OrederBuy), if(OrdS<=OrederSell).
Вроде как-то так.
Да верно, надо перед циклом for, обнулить счётчики ордеров
Добрый день! Помогите пожалуйста разобраться с функцией от Кима:
Мне не понятна строка
почему после первого if нет никаих знаков, что происходит, если выражение записано таким образом. Для чего выполняется действие StringFind, и почему поиск строки выполняется именно по JPY? Как может d = 0, и в каком случае присваивается 2, а в каком 4? Буду очень признательна за ответ, заранее спасибо)))
Да верно, надо перед циклом for, обнулить счётчики ордеров
)) Я почему-то сам об этом не подумал, начал накручивать.
В добрый путь
так думаю будет понятнее
d - точность котировки (цифры после запятой)
если в паре JPY то курс c мажорами примерно такого формата xxx.xx
если в паре отсутствует JPY то курсы мажоров примерно таковы x.xxxx (отсюда и название "четырёхзнак")
Да верно, надо перед циклом for, обнулить счётчики ордеров
Упустил из виду еще момент:
- в Вашем варианте отсутствует уменьшение параметров OrdB и OrdS для дальнейшего открытия ордеров if(OrdB<=OrederBuy), if(OrdS<=OrederSell).
В новом варианте получается открыли к примеру 5 ордеров, пересчитали, а дальше условие if не позволит открыть новые ордера. У меня в старом варианте OrdB-- и OrdS--
были использованы.
так думаю будет понятнее
d - точность котировки (цифры после запятой)
если в паре JPY то курс c мажорами примерно такого формата xxx.xx
если в паре отсутствует JPY то курсы мажоров примерно таковы x.xxxx (отсюда и название "четырёхзнак")