Отличный советник в бэктесте! - страница 112

 
BrazilianTrader:
какой смысл принимать на веру отчеты с низким качеством моделирования????

люди должны знать, что им следует улучшить качество моделирования, прежде чем принимать решения на основе виртуальных результатов;

даже бэктесты с 90% не заслуживают доверия;

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

1. Бэктестинг с 90%;

2. Демо-счет на пару месяцев;

3. Реальный счет;

4. Прибыль;

5. Смех.

Я думаю, что мы не должны отдавать все кредиты эксперту, который "работает очень хорошо" при 50% отчете о качестве моделирования.

Хорошая точка

 
BrazilianTrader:
Качество моделирования 50,00%, что звучит не очень хорошо...

Даже 90% не достаточно хорошо, но если форвард-тест дает хорошие результаты, это то, на что мы должны ориентироваться.

 

Нужна помощь в кодировании...

Мне нужна помощь... Я не понимаю, почему это так сложно.

Все, что мне нужно, это простой закрывающий ордер, основанный на нескольких условиях.

Это короткая половина. Есть еще одна длинная половина, которая соответствует ей.

Но почему этот код...

int ExitMarket() // -------------------- Working the open orders -------------------

{

total = OrdersTotal();

for(int cnt = 0; cnt < OrdersTotal(); cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

// We search for orders opened by this code on our currency

if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)// if this code has an open order on this currency

{

if(OrderType() == OP_SELL) // If the obtained order is by the selling of the currency

{

if(Ask >= OrderStopLoss())// Closing order if it reached the level of the stoploss

{

OrderClose(OrderTicket(), OrderLots(), MODE_ASK , SlipPage, Violet); // Close the order

}

else

{

// We close when the direction reverses

if(ADX DIplus1 || Closing > LowerE)

{

total = OrdersTotal();

OrderClose(OrderTicket(), OrderLots(), MODE_ASK , SlipPage, Violet); // Close the order

Print("Patient1 closed short ticket ",OrderTicket()," on a reverse @: ",Ask," Orders remaining open: ",total," BECAUSE cls: ",Closing," > lwrE: ",LowerE," or ADX: ",ADX," DI+1: ",DIplus1);

total = OrdersTotal();

Print(" Orders remaining open: ",total);

}

else

{

Print("stays open");

}

}

}//ifsell

}//if order is open

}//fororders

return(0);

}//exitmarket [/PHP]

why does it produce this output?

[PHP]2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.272 Orders remaining open: 1 BECAUSE cls: 1.2718 > lwrE: 1.2715 or ADX: 30.0152 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.2719 Orders remaining open: 1 BECAUSE cls: 1.2717 > lwrE: 1.2715 or ADX: 30.0152 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:11 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:10 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:10 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.272 Orders remaining open: 1 BECAUSE cls: 1.2718 > lwrE: 1.2715 or ADX: 30.0152 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:10 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:08 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:08 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.2718 Orders remaining open: 1 BECAUSE cls: 1.2716 > lwrE: 1.2715 or ADX: 31.5632 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:08 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

2006.11.06 19:07:30 2006.11.05 23:07 Patient1 EURUSDm,H1: Orders remaining open: 1

2006.11.06 19:07:30 2006.11.05 23:07 Patient1 EURUSDm,H1: Patient1 closed short ticket 1 on a reverse @: 1.2717 Orders remaining open: 1 BECAUSE cls: 1.2715 > lwrE: 1.2715 or ADX: 31.5632 DI+1: 19.1701

2006.11.06 19:07:30 2006.11.05 23:07 Patient1 EURUSDm,H1: found ticket: 1 type: 1 total open orders: 1

НИКОГДА не выполняет условие разворота, но при этом печатает линию разворота?

и даже если он печатает линию разворота, он никогда не закрывает позицию?

 

Почему люди тратят свое время на этот советник? Он не будет работать на реальном счете. Вы не получите таких заполнений.

 
aegis:
Почему люди тратят свое время на этого советника? Он не будет работать на реальном счете. Вы не получите таких пробок.

Не хватает чего-то лучшего?

Лично я здесь, чтобы учиться, я получаю много опыта и практики кодирования. Если цель состоит в том, чтобы учиться, то для меня здесь много полезного. Однако если у вас есть лучший советник, на который я могу "потратить свое время" ....i я весь внимание.

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

https://www.mql5.com/en/forum/174700/page75

 
aegis:
Почему люди тратят свое время на этот советник? Он не будет работать на реальном счете. Вы не получите таких сливов.

Интересное заключение, "доктор специалист по советникам"...

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

Или, по крайней мере, с любым советником вообще...

Возможно, и это кажется наиболее вероятным, у вас вообще нет опыта работы с советниками по "классическим 3 шагам", и вы боитесь оправдать свои надежды "магической формулой богатства" и разочароваться; так что же проще? Заблокировать наш разум и сказать, что этот советник вообще не работает, конечно.

Как жалко.

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

Мы, в отличие от таких, как вы, предпочитаем тестировать, проигрывать, улучшать, менять, снова и снова, пересматривать свою точку зрения и верить в надежные или гибкие стратегии, которые определенно включают "принятие изменений".

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

 

Похоже, что я решил свою предыдущую проблему с кодировкой.

Теперь у меня появился новый набор проблем и вопросов.

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

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

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

Я думаю, что здесь применим предыдущий ролик, который я разместил некоторое время назад, о температуре воды в 212 градусов. Сейчас она торгуется около 70 - 72%, что хорошо, но это еще не совсем пар. Это горячо, но это как вода при температуре 211 градусов, она на один градус меньше, чем действительно полезна. Моя цель - набрать этот градус. Это может означать лишь добавление еще нескольких процентов к соотношению побед и поражений. Если бы она дошла до 80% всего на десять процентов больше, это было бы потрясающе. В нынешнем виде эту программу трудно продолжать, потому что она, кажется, никогда не взлетит. (во всяком случае, по моему опыту)...

Если я продолжу этот курс, интересно, захочет ли кто-нибудь еще помочь мне в этом? Я создал версию кода, которая распечатывает данные в момент, когда советник открывает ордер. Это выводит в журнал около 7-14 ордеров за раз, прежде чем журнал начинает сжимать вывод и данные теряются. Это означает, что для сбора любого существенного количества данных тестер нужно перезапускать много раз... если только кто-нибудь не научит меня, как заставить его печатать всю эту информацию в файл вместо этого..... Я знаю, что это возможно, я просто не знаю, как это сделать.

В любом случае, я ищу людей с мини-счетом IBFX, которые хотели бы послужить сборщиками данных в этом проекте, пока я разрабатываю электронную таблицу для анализа данных. Если вы заинтересованы, сообщите мне об этом по электронной почте и укажите свой адрес электронной почты, и я вышлю вам версию советника, которую я модифицировал для вывода данных. Мне еще предстоит сделать еще одну модификацию, но она почти готова к работе.

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

Думаю, я достаточно много работал с cybeira, чтобы некоторые из этих вероятностных вещей начали передаваться мне.

 

также вот образец записи файла, прямо из редактора MT...

Это позволит вам вести журнал в файл csv, модифицируйте его по своему усмотрению.

int handle;

datetime orderOpen=OrderOpenTime();

handle=FileOpen("c:\cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

if(handle>0)

{

FileWrite(handle, Close[0], Open[0], High[0], Low[0], TimeToStr(orderOpen));

FileClose(handle);

}

Я работаю на IBFX live, я могу переслать вам тест на микро-лотах. Однако у меня есть другие реальные сделки на счете, поэтому мне придется отделить результаты CT отдельно.

Напишите мне в ЛС адрес электронной почты

 

инженер по найму !!!!

Aaragorn:
Похоже, что я решил свою предыдущую проблему с кодировкой.

Теперь у меня появился новый набор проблем и вопросов.

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

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

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

Я думаю, что предыдущий ролик, который я разместил некоторое время назад о температуре воды в 212 градусов, применим и здесь. Сейчас она торгуется около 70 - 72%, что хорошо, но это еще не совсем пар. Это горячо, но это как вода при температуре 211 градусов, она на один градус меньше, чем действительно полезна. Моя цель - набрать этот градус. Это может означать лишь добавление еще нескольких процентов к соотношению побед и поражений. Если бы он дошел до 80% всего на десять процентов больше, это было бы потрясающе. В нынешнем виде эту программу трудно продолжать, потому что она, кажется, никогда не взлетит. (во всяком случае, по моему опыту)...

Если я продолжу этот курс, интересно, захочет ли кто-нибудь еще помочь мне в этом? Я создал версию кода, которая распечатывает данные в момент, когда советник открывает ордер. Это выводит в журнал около 7-14 ордеров за раз, прежде чем журнал начинает сжимать вывод и данные теряются. Это означает, что для сбора значительного количества данных тестер нужно перезапускать много раз... если только кто-нибудь не научит меня, как заставить его печатать всю эту информацию в файл вместо этого..... Я знаю, что это возможно, я просто не знаю, как это сделать.

В любом случае, я ищу людей с мини-счетом IBFX, которые хотели бы послужить сборщиками данных в этом проекте, пока я разрабатываю электронную таблицу для анализа данных. Если вы заинтересованы, сообщите мне об этом по электронной почте и укажите свой адрес электронной почты, и я вышлю вам версию советника, которую я модифицировал для вывода данных. Мне еще предстоит сделать еще одну модификацию, но она почти готова к работе.

Больше всего меня интересуют данные, которые возникают в пределах одного бара в паттернах башни, которые я уже определил. Я хочу сначала собрать достаточно тестовых данных о том, что происходит внутри логики Cyberia в эти моменты. Не то, чтобы я думал, что другие торговые ситуации должны быть проигнорированы, но они, кажется, не обладают таким большим потенциалом, поэтому я сосредоточился на области наибольшей вероятной прибыли first.....

Думаю, я достаточно долго работал с cybeira, чтобы некоторые из этих вероятностных вещей начали передаваться мне.

Я готов, хочу и могу помочь вам, Арагорн. Проверьте свой адрес электронной почты.

 

Обратное тестирование

Аарагорн,

Есть ли возможность исправить cyberia, чтобы можно было проводить бэктест по ценам открытия бара. В настоящее время это не работает.

Это самый надежный способ бэктестинга.

Прочтите эту статью.

https://www.mql5.com/en/code/9500

Результаты бэктестов всегда будут ненадежными, если ордер исполняется и выходит на одном и том же баре, если только вход не происходит на открытии или выход на закрытии. Это происходит потому, что невозможно определить ценовое действие внутри бара. В бэктесте делается оценка того, что произошло во время бара. Иногда эта оценка может привести к заполнению по цене, которая, по расчетам, должна была произойти до выхода, но на самом деле произошла после. Это может привести к заполнению по невозможным ценам, особенно когда рынок быстро движется в одном направлении. Некоторые стратегии будут непреднамеренно использовать эти невозможные цены для получения невозможных результатов.

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