#40972 - Sun Apr 29 2012 09:53 PM
Открытие позиции в нужную дату и в нужный месяц.
|
journeyman
Registered: Fri Aug 26 2011
Записи: 93
|
Здравствуйте! Помогите реализовать условие:вход в позицию в последний торговый день месяца и торгуем только 1,2,7 месяцы. По дате пробовал так: дата(1.02.11)-дата(31.01.11)=70 (так записыватся формат даты 110201-110131=70), т.е условие если data-datai-1>65 то вход, но он у меня открывает не 1.02 а 2.02, а мне необходимо именно 1.02. Пробовал записывать data(i+1)-data>70 (чтобы входить 1.02), но он пишет ошибка блока, индекс выходит за пределы дивпазона. Как входить в нужный месяц, вообще не понял. Подскажите, пожалуйста.
|
Наверх
|
|
|
|
#40983 - Mon Apr 30 2012 02:26 PM
Re: Открытие позиции в нужную дату и в нужный месяц.
[Re: nik]
|
journeyman
Registered: Wed Dec 21 2011
Записи: 75
|
Непонятно, зачем оно вам надо, но еще следует учесть, что последний торговый день приходится на разные дни недели. Например: в январе - понедельник (30) в феврале- среда(29) в марте - пятница(30) в апреле - пятница(27) а в следующем году тоже все сдвинется. И как это все учитывать? Наверное, надо считать недели: 4;8;32 а вход делать по дням недели?
Отредактировано TSA48 (Mon Apr 30 2012 02:42 PM)
|
Наверх
|
|
|
|
#41000 - Tue May 01 2012 12:42 PM
Re: Открытие позиции в нужную дату и в нужный месяц.
[Re: TSA48]
|
journeyman
Registered: Fri Aug 26 2011
Записи: 93
|
Спасибо! Но я это и учел условием дата(1.02.11)-дата(31.01.11)=70, и не важно приходится на какой день недели, главное что при переходе на след месяц эта разница больше 68. но тут проблема что это условие выполняется только 1 числа месяца, в входить будет 2го, а мне нужно вход 1го, т.е как то определить это условие именно 31го. А как торговать в нужный месяц вообще не знаю!!
|
Наверх
|
|
|
|
#41003 - Tue May 01 2012 02:20 PM
Re: Открытие позиции в нужную дату и в нужный месяц.
[Re: nik]
|
journeyman
Registered: Wed Dec 21 2011
Записи: 75
|
Я все ещё не понимаю зачем писать робота, чтобы совершить три сделки в год! Не проще ли руками? На оплате электричества и услуг брокеров-провайдеров разоритесь! Ведь все это время (аж семь месяцев!) и комп и ваш робот должны быть включены и активны! А если электричество пропадет или интернет - программа зависнет! Ну да ладно - это ваш секрет, видимо! Дальше - по вашим условиям смотрим: Помогите реализовать условие:вход в позицию в последний торговый день месяца и торгуем только 1,2,7 месяцы. и ещё : а мне нужно вход 1го, т.е как то определить это условие именно 31го. А как торговать в нужный месяц вообще не знаю!! Условия, мягко говоря, непонятные! Вход в позицию в последний торговый день месяца (а это может быть любой день недели и не всегда 31 число, а еще бывают субботы рабочие) и дальше пишите, что нужен вход первого числа месяца??? А как торговать в нужный месяц - для примера вам картинки: на них oz - счетчик на пять месяцев (можно на любое другое колличество); oz1 - счетчик на два месяца. На панели 2 показан пример сигнала входа в последний рабочий день недели- в пятницу. Время входа - через блок "время" + формула. Входите в нужный месяц, в нужный день, в нужное время а остальные сигналы отсекаете. Есть и другие варианты входа - ищите, пробуйте! График: http://s019.radikal.ru/i613/1205/a4/dad1643c432d.jpgКонструктор: http://s019.radikal.ru/i633/1205/16/3922f98bd91c.jpg
|
Наверх
|
|
|
|
#41012 - Tue May 01 2012 07:52 PM
Re: Открытие позиции в нужную дату и в нужный месяц.
[Re: TSA48]
|
journeyman
Registered: Fri Aug 26 2011
Записи: 93
|
Спасибо большое. Со счетчиком месяцев вопрос ясен. Но как реализовать покупку именно в последний торговый день месяца и не важно какой это день недели и не важно 29,30 или 31ое.
|
Наверх
|
|
|
|
#41019 - Wed May 02 2012 08:10 AM
Re: Открытие позиции в нужную дату и в нужный месяц.
[Re: nik]
|
journeyman
Registered: Wed Dec 21 2011
Записи: 75
|
Тогда возьмите календарь за какой нужно год и выбирайте нужные даты! Так как у вас всего три сделки в год это не трудно будет сделать! Только заранее узнайте у нашего правительства когда и как будут переносы рабочих дней в связи с теми или иными праздниками! Потом при помощи простых формул задайте дату и время сделок. Для примера картинка где написаны условия для двух сделок - 31 января 2012г в 10:00 и вторая в 10:00 29 февраля 2012г. Кстати, приношу извинения за ошибку в предыдущем посте (странно, что никто не заметил?) там счетчики считают недели а не месяцы! Ну это ничего страшного - в месяце четыре недели, так что месяцы не трудно посчитать! конструктор: http://i026.radikal.ru/1205/cc/b3f751841b0c.jpg
|
Наверх
|
|
|
|
#41081 - Wed May 02 2012 07:44 PM
Re: Открытие позиции в нужную дату и в нужный месяц.
[Re: TSA48]
|
journeyman
Registered: Fri Aug 26 2011
Записи: 93
|
Понятно, спасибо. По счетчику месяца вопрос. Посчитал кол-во недель (OZ), и теперь OZ должен и константа (3,7) должны пересекаться снизу, но OZ это сохраняемое значеие и с него нельзя вывести больше стрелок. Как это значеие (OZ) вывести оттуда, заранее спасибо. Этот скрипт нужен для теста алгоритма за длительное время, с покупками в определенный день и месяц. Я оттестировал руками его, но нужно парметры подобрать и на разных инструментах проверить.
|
Наверх
|
|
|
|
#41194 - Thu May 03 2012 05:53 PM
Re: Открытие позиции в нужную дату и в нужный месяц.
[Re: ViL]
|
journeyman
Registered: Fri Aug 26 2011
Записи: 93
|
Скажите как рациональнее всего реализовать открытие позиции в последний торговый день месяца и торгуем 1 2 3 4 5 11 12 месяцы. Счетчик сделал, но не до конца, как войти в последний торговый день месяца не могу найти решения.
|
Наверх
|
|
|
|
#41197 - Thu May 03 2012 06:32 PM
Re: Открытие позиции в нужную дату и в нужный месяц.
[Re: nik]
|
TSLab
Carpal Tunnel
Registered: Sun Oct 17 2010
Записи: 8139
|
Если в блоке формула, например, написать 100*(Math.Truncate(Дата/100)) то Вам вернется только день и месяц, год будет всегда 00. А если не умножать на 100, можно получить порядковый день месяц. Таким же образом можно вернуть только дни, либо только месяцы, либо год. Вообще, Math методы позволяют делать многое: http://msdn.microsoft.com/ru-ru/library/xaz41263.aspx
Отредактировано ViL (Thu May 03 2012 06:35 PM)
|
Наверх
|
|
|
|
#41261 - Fri May 04 2012 07:34 PM
Re: Открытие позиции в нужную дату и в нужный месяц.
[Re: ViL]
|
journeyman
Registered: Fri Aug 26 2011
Записи: 93
|
Понятно. 100*(Math.Truncate(Дата/100)) только тут не год будет 00 а день 00. Подскажите как занулить именно год, т.е получить формат числа например 000101?
|
Наверх
|
|
|
|
#78704 - Fri Jun 24 2016 04:12 PM
Re: Открытие позиции в нужную дату и в нужный месяц.
[Re: ViL]
|
journeyman
Registered: Sat Apr 23 2016
Записи: 63
|
Формула для получения номера (1..12) месяца из даты: Math.Truncate(Math.IEEERemainder(Дата,10000))/100).
Номер дня в месяце: Math.IEEERemainder(Дата,100).
Пример логической формулы - даёт True на 1 баре 15 числа 3,6,9 и 12 месяцев. Я склеиваю фьючерсы на утро 15 числа и скачки между фьючерсами вырезаю этим сигналом.
(Math.IEEERemainder(Дата,100)==15)&&(Math.IEEERemainder(Дата[i-1],100)==14)&&(Math.Truncate(Math.IEEERemainder(Дата,10000)/100)==Math.Truncate(Math.Truncate(Math.IEEERemainder(Дата,10000)/100)/3)*3)
Для нефти BR проще: Math.IEEERemainder(Дата[i-1],100)>Math.IEEERemainder(Дата,100)
|
Наверх
|
|
|
|
|
|