Всем привет! (поздравляю с победой сборной по футболу над голландцами)!!!!!
Теперь к делу: почему советники с различными индикаторами тестируются с разной скоростью??? у меня два советника на основе пользовательских индикатрах. один тестируется в считанные секунды, другой может час тестировать месячные данные??????!!!!!!
С чем это вязано и как можно это убыстрить???
Заранее благодарен за ответы!
разные индикаторы имеют разное время расчета
стандартыне - встроенные индикаторы работают очень быстро
если используете внешние то зависит от индикатора в большинстве случаев можно не просто ускорить - а на порядки поднять скорость
вы пользуетесь не своими индикаторами ? т е не собственной разработки ?
тогда выложите сюда может кто и подскажет где покрутить
можно к примеру запретить обращаться к индикатору чаще чем в 5 минут на M5 ( а на H1 какой смысл пересчитввать на H1 индикатор на кадом тике можно пускать раз в час )
будет уже многократное ускорение
можно к примеру запретить обращаться к индикатору чаще чем в 5 минут на M5 ( а на H1 какой смысл пересчитввать на H1 индикатор на кадом тике можно пускать раз в час )
будет уже многократное ускорение
Поясните, пожалуйста.
Я работаю на Н1. Мои операции (как то установка и модификация ордеров) происходят при приходе нового бара. То, что от меня не зависит (СЛ, ТП), - на каждом тике. Использую свои индикаторы (обращение к функциям) и чужие (через iCustom).
Надо сделать, чтобы блок торговли работал 1 раз на бар. Обращение к индикаторы реже чем раз на бар - замедляет работу тестера.
int start(){ static int LastTime=0; bool Error=false; if(LastTime!=Time[0]){ ...Открытие, закрытие ордеров, контроль... if(...Ошибка при открытии/закрытии ордера...)Error=true; } if(!Error)LastTime=Time[0]; // чтобы блок торговли больше не работал на этом баре // здесь трейлинги }
Кроме этого, индикаторы должны просчитываться только на новом баре - использовать IndicatorCounted(). Еще в индикаторах лучше поменьше использовать всякие циклы, лучше использовать побольше буферов, чтобы лишних расчтеов не делать. Например, при расчете простой скользящей можно на каждом баре сумму считать циклом, а можно можно еще один буфер сделать для суммы
#property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Red extern int SMAPeriod=14; double sma[]; double sum[]; int init(){ SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,sma); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,sum); SetIndexEmptyValue(1,0.0); return(0); } int start(){ int limit=Bars-IndicatorCounted(); for(int i=limit-1;i>=0;i--){ sum[i]=sum[i+1]; sum[i]+=(Close[i]-Close[i+SMAPeriod]); sma[i]=sum[i]/SMAPeriod; } return(0); }

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет! (поздравляю с победой сборной по футболу над голландцами)!!!!!
Теперь к делу: почему советники с различными индикаторами тестируются с разной скоростью??? у меня два советника на основе пользовательских индикатрах. один тестируется в считанные секунды, другой может час тестировать месячные данные??????!!!!!!
С чем это вязано и как можно это убыстрить???
Заранее благодарен за ответы!