Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1087
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день. Помогите написать следующий код, для советника. Хочу сделать через массив (если имеется более оптимальный вариант, прошу помочь). В общем советник отсылает сообщения, но я хочу чтобы советник отсылал их через массив (временный). Т.е. при начале отправки письма советник проверял не отправляли ли данное сообщение раньше (проверял наличие такого сообщения в массиве), если нет отправлял, если письмо находится то отправка опускается. Надеюсь понятно) Спасибо, большое!
Вы точно уверены в постановке задачи?
Просто, существуют варианты:
- не повторять последнее сообщение
- игнорировать устаревшее (задан какой-то лаг по времени), то есть, нужно повторять сообщение.
P.S. Первый вариант - частный случай второго, но, реализуется на порядок проще. Ваша постановка задачи - тоже частный случай второго варианта с бесконечным лагом.
Если Вам это интересно, то, вот решение Вашей задачи.
Определяем два массива - один текстовый, который хранит сообщения, второй - индексный, для поиска сообщений.
Индексный массив имеет тип int. В первом измерении записываем контрольную сумму текстового сообщения. Во второе - номер строки сообщения первого массива. Индексный массив сортируем по первому измерению.
Получаем новое сообщение. Считаем его контрольную сумму. С помощью функции ArrayBsearch() ищем такое сообщение. Если оно не найдено, то это сообщение оригинально. Добавляем его в массив сообщений и, контрольную сумму со ссылкой в индексный массив, не забыв его отсортировать.
Какие варианты для контрольной суммы? Я бы взял такой: учитываем число символов и контрольную сумму текста. Контрольная сумма текста, например, сумма кодов символов. С учетом последних изменений она не может превосходить 65 536*256. То есть, контрольная сумма сообщения может выглядеть так:
число символов умножаем на 10 миллионов и прибавляем контрольную сумму текста.
профи! есть проблема с линией по углу.
построил TRENDBYANGLE по координатам
- нужно узнать угол, делаю
а он =0, в справке написанно что у линии созданной программой -угол НУЛЬ это ок.
прогоняю еще раз этот же код натех же координатах, руками линию не трогаю - появляется верное количество градусов, не ноль. почему, как сделать что б с первого раза ?
или дал одни координаты - спрашиваю угол - говорит 0. тут же даю другие - говорит угол прошлых координат. ерунда
Перенес коммент в начало, а то никто так и не ответил, а очень нужно =/
Можно ли это реализовать: если я нажимаю какую то клавишу, включается одна часть кода индикатора(отвечает за создание объекта ЩЕЛЧКОМ МЫШИ), потом если происходит какое то событие(вторая часть кода, событие может быть, создание того же объекта к примеру), то первая часть кода отключается(а если не сделать этого то объект создается каждым щелчком), и также запустится при нажатии на клавишу, и так по кругу)
Можно. Добавляй блок OnChartEvent. В нём следи за нужными нажатиями, измерениями и описывай реакцию на них согласно задумке.
Реализовать именно отключение части кода на срок до нажатия клавиши не получается =/ Есть вариант попроще, но тут одна проблема, нужно чтоб i при нажатии клавиши возращало свое значение в начало первого оператора if
Этот код будет исполнится только если кликнуть мышкой, при этом через 3 строчки кода проверяется событие нажатия клавиши. А эти 3 строчки кода исполнятся за несколько миллисекунд, и даже, если id в течении текущего вызова OnChartEvent способно измениться, то шанс, что в течении времени, исполнения 3х строк кода, будет нажата клавиша = 0%. Очевидно, что проверять id, внутри блока, что запускается при определённом значении id, и ждать там другого значения - бессмысленно. Сначала проверяй нажатие клавиши, в отдельном блоке, сохраняй в переменную номер клавиши или же просто сам факт нажатия нужной клавиши. И этой переменной включай или отключай кусок кода расположенный в блоке для клика мышки.
Огромное спасибо!) вот эта строчка которую я искал if (id==CHARTEVENT_CLICK && key == 'D'), никак не мог два события соединить, вот это не работало if (id==CHARTEVENT_CLICK & id==CHARTEVENT_KEYDOWN) Еще раз большое спасибо)
здравствуйте , у меня есть одна функция , которая считает средний размер свечи по последним n свечам. и иногда выдает вот такие значения: "5e-05.0" . они мне мешают и не нужны, к моему стыду я не знаю количественно это сколько и как их отсечь . NormalizeDouble() не помогает . подскажите пожалуйста как такие числа вычислить програмно чтобы отсечь
здравствуйте , у меня есть одна функция , которая считает средний размер свечи по последним n свечам. и иногда выдает вот такие значения: "5e-05.0" . они мне мешают и не нужны, к моему стыду я не знаю количественно это сколько и как их отсечь . NormalizeDouble() не помогает . подскажите пожалуйста как такие числа вычислить програмно чтобы отсечь
Что бы отсечь, то:
Такие мелкие свечи, в 5 пипсов, только во время штиля, на 5-и знаковом счёте, на низких таймфреймах повстречать возможно. Если дел со скальпингом не имеете, но за n свечей среднее получается иногда столь маленькое, то реализация функции должна вызывать подозрения.