[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 56
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Класика это хорошо, но всерано есть проблемка)))
Теретически я то это понимаю но на практике не получается, может посмотрите на мой код и скажете что не так
Понимаю, что это простенький советник но я только начинаю свой путь))) и уже есть проблемка
// Суть советника в том что сначала он открывает первый ордер на покупку
// затем выставляет стопы в две стороны
// в одну сторону как продолжене уже открытого ордера
// в другую в два раза больше в случае разворота графика
// стопы выставляются по отношению к последнему открытому советником ордеру
// с каждым новым открытием нового отложеного ордера, все старые удаляються
// а ноые отложеные стопы уже открываются относительно нового открытого ордера.
Под термином стопы можно понимать 2 вещи - стоп-приказы (тейкпрофит и стоплосс) и стоповые отложки (Байстоп и Селлстоп). Что тут имеется ввиду под термином "стопы", понятно наверно только Вам. Пожалуйста, будьте точны в терминах. Компу нужно давать точные инструкции. Описание должно быть для этого тоже максимально точным
Прошу прощения за неточности под стоп-приказами имееться ввиду стоповые отложки (Байстоп и Селстоп)
Прошу прощения за неточности под стоп-приказами имееться ввиду стоповые отложки (Байстоп и Селстоп)
Эта функция написана не правильно. Ордера нужно перебирать от последнего к первому в списке ордеров. Ваш метод перебора приведёт к тому, что 1 ордер будет пропущен, так как после удаления список ордеров сдвигается по своим позициям. Цикл нужно организовывать так:
Далее, если орден не выбран, не нужно делать брек - не нужно выходить из цикла - нужно узнать причину, почему ордер не выбран. То есть так:
res=OrderDelete(OrderTicket()); - это тоже недостаточно правильно. Функция OrderDelete() имеет булевый тип. И помимо отдачи приказа на удаление ордера нужно обработать и ситуацию, если ордер удалить не получилось. То есть так:
Остальное гляну позже.
Код функции старт написан не верно.
Первой функцией Вы складываете бай и селл ордера. Вам нужно подсчитывать отдельно бай и отдельно селл-ордера. Вот вчём дело. Если в рынке есть 1 бай-ордер, то нужно байстоп ставить с увеличенным лотом. Верно? А если в рынке селл-ордер, то байстоп нужно ставить с нормальным лотом, а селл-стоп с увеличенным. Как же Вы распознаете какой у Вас в рынке открыт ордер, если Вы суммируете Бай и Селл ордера в одной функции? Попробуйте переделать код в свете этих фактов.
Подскажите, пожалуйста, как автоматически подгрузить историю от брокера? А то home жать по часу как-то неудобно.
Подскажите, пожалуйста, как автоматически подгрузить историю от брокера? А то home жать по часу как-то неудобно.
Вопрос по индикатору.
Индикатор кросовый. Рисует много стрелок в одну сторону, потом много в другую. Как сделать, чтоб рисовались только первые. Пробовал так как вриведенном коде, но при переключений таим фрейма вце меняется.
Подскажите как это правильно сделать.
Надо бы посмотреть индикатор. Может и найдется решение
Помогите, пожалуйста, откорректировать советник. Необходимо сделать так, чтобы он работал с ордерами (своими и открытыми пользователем) той валютной пары, на графике которой установлен. Имеется в виду момент фиксирования прибыли или убытка. В текущей версии при наступлении условия (отлов % депозита) он пытается закрыть все позиции (с MAGIC=0) по всем парам, а это мне не надо. Необходимо полностью разграничить все валютные пары. Заранее благодарю.
А писать одно и тоже в разные ветки - это уже спам и можно бан получить
А писать одно и тоже в разные ветки - это уже спам и можно бан получить
Прошу прощение - как всегда хочется всё и сразу ))
Благодарю за внимание и понимание ))
Смог сам решить проблему:
всавил хитрую строчку if(OrderSymbol()!=SMB || OrderMagicNumber()!=MAGIC) continue;
в не менее хитрое место. После чего всё заработало, как и задумывалось.
Благодарю за подсказку с магиком. Я не программист, поэтому иной раз чего и недодумываю по незнанию.