Предложения для эксперта (от убытков к прибыли) - страница 4

 

вот как это выглядит на 2 годовом тесте, изменение на 1 лот, изменение на фрейм 240, оба параметра сделаны синхронно друг с другом=60. (И все эти логики сняты, кроме M60).

Бары в тесте 13544
Смоделировано 5961890 тиков
Качество моделирования 90.00%
Ошибки несовпадения графиков 0
Начальный депозит 10000.00
Итого чистая прибыль 30459.02
Валовая прибыль 99716.99
Валовый убыток -69257.97
Коэффициент прибыли 1.44
Ожидаемая прибыль 152.30
Абсолютная просадка 1037,97
Максимальная просадка 20707,98 (35,94%)
Относительная просадка 35,94% (20707,98)
Всего сделок 200
Короткие позиции (выигранные %) 97 (30,93%)
Длинные позиции (выигранные %) 103 (30.10%)
Прибыльные сделки (% от общего количества) 61 (30.50%)
Убыточные сделки (% от общего количества) 139 (69.50%)
Крупнейший
прибыльная сделка 5833.00
убыточная сделка -3156.00
Средний
прибыльная сделка 1634.70
убыточная сделка -498.26
Максимум
выигрыши подряд (прибыль в деньгах) 6 (14728.00)
последовательные проигрыши (убытки в деньгах) 12 (-1587.00)
Максимальный
последовательная прибыль (количество выигрышей) 14728.00 (6)
последовательный проигрыш (количество проигрышей) -9507.00 (5)
Среднее
последовательные выигрыши 1
последовательные проигрыши 3

 
diostar 2011.10.05 12:37

Вы неправильно поняли. MTF - это не причина и даже не проблема. Prb - это просто MA. Позвольте мне попытаться объяснить, очень коротко.

МА говорит о прошлом. Поэтому, когда вы берете сигнал МА, скажем, на H1, ожидание, E, заключается в том, что на следующем фрейме, скажем, H4, будет "соглашаться" с прошлым H1. Получение прибыли - это когда прошлое H1 проявляется на текущем H4. Когда наступает E, это означает закрыть сделку, или сделать все, что хочет стратегия.

Но в данном случае плакат поступил наоборот. Это довольно элементарный недостаток торговли, потому что все ожидания перепутаны.


Но мультитаймфрейм - не моя сильная сторона. Поэтому, пожалуйста, поправьте мои мысли, если они ошибочны.

В приведенной вами логике:

if((Close[0]<=fastMA30 && Close[0]<=fastMA60 && Close[0]<=fastMA240))

&&, которое я выделил красным, говорит мне, что fastMA240 также должна быть согласна.

Видя, что fastMA240 является самым медленным из всех MA. Разве не разумно было бы сказать, что fastMA240 делает систему более медленной к изменениям. И что вся система страдает от того, что хочет сказать быстрыйMA240?

Теперь, если мы примем ваше предложение:

if((Close[0]<=fastMA30 && Close[0]<=fastMA60))

Теперь мне кажется, что если оставить быстрыйMA240 в стороне, то система будет быстрее реагировать на изменения. Но у нас все еще остается проблема MA60, управляющего шоу.

В заключение: все, что имеет значение, это то, является ли этот подход прибыльным в долгосрочной перспективе. ИМО нет способа сказать, что лучше. Ваш подход или подход оригинального автора без тестирования :)

И наконец, то, что мне не нравится в приведенных выше кодах. 1) Использование текущего бара, как в Close[0], этот код не дружественен бэктестеру. 2) Использование знака =, как в <=, во-первых, очень редко цены могут быть =, потому что они имеют тип double. А во-вторых, в редких случаях, когда все MAs = Close[0], система становится без направления, например: if(xMA>=Close[0]){Buy}_____if(xMA<=Close[0]){Sell}, каково правильное действие, когда =Close[0].

 
diostar:

Судя по результатам, я не буду рекомендовать никакой оптимизации. Пока эти вопросы стратегии и логики не будут рассмотрены.

Во-первых, у меня не было столько времени после 7-летнего теста на H1 и столько мотивации, чтобы просмотреть все строки кодов в советнике, но меня, конечно, поразило использование двух магических чисел - для "медленных" сделок и "быстрых" сделок. Что это за стратегия, подумал я?

Затем я просмотрю шаблоны кодирования, попробую закомментировать номер slowmagic. Иа не сработала, как и ожидалось.

Затем я закомментировал второе магическое число для быстрых сделок. И, сюрприз, сюрприз, ea компилируется без ошибок.

Так что, похоже, логика совершенно не соответствует желаемому? Наверняка ваш советник наполняется только на основе логики медленной МА, но никогда на быстрой?

Поскольку вы являетесь владельцем этого советника, у вас должны быть лучшие ответы на все эти вопросы, чем мои простые способы.


У меня были идеи, которые не были реализованы, поэтому вы видите медленные и быстрые магические числа.


Советник использует медленное магическое число только для ордеров, и оно полностью отделено от медленных и быстрых MA, которые сканируются входами.

Надеюсь, это ответ на ваш вопрос.

спасибо

 
ubzen:
Ребята, вы должны превратить это в небольшой проект по созданию выигрышной системы из этого. Каждый начинает с текущей версии советника и затем добавляет к ней что-то. Затем вы, ребята, выбираете самого сильного кодера среди вас, чтобы собрать лучшие идеи. Когда вы достигнете цели, поместите ее в кодовую базу. Будет довольно интересно посмотреть, что получится.

Я был бы рад сотрудничать в такой попытке построить прибыльный советник из базовой версии советника, который был размещен.

 
mbirrell:

Я бы искал другой способ входа в рынок. Когда сигнал подается этими индикаторами, уже слишком поздно. Я всегда использую лимитные ордера в ожидании того, что будет делать рынок. Кто-то может посмеяться над таким подходом, но для меня это работает. Помните, что это не спринт, а марафон.


Я определенно согласен с вашей логикой, но как мне преобразовать мою существующую логику, чтобы она соответствовала модели лимитного ордера?
 
danjp:

Интересная идея, я f c0d3 не против, я бы попробовал. Я должен быть в состоянии заменить мою функцию правил на правила mfro его. Это даст ему правила торговых часов, уведомление по электронной почте, проверку ошибок, суммирование, лимитные и отложенные ордера, трейлинг-стоп, стоп и т.д. Возможно, потребуется всего день или два, чтобы заставить эти правила работать в оболочке моего советника. Затем я мог бы подкорректировать правила, чтобы сделать его более прибыльным.

Я определенно не против этого, но не могли бы вы поделиться своим кодом в этой теме?
 
diostar:

Если вы видели его "правила", то они примерно такие (для случая продажи):

С математической точки зрения, это полная ерунда. Причина в том, что MA на более высоких фреймах, как и ожидалось, медленнее из-за большего времени, необходимого для завершения бара, чем на более низких. Таким образом, вся эта логика в конечном итоге определяется в первую очередь нижним фреймом:

Следовательно, к тому времени, когда МА показывает прошлое с точки зрения МА240, затем 60, затем 30, рынок был на продажу. Мое предложение может быть просто "обратным" этому бессмысленному правилу, так что вместо короткого входа, идите в длинный, и наоборот. Я уверен, что результат окажется более красивым.



Позвольте мне объяснить короткую сделку, для длинной сделки все наоборот:

  • Условие входа 1: Если текущая цена закрытия ниже MA30(100 образцов), MA60(100 образцов) и MA240(100 образцов), мы находимся в нисходящем тренде.
if((Close[0]<=fastMA30 && Close[0]<=fastMA60 && Close[0]<=fastMA240))
   {
      // we are in a downtrend
      //Comment("\n"+"short only");
      shortEntry();
   }
  • Условие входа 2: Подождать, пока цена закрытия entryTF(15M) не окажется выше MA30(50 образцов) и MA60(50 образцов)

if(iClose(Symbol(),entryTF,1)>=slowMA30 && iClose(Symbol(),entryTF,1)>=slowMA60)
  • Вход в короткую позицию

Идея: MTF Logic

  • Когда цена находится ниже MA30, которая основана на M30
  • Когда цена ниже MA60, которая основана на H1
  • Когда цена ниже MA240, которая основана на H4
  • ждать, пока цены закрытия M15 не окажутся выше MA30, которая основана на M30
  • ждать, пока цены закрытия M15 не окажутся выше MA60, которая основана на M60.
  • Вход в короткую позицию: с параметрами ордера


Я также попробую изменить условия входа и посмотрю, что произойдет


Надеюсь, это ответ на ваш вопрос

 
ubzen:

@diostar, интересные идеи и взгляд на MTF-логику. Это то, что я заметил о MTF Logics, один таймфрейм обычно доминирует в системе.

@danjp, да, это, вероятно, самый быстрый способ ввести правила в рабочую программу, которой вы доверяете. Поскольку у большинства из нас уже есть шаблон, в который можно вставить логику. Если кому-то неудобно отдавать свои коды, можно предложить, чтобы тот, кто собирает коды, использовал доверенные библиотеки из нашей кодовой базы. (Пример: OrderReliable.mqh.).

Знаете что! Мне нравится эта идея. Если я смогу собрать 3 человека, я начну новую тему. Мы объединим усилия в попытке создать прибыльного советника. Это будет хороший тест, чтобы увидеть, действительно ли несколько трейдеров могут торговать одной и той же системой. :)


Пожалуйста, опубликуйте здесь тему, если вы начнете ее, я определенно хочу принять участие
 
danjp:

Я бы сделал оптимизационный прогон, в котором (1*std) -> (5*std), а также в том же прогоне попробовал бы 0,3 - > 1,5 для SL и TP. Я бы начал с 12-месячного прогона. Если вы получите достойные результаты от некоторых из этих прогонов, я бы добавил в советник рутину торговли по часам и использовал значения, которые вы получили от предыдущего прогона, чтобы посмотреть, можете ли вы улучшить его еще больше, не торгуя 24/7.

Удачи, продолжайте публиковать результаты.

Можете ли вы порекомендовать какую-либо документацию для проведения бэктеста с (1*std) -> (5*std) и (0.3 - > 1.5 для SL и TP).
 
diostar:

Общий итог форвард-теста - 156 сделок - гораздо надежнее, чем 39 сделок бэктеста. Вся идея бэктестов заключается в том, чтобы заключить как можно больше сделок и получить быстрые результаты. Для чего нужно бэктестирование?







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


Было много случаев, когда вы видите, что советник прибыльный на бэктесте, затем запускаете его в реальном времени, и вдруг советник разбивает ваш банк.

Причина обращения: