А как вы его вызываете (индюк) ? Приведите кусок кода.
Да, какая версия терминала ?
Уважаемые. Пишу советника.
А как вы его вызываете (индюк) ? Приведите кусок кода.
Да, какая версия терминала ?
void DrawLastOrderSellAdx() { // сначала определяем последний ордер Sell int LastOrderSell = 0; int BarsShift = 0; double AdxPLUSDI = 0; double AdxMINUSDI = 0; double LevelNext = Ask; double LevelClose = Ask; if (cnts != 0) { LastOrderSell = TicketS[0]; OrderSelect(LastOrderSell,SELECT_BY_TICKET); BarsShift = iBarShift(Symbol(), 0, OrderOpenTime(), -1); // теперь вычисляем Adx и рисуем на графике AdxPLUSDI = iADX(Symbol(), 0, BarsShift, PRICE_MEDIAN, MODE_PLUSDI,0); AdxMINUSDI = iADX(Symbol(), 0, BarsShift, PRICE_MEDIAN, MODE_MINUSDI,0); LevelNext = OrderOpenPrice() + (MathRound(AdxPLUSDI) * Point) ; LevelClose = OrderOpenPrice() - (MathRound(AdxMINUSDI) * Point); } Text("z_LastSellOrder","Последний Sell ордер : " + DoubleToStr(LastOrderSell,0),9,"Arial", 0, 100, White); Text("z_LastSellOrderBars","Столько баров назад : " + DoubleToStr(BarsShift,0),9,"Arial", 0, 120, White); Text("z_LastSellAdxPlus","DI+ : " + DoubleToStr(AdxPLUSDI,2),9,"Arial", 0, 140, White); Text("z_LastSellAdxMinus","DI- : " + DoubleToStr(AdxMINUSDI,2),9,"Arial", 0, 160, White); Text("z_LevelPlus","Level Next Order : " + DoubleToStr(LevelNext,4),9,"Arial", 0, 180, White); Text("z_LevelMinus","Level Close Price : " + DoubleToStr(LevelClose,4),9,"Arial", 0, 200, White); }
void Text рисует объекты.
За HideTestIndicators спасибо. Собственно 3-й вопрос отпадает :-)
Теримнал Version 4.0 build 509
Эта функция выполняется при каждом тике:
void Text рисует объекты.
За HideTestIndicators спасибо. Собственно 3-й вопрос отпадает :-)
Теримнал Version 4.0 build 509
впало сразу в глаза - если используете функцию в тестере - то тестер не моделирует значения аска и бида, кажись.
Эта функция выполняется при каждом тике:
void Text рисует объекты.
За HideTestIndicators спасибо. Собственно 3-й вопрос отпадает :-)
Теримнал Version 4.0 build 509
сделайте вход в расчеты только на новом баре
при оптимизации отключите код который не влияет - например вывод результатов - получите прирост скорости
Еще один вопрос, смотри картинку.
Как в таком случае закроется ордер ?
При изменении периода, Ваш основной индикатор полностью пересчитывается, хотя Вам это не надо, нужен только текущий участок. Отсюда и тормоза, от этого и уходите.
Я включил-бы код индикатора в советник.
ЗЫ Оп-па, да мы уже неделю сами с собою разговариваем(:
Ну, да и ладно, если зачинщик беспорядков сюда еще заглянет, то от меня напоминание по вопросу 1: это функция JCL (языка управления заданиями), публикации которого я не видел и вряд-ли когда-нибудь увижу.
Еще один вопрос, смотри картинку.
Как в таком случае закроется ордер ?
Странный ТР для такого ордера, да и байстоп вроде нельзя поставить ниже цены.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Уважаемые. Пишу советника.
В зависимости от всякой определенной фигни советник у меня на каждом тике пересчитывает значение iADX, но период при каждом обращении разный.
Соответственно для каждого периода Метатрейдер пересчитывает индикатор чем катастрофически укорачивает свободную память.
Я бы и не против, только
1. Память всё же не резиновая.
2. После нажатия кнопки остановке тестера начинается создание подокон индикатора ( причем со значениями только 12 окон, остальные пустые), что вселенски парит :-)
Что я хочу :
1.Освобождать память динамически, но тогда интересует алгоритм обращения к индюку .
2. По возможности индикаторами считать не весь график, а последние N баров (N <300)
3. запретить(контролировать) отрисовку индикаторов в тестере и создание окон индикаторов.
Эксперты! Поясните плз, чайнику! Заранее спасибо...
Upd.: Да совсем забыл . MQL4