Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Как из стабильно сливающей системы сделать денежный пылесос! Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Чт Янв 16, 2014 2:10 pm Ответить с цитатой Вернуться к началу

Мужики. Вот допустим такая ситуация. Есть система, сливает СТАБИЛЬНО! Сливает это канеш плохо, а то что стабильно это же вроде как хорошо! Стабильность это здорово) И вот у меня родилась идея - инвертировать правила! То есть входим в другом направлении, вместо стопов - тейк профит! По идее, в таком случае получим стабильно зарабатывающую систему. Ед, нужно добавить доп условие (стоп) на выход если вдруг та "сливалка" каким то макаром выйдет на положительный трейд. Но вопрос не в этом! Smile
В общем так. Что я хочу. То есть имеем мы 2 системы с одинаковым набором параметров, хорошего двойника и плохого Smile. И мне надо оптимизировать 1 систему, а потом использовать эти полученные параметры для торговли 2й системой. Как бы это реализовать??? Rolling Eyes Если через CBI, то покажите плиз на примере системы на машках) А то я с ним не работал ни разу.. И как бы это для форвардного теста реализовать.. Форвард всему голова Smile
Посмотреть профиль Отправить личное сообщение ICQ Number
Mechanic



Зарегистрирован: 10.06.2008
Сообщения: 359

СообщениеДобавлено: Чт Янв 16, 2014 3:08 pm Ответить с цитатой Вернуться к началу

Великого Тугрика на тебя нет. Ты, конечно же, не знаешь, кто это (о, несчастный! Smile), поэтому прямой наводящий вопрос: средний результат сделки по модулю превышает спред и комиссию или нет? Если нет, то переворачивать бесполезно.

А как оптимизировать - это же просто. Перепиши систему, перевернув ней правила, да и всё. Это же элементарно - 8 строчек в конец кода добавить. ))
Посмотреть профиль Отправить личное сообщение ICQ Number
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Чт Янв 16, 2014 3:29 pm Ответить с цитатой Вернуться к началу

Хто такой Великий Тугрик? Это божество, на которое молятся все форекс-мэны? Very Happy
Слух ну средняя сделка точно выше спреда и комеса. Иначе ессно будет обе сливающие системы. А тут есть edge! Smile
Да ты не понял. Если я тупо поменяю бай на шорт, а селл на кавер, то при оптимизации будут ДРУГИЕ параметры. А мне нужны в ТОЧНОСТИ те же!
Посмотреть профиль Отправить личное сообщение ICQ Number
Mechanic



Зарегистрирован: 10.06.2008
Сообщения: 359

СообщениеДобавлено: Чт Янв 16, 2014 3:35 pm Ответить с цитатой Вернуться к началу

spitfire писал(а):
Хто такой Великий Тугрик? Это божество, на которое молятся все форекс-мэны? Very Happy

Ну, близко. Very Happy Изобретатель термина ППМС ("писят на писят минус спред"), который и означает, что системы сливают обычно в пределах спреда, то бишь игра с отрицательным МО. И затрахавший всех этой банальностью. Laughing

Цитата:
Слух ну средняя сделка точно выше спреда и комеса. Иначе ессно будет обе сливающие системы. А тут есть edge! Smile

Тогда собирай статистику и куй железо, не отходя от кассы. )


Цитата:
Да ты не понял. Если я тупо поменяю бай на шорт, а селл на кавер, то при оптимизации будут ДРУГИЕ параметры. А мне нужны в ТОЧНОСТИ те же!

Что значит другие? Наихудшие параметры на сливающем варианте будут наилучшими на перевёрнутом. Или тебе надо подобрать наилучшие на сливающем варианте и потом запустить с ними перевёрнутый вариант??? Так они же будут наихудшими для него.
Посмотреть профиль Отправить личное сообщение ICQ Number
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Чт Янв 16, 2014 3:42 pm Ответить с цитатой Вернуться к началу

Mechanic писал(а):
Что значит другие? Наихудшие параметры на сливающем варианте будут наилучшими на перевёрнутом. Или тебе надо подобрать наилучшие на сливающем варианте и потом запустить с ними перевёрнутый вариант??? Так они же будут наихудшими для него.

Именно! Smile Я же говорю про форвардное тестирование. Поэтому алгоритм такой:
1. Я на InSample провожу оптимизацию сливающей системы, нахожу оптимальные для НЕЕ параметры.
2. На OOS я торгую с найденными параметрами, но систему-перевертыш.
И я ума не приложу как это реализовать. Только как то через жеппу с записью в файл этих параметров, а потом считыванием новой системой. Но тут непонятно как отличить бектест от оптимизации, чтобы писать их только во время бектеста после оптимизации. То есть схема тогда должна быть такой: проводим форвард сливающей системы, на выходе получаем файл с датой - параметрами. Потом проводим обычный бектест уже системы перевертыша, где в коде считываем из файла данные с параметрами. Как реализовать-та?
Посмотреть профиль Отправить личное сообщение ICQ Number
Mechanic



Зарегистрирован: 10.06.2008
Сообщения: 359

СообщениеДобавлено: Чт Янв 16, 2014 3:47 pm Ответить с цитатой Вернуться к началу

Не понимаю, какой в этом смысл. Думаю, ты просто извращенец. Smile

Посмотри список параметров для функции Status(). Если там есть что-нибудь вроде "insample", "outofsample", тогда можно будет запускать разные участки кода на разных фазах скользящего теста.
Посмотреть профиль Отправить личное сообщение ICQ Number
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Чт Янв 16, 2014 3:55 pm Ответить с цитатой Вернуться к началу

Оу, отличная функция! Спасибоу! Вот что есть:
actionBacktest (NOTE backtest only, no optimization)
actionExOptimizeBacktest - when Backtest is performed as a part of optimization process
Вроде то что нужно. Если еще и заработает, то совсем будет супир Cool
Mechanic писал(а):
Не понимаю, какой в этом смысл. Думаю, ты просто извращенец. Smile

Мне моя девушка тоже это постоянно говорит Laughing Так что может ты и прав)
Посмотреть профиль Отправить личное сообщение ICQ Number
Mechanic



Зарегистрирован: 10.06.2008
Сообщения: 359

СообщениеДобавлено: Чт Янв 16, 2014 4:00 pm Ответить с цитатой Вернуться к началу

spitfire писал(а):

Мне моя девушка тоже это постоянно говорит Laughing Так что может ты и прав)

Думаю, мы с ней о разном. Laughing
Посмотреть профиль Отправить личное сообщение ICQ Number
nightcarrier



Зарегистрирован: 24.02.2010
Сообщения: 67

СообщениеДобавлено: Чт Янв 16, 2014 9:23 pm Ответить с цитатой Вернуться к началу

Тов. spitfire`у скучно ) Ужос. Very Happy
Человек, юзающий Монте-Карло для оптимизации, типо, не знает азов. Ага. Или Вы нас экзаменуете, уважаемый? Ну-с, извольте.

Построенная Вами стабильно сливающая система не коррелирует ни с какими зонами несовершенства рынка. При этом собирает "белый шум" стопами, ни в коей мере не компенсируемый случайными тейк-профитами. При "правильной" настройке (на шум) слив особенно, потрясающе стабилен ) И даже не скоростью транзакционных издержек (как в целом правильно, но без погружения ответил студент тов.Механик) а гораздо быстрее и надежнее )
Инвертирование системы будет иметь следствием приближение к мат.ожиданию на out-of-sample (WF), со сбором других случайных колебаний бывшими тэйками (ныне стопами).
Таким образом, противоположностью стабильно сливающей системы будет не стабильно зарабатывающая, а сливающая нестабильно.

Можно с зачеткой подойду, а семинар тупо пробухаю ? Very Happy
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Пт Янв 17, 2014 9:12 am Ответить с цитатой Вернуться к началу

nightcarrier писал(а):

Инвертирование системы будет иметь следствием приближение к мат.ожиданию на out-of-sample (WF), со сбором других случайных колебаний бывшими тэйками (ныне стопами).
Таким образом, противоположностью стабильно сливающей системы будет не стабильно зарабатывающая, а сливающая нестабильно.

Можно с зачеткой подойду, а семинар тупо пробухаю ? Very Happy

Двойка без права пересдачи, добро пожаловать в армию, сынок! Laughing
В инвертированной системе - я писал выше - что этот стоп будет другим, нежели тейк у первоначальной. И никаких других случайных колебаний мы своим стопом собирать не будем - только те, на которых сливала первоначальная (и на которых мы заработаем - параметры же точно такие же). Стоп будет использоваться когда сделка на определенном этапе будет оценена как высоко-вероятно прибыльная для первоначальной системы, то есть дожидаться тейк-профита у первоначальной не будем (так как в случае трендовой первоначальной системы этот профит может достигать +100500%).
В общем в выходные извращусь и посмотрим что получится - я больше практик чем теоретик.
Монте-Карло я не использую для каких то супер сложных моделей - просто для оценки параметров, когда система начнет идти вразнос чтобы вовремя остановиться Smile
Посмотреть профиль Отправить личное сообщение ICQ Number
Mechanic



Зарегистрирован: 10.06.2008
Сообщения: 359

СообщениеДобавлено: Пт Янв 17, 2014 10:21 am Ответить с цитатой Вернуться к началу

spitfire писал(а):
В инвертированной системе - я писал выше - что этот стоп будет другим, нежели тейк у первоначальной.

Где это ты такое писал, и с чего вдруг он будет другим? Shocked Он будет другим только на величину спреда - если стоп для лонга ставили по бид, то ТП для перевёрнутого шорта нужно будет поставить по аск, чтобы соблюсти условие зеркальности сделок. При этом цена входа в перевёрнутый шорт тоже будет отличаться на спред от цены входа в исходный лонг, так что результат перевёрнутой сделки будет хуже исходной на два спреда.

Цитата:
Стоп будет использоваться когда сделка на определенном этапе будет оценена как высоко-вероятно прибыльная для первоначальной системы, то есть дожидаться тейк-профита у первоначальной не будем (так как в случае трендовой первоначальной системы этот профит может достигать +100500%).

Чаво?!! Это столько телодвижений для "безупречно правильной" форвард-оптимизации, чтобы потом на неё плюнуть и торговать по чуйке?!! Ох, права твоя девушка! Laughing

А предыдущего оратора зря в армию отправил, толковый юноша. Laughing Не, серьёзно, всё он правильно написал. Единственная ремарка - слив со скоростью транзакционных издержек не подразумевает равномерность этой скорости. Конечно же, речь идёт о статистическом усреднении. На большом отрезке в среднем на каждые 100 мелких профитов будет один большой выброс, съедающий весь профит. Итог: МО = минус издержки. Это на ГСЧ с нормальным распределением. А на самом деле оно будет ещё меньше. Не знаю, как там на фонде, а на валютах (на основных) распределение островершинное, с тяжёлыми хвостами.Так что если торговать систему а-ля "случайный вход, короткий стоп и дальний профит", то МО (без учёта издержек) будет больше нуля, т.е. будет перекос в пользу редких дальних выбросов. Соответственно, короткий профит и дальний стоп при случайном входе (торговля "на шуме") дадут МО < 0, но при этом на эквити (построенной по закрытым сделкам) будет много красивых монотонно растущих участков. Между обвалами.
Посмотреть профиль Отправить личное сообщение ICQ Number
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Пт Янв 17, 2014 11:23 am Ответить с цитатой Вернуться к началу

Да чего вы пристали к транзакционным издержкам и спреду?? Та система сливает если спреды выставить в ноль, как и издержки! Омг, всех в армию отправлю сортиры чистить зубной щеткой!! Laughing
И еще раз, в 3ий уже, грю, что стоп в инвертированной системе != тейку в оригинальной. Так спецом задумано Wink Кончайте очевидные вещи говорить. На след неделе подготовлю графики и посрамлю вас, негодяев!!
Посмотреть профиль Отправить личное сообщение ICQ Number
Mechanic



Зарегистрирован: 10.06.2008
Сообщения: 359

СообщениеДобавлено: Пт Янв 17, 2014 11:48 am Ответить с цитатой Вернуться к началу

spitfire писал(а):
Да чего вы пристали к транзакционным издержкам и спреду??

Потому что злейшие враги они для нас есмь! ) Из-за них от пылесосов остаётся только сос, и совсем не денежный. Smile
Посмотреть профиль Отправить личное сообщение ICQ Number
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Пн Янв 20, 2014 11:31 am Ответить с цитатой Вернуться к началу

Что-то не получается в файл записать дату, с которой запускался бектест Confused В файле стабильно в качестве даты используются последние бары, независимо с каким временным интервалом запускался бектест.
Логика такая:
1. В коде системы прописал переменную, в которую записывается номер бара последнего сигнала (logLastBar).
2. Потом после бектеста запускаю процедуру записи лога, где прописывается месяц, год и параметры.
В результате получаю строчку с параметрами, но дата стоит последнего месяца, присутствующего в базе.
Более того, если прописать логирование при каждом сигнале, то опять же, независимо от временного интервала для бектеста, в логе я вижу отчет по КАЖДОМУ месяцу, присутствующему в базе.. Ну чзх..
Такое чувство что бектест делается по всем данным, а потом просто в репорте вычленяются только те, что попали на выбранный юзером интервал Evil or Very Mad
Как же вычленить в коде, на каком временном интервале он запускался?? Иначе придется через эксель этот файлик генерить..
Вот код логирование если что:
Код:

procedure WriteLog()
{
if(Status("ActionEx") == 5)            //если код запущен в качестве бектеста (не оптимизация)
{
   str = FullName()+ "," + NumToStr(logMonth[logLastBar], format = 1.0, separator=False) + "," + NumToStr(logYear[logLastBar], format = 1.0, separator=False) + "," + NumToStr(param1, format = 1.0, separator=False) + "," + NumToStr(param2, format = 1.0, separator=False) + "," + NumToStr(param3, format = 1.0, separator=False) + "," + NumToStr(param4, format = 1.2, separator=False);
   f = fopen("C:/params.ami", "r");      // Открываем файл для чтения
   found = 0;
   if(f)                               // Если файл открыт без ошибок
   {
      while(!feof(f))                   // Читаем до конца файла построчно и проверяем на повторную запись
      {
         s = fgets(f);
         if(StrFind( s, str) > 0)
            found = 1;
      }
      fclose(f);
   }
   if (NOT found)                      // запись не повторная
   {
      f = fopen("C:/params.ami", "a");         // открываем файл для записи новых параметров
      if(f)
      {
         fputs(str+"\n",f);
               fclose(f);
      }
   }
}
}
Посмотреть профиль Отправить личное сообщение ICQ Number
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Пн Янв 20, 2014 2:13 pm Ответить с цитатой Вернуться к началу

Гспди, какой же тупой саппорт в амиброкере. Я ему про определение интервала бектеста, а он мне про двойные кавычки в путе к файлу. Пздц.
Посмотреть профиль Отправить личное сообщение ICQ Number
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen