Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я вот об этом. Нужно же принять во внимание существующие ограничения, кот., вообще говоря, всё время меняются.
Есть ли какая-то функция, анализирующая всевозможные ограничения?
То же при модификации.
--
(у меня получилось 16 функций - по 3 на каждый отл. ордер (OP,SL,TP) и по 2 на каждый рыночный (SL,TP),
и потом ещё несколько анализирующих сочетания разрешений).
да, у меня тоже отдельная функция на установку ордера, проверяющая все возможные ограничения и отдельная (частично похожая на первую) на модификацию. код приводить не буду - там столько "левых" наворотов, нужных только мне одному, что - ой. :-) но вообще - без такой в советниках, торгующих на реале - сложно. :-)
да, у меня тоже отдельная функция на установку ордера, проверяющая все возможные ограничения и отдельная (частично похожая на первую) на модификацию. код приводить не буду - там столько "левых" наворотов, нужных только мне одному, что - ой. :-) но вообще - без такой в советниках, торгующих на реале - сложно. :-)
Вообще-то, я хотел проверить себя - всё ли я учёл. В ряде случаев, если проверки не делать, можно напороться на серию отказов (иногда с переспективой получить запрет на работу советников).
Кратко перечислю свои проверки.
1. StopLevel. Например, при модификации SL BuyStop.
Нужна не просто проверка дистанции. Нужно анализировать текущее положение по StopLevel и направление движения стоп-приказа.
Если SL находится за пределами коридора StopLevel, то придвинуть можно вплотную или отодвинуть неограниченно.
Если SL находится в коридоре, то движение вверх отклоняется. Движение вниз принимается, но с учётом StopLevel: если дистанция модификации в пределах коридора дистанции указана 3 п, а коридор 30п, то фактически принимаемое к исполнению значение определяется границей коридора StopLevel.
2. FreezeLevel.
3. Отношение StopLevel и TICKSIZE. Заказ может быть за пределами всех коридоров, но не кратен TICKSIZE - тогда хана. Нужно округлить в сторону направления модифи. Критично для "невалют".
4. Лоты. Минлот +/- миншаглота. Принять во внимание, что частичное и встречное закрытие ограничено минлотом тоже (хотя на мой взгляд это нелогично, но так есть).
После персональных проверок приказ выдаётся в свет, если каждая проверка окончилась позитивно (без запрета).
Полностью опубликованные библиотеки функций:
b-Graphics.rar - работа с графическими объектами.
b-Indicators.rar - работа с индикаторами.
Функция ArrayLR().
Эта функция формирует массив значений линейной регрессии. Функция принимает следующие обязательные параметры:
Пример использования функции ArrayLR().
Отметим ценовые уровни линейной регрессии для 30-ти предыдущих баров.
P.S. Во вложении скрипт для тестирования функции ArrayLR().
Полностью опубликованные библиотеки функций:
b-Graphics.rar - работа с графическими объектами.
b-Indicators.rar - работа с индикаторами.
Оч. здорово! Благодарю!
Игорь, есть хороший индикатор, который может объединять несколько свечей в одну. Но он работает только на часовом графике. Можно ли сделать его универсальным?
Спасибо.
?
?
ооо... извините...
Такой индикатор уже написан, не помню, кем и не помню, где видел... Я думал, Вы сами найдёте или кто-то ссылку даст...
В функции ArrayLR() есть не точность работы.
1. Не учитывает временное расположение баров. При пропуске баров работает некорректно.
2. Используемый алгоритм вычисления коэффициентов имеет недостаток в виде накопления ошибки округления, см. 'Помогите написать линейную регрессию' (самый низ страницы Rosh подтвердил этот подводный камень)
3. Предлагаю алгоритм без этих недостатков
4. Если перед вызовом заменить X[i]=Time[i+1]; на X[i]=i+1; алгоритм аналогичен, но без накопления ошибки.
5. Бары пропускаются не только в выходные :-(((
Вот мой вариант
вот рисунок
Пример работы
скрипт для проверки прилагаю
Вот мой вариант
ок, Серёжа! Пусть будет два варианта этой функции.
Мой вариант хорош тем, что он один в один совпадает со встроенным графическим объектом OBJ_REGRESSION. Если кому-то понадобится брать цены с этого объекта, то моя функция поможет в этом, а твоя - увы... Но её можно будет применять для чего-то другого... Спасибо!