возможно, сижу вот и думаю, точного значения спреда мне не нужно, нужен некий порог в спреде, при превышении которого торговля запрещена, если сделать то что вы предлагаете, то может быть ошибочные входы,
скажем типичный спред для пары 30 пипсов, в ночное время иногда спред раздвигается до 40-60 пипсов, но бывает и сужается, , мне нужно поставить ограничение на торговлю роботу, такое, что б средний спред считался за 10 минут, к примеру.
если использовать мин макс и делить пополам, то получиться вот что, к примеру спред это каждый тик в течении минуты: 45,45,46,46,48,45,0,11,98,45,47
мин = 0
макс = 98, средний спред, по вашему предложению 49 (0+98/2=49)
а мне нужно так : 45+45+46+46+48+45+0+11+98+45+47/11= 43,27
то есть уже отличие, а если мониторить 10 -15 минут то данные будут весьма не объективны (я так предполагаю :) , хотя ....)
и если создать условие, что типичный спред за последниее 10 минут <= 44, торговля разрешена
вот что то в этом роде нужно
Нерациональные затраты будут, если считать средний спред. Данные в массиве надо будет смещать на каждом тике, и не фиксированое количество элементов, а время проверять.
Проще и разумней так:
static datetime lasttime=0; static bool CanTrade=false; if(спред>допустимыйСпред){ lasttime=TimeCurrent(); CanTrade=false; } else{ if(TimeCurrent()>lasttime+Пауза) { CanTrade=true; } }Смысл в том, что если спред зашкалил, торговля запрещена, а когда вернулся в норму еще выжидаем некоторое время, прежде чем торговля будет разрешена.
Точно!!!! огромное спасибо, главное упрощает работу эксперта, поставим паузу 5-8 минут, и если будет продолжать шкалить, значит не врем для торгов :)
Ну тогда или действительно массив с каждым тиком увеличивая размер заносить туда значение, а потом сумму всех значений делить на размер массива или 2 переменные, в одну суммировать спред, а во вторую считать тики и потом вычислять и обнулять переменные.
А в общем это пустая затея. Если увеличение произошло в последние секунды контрольного времени, соответственно средний спред будет не выше допустимого, а потом в течении всех 5ти минут будет выше и только по истечении этого времени будет произведён перерасчёт.
Так-что не мудрствуя лучше поставить запрет на время при увеличении текущего спреда, а не среднего. А потом по истечении этого времени опять проконтролировать и принять решение. ИМХО.
ps: ой как долго я писал...
Ну тогда или действительно массив с каждым тиком увеличивая размер заносить туда значение, а потом сумму всех значений делить на размер массива или 2 переменные, в одну суммировать спред, а во вторую считать тики и потом вычислять и обнулять переменные.
А в общем это пустая затея. Если увеличение произошло в последние секунды контрольного времени, соответственно средний спред будет не выше допустимого, а потом в течении всех 5ти минут будет выше и только по истечении этого времени будет произведён перерасчёт.
Так-что не мудрствуя лучше поставить запрет на время при увеличении текущего спреда, а не среднего. А потом по истечении этого времени опять проконтролировать и принять решение. ИМХО.
ps: ой как долго я писал...
...задача такая, вычислить средний спред за последние 10 минут...
Понимаю, что Вы уже получили альтернативную формулировку задачи, но и изначально поставленная задача имеет простейший вариант решения, без всяких массивов.
Производная любого скользящего среднего равна (X0-Xn) /n, поэтому в init считаете начальное значение, а в start добавляете к нему значение производной и получаете новое значение скользящего среднего на каждом тике.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Привет форумчане, помогите написать функцию расчета среднего спреда, за единицу времени, используя массивы (ранее я не когда не пользовался ими, в большей степени данная функция нужна в ознакомительных целях)
задача такая, вычислить средний спред за последние 10 минут,
думаю использовать массивы, в которые записывать спред на каждом тике, далее находить среднее значение этого массива, далее найти среднее значение всех объявленных массивов
Заранее спасибо