Автор |
Сообщение |
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
робот интрадейный.
включаю - идет операция Sell или Cover,
а Buy (Short) по мнению робота был вчера.
как можно обнулять вчерашний сигнал или начинать новый день "с чистого листа"?
вроде уже обсуждалось, не смог найти. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Интересно, а как закрылась позиция открытая вчера если сегодня начинаем с "чистого листа"?
А вообще очень просто. Заставь систему всегда закрывать позицию в конце дня. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
да к такому же выводу пришел.
так еще у меня что-то сигналы buy-sell и short-cover вперемешку:
т.е. сначала buy, потом short (????), потом sell, потом cover.
ерунда какая-то.
я, правда, equity(1,0) убрал и оставил только Exrem'ы.
счас поищу где-то на форуме был график позы системы (лонг, шорт, кеш) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
sell
TRANS_ID=011039592; PRICE=91780; QUANTITY=1; OPERATION=S; CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=RIU9;
short ???
TRANS_ID=011547593; PRICE=94680; QUANTITY=1; OPERATION=S; CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=RIU9;
buy ???
TRANS_ID=011657591; PRICE=94195; QUANTITY=1; OPERATION=B; CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=RIU9;
cover ???
TRANS_ID=011732594; PRICE=94725; QUANTITY=1; OPERATION=B; CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=RIU9;
sell ????
TRANS_ID=011814592; PRICE=93745; QUANTITY=1; OPERATION=S; CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=RIU9;
short ????
TRANS_ID=011828593; PRICE=94885; QUANTITY=1; OPERATION=S; CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=RIU9;
cover ??????
TRANS_ID=011842594; PRICE=95305; QUANTITY=1; OPERATION=B; CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=RIU9;
cover ???????????????
TRANS_ID=012123594; PRICE=96055; QUANTITY=1; OPERATION=B; CLASSCODE=SPBFUT; ACTION=NEW_ORDER; TYPE=L; SECCODE=RIU9; |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Да. Это фигня голимая... Строки из tri подряд?
А выложи кусок с exrem()ами. Скорее всего там ошибка. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
да из tri!
причем в реальном времени.
это уже с Экстремами.
я тут обнаружил косяк - в Ref положительные числа - в будущее смотрел,
счас переделал завтра заново буду тестировать и внимательно следить. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
отсеиваю сигналы дважды:
1) сначала идет блок истинности сигналов:
тут проверяется на истинность Buy и Short.
истинный сигнал Buy/Short означает, что либо это первый сигнал вообще, либо до него сработали стопы.
2) в конце программы отсеиваю повторные выходы
с помощью
Sell = ExRem(Sell, Buy);
Cover = ExRem(Cover, Short);
===
система на часовиках
===
только в лонг или только в шорт все верно работает,
а вот и в лонг и в шорт начинается кутерьма. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Угу. Вот в чем там засада. Лонги и шорты между собой никак не связаны и лонговые сигналы никак не фильтруются если система в шорте и наоборот. Поэтому вполне возможен вариант когда система одновременно и в лонге и в шорте. Проще всего это фильтрануть с помощбю ф-ции Equity(); но можно и так. Правда сейчас попробовал без эквити, получатся очень замороченно. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
знать бы что конкретно и как делает эта функция...
и чем отличается Equity(1) от Equity(1,0) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
СИНТАКСИС equity( Flags = 0, RangeType = -1, From = 0, To = 0 )
ВОЗВРАЩАЕТ МАССИВ
ФУНКЦИЯ ПРИМЕЧАНИЕ: Эта функция служит для совместимости со старыми версиями и использования старого, не портфельного тестера. Теперь лучше использовать портфельную эквити (специальный тикер ~~~EQUITY).
Функция:
Возвращает эквити для одного символа базирующуюся на правилах покупки/продажи/короткой продажи/закрытия короткой продажи, buy/sell/short/coverprice массивах, всех стопов (apply stops), и всех других настройках тестера. Flags - определяет поведение функции Equity
0 : (default) Equity работает как в версии 3.98 - просто вычисляет массив капитала
1 : работает как и 0 и еще отфильтровывает массивы buy/sell/short/cover, удаляет все излишние сигналы как это делает тестер а так же расчитывает срабатывание всех стопов. Таким образом становится возможна визуализация срабатывания функции ApplyStop().
2 : (расширенный) работает как и 1, но не возвращает назад сигналы buy/sell/short/cover после смещения в соответствии с настройками задержки (delays). Примечание: этот режим возможен но 99% случаев не должен быть использован.
Остальные значения зарезервированы на будущее.
RangeType - определяет используемый дипазон котировок:
-1 : (по умолчанию) использует диапазон установленый в Automatic analysis
0 : все данные
1 : n последних данных (n определяется параметром 'From')
2 : n последних дней (n определяется параметром 'From')
3 : С/По дату
From : определяет начальную дату (datenum) (если RangeType == 3) или параметр "n" (если RangeType == 1 or 2)
To: определяет конечную дату (datenum) (если RangeType == 3) в других случаях игнорируется
datenum обозначает дату так же как функция DateNum()- YYYMMDD
где YYY обозначает (год - 1900), MM - месяц, DD - день
31 декабрья 1999 должен быть записан в виде 991231
21 мая 2001 должен быть записан в виде 1010521 Все эти параметры оценены на момент вызова функции Equity. Полный массив капитала генерируется сразу. Изменения в правилах buy/sell/short/cover после вызова Equity не учитываются. функция Equity() может быть использована несколько раз в одном коде. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Отличие Equity(1) от Equity(1,0) в том, что первая сработает на диаппазоне установленом в АА а вторая на всех данных. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
Код: |
1 : работает как и 0 и еще отфильтровывает массивы buy/sell/short/cover, удаляет все излишние сигналы как это делает тестер а так же расчитывает срабатывание всех стопов. Таким образом становится возможна визуализация срабатывания функции ApplyStop(). |
так можно тогда стопы в робота через ApplyStop() ставить?
===
у робота интервал 1 последний бар
поэтому лучше применять Equity(1,0) вместо Equity(1)? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
применил Equity(1,0)
уже стал радоваться, что все сигналы ровненькие, и тут на тебе:
TRANS_ID=071909591; PRICE=54400; QUANTITY=1; OPERATION=B; CLASSCODE=Group 255; ACTION=NEW_ORDER; TYPE=L;
TRANS_ID=072109592; PRICE=54070; QUANTITY=1; OPERATION=S; CLASSCODE=Group 255; ACTION=NEW_ORDER; TYPE=L;
TRANS_ID=072329593; PRICE=55805; QUANTITY=1; OPERATION=S; CLASSCODE=Group 255; ACTION=NEW_ORDER; TYPE=L;
TRANS_ID=072109591; PRICE=54240; QUANTITY=1; OPERATION=B; CLASSCODE=Group 255; ACTION=NEW_ORDER; TYPE=L;
TRANS_ID=072329592; PRICE=54500; QUANTITY=1; OPERATION=S; CLASSCODE=Group 255; ACTION=NEW_ORDER; TYPE=L;
TRANS_ID=071649591; PRICE=49655; QUANTITY=1; OPERATION=B; CLASSCODE=Group 255; ACTION=NEW_ORDER; TYPE=L;
TRANS_ID=071709592; PRICE=49640; QUANTITY=1; OPERATION=S; CLASSCODE=Group 255; ACTION=NEW_ORDER; TYPE=L; |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
ох боже ж мой
дальше вообще ужас
и это я убрал все свои фильтры, хотя сигналы на стоп и зависят от сигналов на buy
получается вот ерунда:
TRANS_ID=071749591; PRICE=51630; QUANTITY=1; OPERATION=B; CLASSCODE=Group 255; ACTION=NEW_ORDER; TYPE=L;
TRANS_ID=071829592; PRICE=51560; QUANTITY=1; OPERATION=S; CLASSCODE=Group 255; ACTION=NEW_ORDER; TYPE=L;
TRANS_ID=071609592; PRICE=51860; QUANTITY=1; OPERATION=S; CLASSCODE=Group 255; ACTION=NEW_ORDER; TYPE=L;
TRANS_ID=071929591; PRICE=52230; QUANTITY=1; OPERATION=B; CLASSCODE=Group 255; ACTION=NEW_ORDER; TYPE=L;
TRANS_ID=071049593; PRICE=51310; QUANTITY=1; OPERATION=S; CLASSCODE=Group 255; ACTION=NEW_ORDER; TYPE=L;
TRANS_ID=071049594; PRICE=51310; QUANTITY=1; OPERATION=B; CLASSCODE=Group 255; ACTION=NEW_ORDER; TYPE=L;
т.е.
buy
sell
sell
buy
short
cover
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
Novi4ok
Зарегистрирован: 15.08.2008
Сообщения: 127
|
хм... вспомнил!
я ж на барреплей счас тестирую
все дни подряд
может из-за этого получаются сигналы невпопад
попробую в идентификатор добавить день |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|