У вас не стоит Flash Player
Настройки
#40972 - Sun Apr 29 2012 09:53 PM Открытие позиции в нужную дату и в нужный месяц.
nik Offline
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]
TSA48 Offline
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]
nik Offline
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]
TSA48 Offline
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]
nik Offline
journeyman

Registered: Fri Aug 26 2011
Записи: 93
Спасибо большое. Со счетчиком месяцев вопрос ясен. Но как реализовать покупку именно в последний торговый день месяца и не важно какой это день недели и не важно 29,30 или 31ое.

Наверх
#41019 - Wed May 02 2012 08:10 AM Re: Открытие позиции в нужную дату и в нужный месяц. [Re: nik]
TSA48 Offline
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]
nik Offline
journeyman

Registered: Fri Aug 26 2011
Записи: 93
Понятно, спасибо. По счетчику месяца вопрос. Посчитал кол-во недель (OZ), и теперь OZ должен и константа (3,7) должны пересекаться снизу, но OZ это сохраняемое значеие и с него нельзя вывести больше стрелок. Как это значеие (OZ) вывести оттуда, заранее спасибо. Этот скрипт нужен для теста алгоритма за длительное время, с покупками в определенный день и месяц. Я оттестировал руками его, но нужно парметры подобрать и на разных инструментах проверить.

Наверх
#41086 - Wed May 02 2012 08:29 PM Re: Открытие позиции в нужную дату и в нужный месяц. [Re: nik]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8137
В текущей версии 1.1 пересечение с обновл.значением не сделать.
В 1.2 такая возможность есть.
А почему именно пересечение. Вроде у Вас подойдет и лог формула со знаками ><


Отредактировано ViL (Wed May 02 2012 08:30 PM)

Наверх
#41194 - Thu May 03 2012 05:53 PM Re: Открытие позиции в нужную дату и в нужный месяц. [Re: ViL]
nik Offline
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]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8137
Если в блоке формула, например, написать 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]
nik Offline
journeyman

Registered: Fri Aug 26 2011
Записи: 93
Понятно. 100*(Math.Truncate(Дата/100)) только тут не год будет 00 а день 00. Подскажите как занулить именно год, т.е получить формат числа например 000101?

Наверх
#41269 - Fri May 04 2012 09:36 PM Re: Открытие позиции в нужную дату и в нужный месяц. [Re: nik]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8137
Ну так как-то так же, с помощью Math функций получить ненужное число, потом отнять его от блока Дата.

Наверх
#78704 - Fri Jun 24 2016 04:12 PM Re: Открытие позиции в нужную дату и в нужный месяц. [Re: ViL]
kirc Offline
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)

Наверх


Moderator:  ViL, sar