[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 11
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я там пытался открывать ордера на новом баре используя функцию NewBar(). Если ее использовать для этого?
К примеру if(NewBar())i++; Как-то так.
NewBar не заметил, извиняюсь
Тогда измените следующее: Вам же нет необходимости считать каждый тик весь индикатор, если сделки вы открываете только на новом баре.
Вот и переместите весь расчет индикатора перед проверкой условий открытия сделки и считайте не limit баров, а столько, сколько вам необходимо (20 если не ошибаюсь)
То есть стратегия такая:
1) новый бар? нет - гуляем
2) да - считаем все что надо (MA, индикатор, все остальное для условий)
3) проверяем условия - нет - гуляем
4) да - открываемся по _текущей цене_ (Ask или Bid соответственно)
NewBar не заметил, извиняюсь
Тогда измените следующее: Вам же нет необходимости считать каждый тик весь индикатор, если сделки вы открываете только на новом баре.
Вот и переместите весь расчет индикатора перед проверкой условий открытия сделки и считайте не limit баров, а столько, сколько вам необходимо (20 если не ошибаюсь).
Все верно 20. Это я примерно понял как сделать. Вы объясните уж пожалуйста В ЧЕМ именно разница при моем подсчете и подсчете ТОЛЬКО 20 баров для эксперта.
Просто хочу суть ошибки понять.
одной сделки, в чем ошибка?
З.Ы. Уверен, что ошибок много и глупых, просьба расстреливать холостыми.
Проще переписать код по-своему видению, чем разбираться "что Вы тут танцуете", например, здесь:
Не сталкивался, как будет отрабатывать функция, используемая в индикаторах в советнике:
Но, если "без разницы", то организуемый Вами цикл:
Где limit = Bars - counted_bars, на 2-м тике примет значение равное 0, потом по коду ему присвоится значение... ОПА - а вот это вообще НОВОЕ СЛОВО в прграммировании:
...попробуйте записать это условие так, если это не поломает ВСЮ стратегию:
Т.е. использовать это условие для пересчета баров?
Но у меня в индикаторе на каждом тике рассчитываются массивы TP_UP и TP_DN. Соответственно первостепенно нужно их рассчитать.
Повторяюсь, цена открытия позиции OP_BUY==Ask,, OP_SELL==Bid.
А у вас Close[i].
Все верно 20. Это я примерно понял как сделать. Вы объясните уж пожалуйста В ЧЕМ именно разница при моем подсчете и подсчете ТОЛЬКО 20 баров для эксперта.
Просто хочу суть ошибки понять.
Ошибки как таковой в расчете всего индикатора нету. Просто подумайте что быстрее:
1) считать Bars (около 10000) баров каждый тик
2) считать 20 баров 1 раз в в минуту (а то и в несколько)
одной сделки, в чем ошибка?
З.Ы. Уверен, что ошибок много и глупых, просьба расстреливать холостыми.
НЕ ПРИНЦИПИАЛЬНО, но для упрощения кода, эту конструкцию:
следовало бы заменить на простое объявление массива УЖЕ с размерностью:
double delta,price,old_price,col_bar,sum_tick,sum_pip,TP_UP[20],TP_DN[20],TP_UPMin[20],TP_DNPl[20];
Все верно 20. Это я примерно понял как сделать. Вы объясните уж пожалуйста В ЧЕМ именно разница при моем подсчете и подсчете ТОЛЬКО 20 баров для эксперта.
Просто хочу суть ошибки понять.
этой функции из кода самого индикатора все работает. Вот код библиотеки.
Это вызов в коде индикатора:
Вадим, ты такую маленькую закорючку (&) поставил, что сразу и не разглядишь!.. :)))
Интересно, как у Автора (в авторском исполнении) эта функция в одном месте исполнялась, а в другом нет?! ;)
Все верно 20. Это я примерно понял как сделать. Вы объясните уж пожалуйста В ЧЕМ именно разница при моем подсчете и подсчете ТОЛЬКО 20 баров для эксперта.
Просто хочу суть ошибки понять.
Кстати, обратил внимание: Вы объявляете рабочие массивы с размерностью 20:
А библиотека Ваша рассчитывает 21 элемент:
Могу предположить, что цикл нужно начинать с 1: