По поводу тестера стратегий

 

Думая над тем как бы соорудить чудо - советник - вечный - грааль который еще и за пивом сам бы бегал, я, натолкнулся на интересную штуку. Итак, советник который ставит ордера при определенных фиксированных условиях на продажу со стопами. Тестирую... Потом меняю ордер с продажи на покупку, оставляю те же условия входа на рынок, корректирую стопы покупки под стопы продажи и снова тестирую... Результаты разные... Хм, видимо где ошибся в коде... Нет, ошибки нету, но, на всякий случай меняю ордер обратно на продажу с исходными условиями закрытия и входа на рынок, тестирую... Результат первого раза... Быстро, пока терминал не понял подвоха, меняю все на оборот и запускаю тест... результат четвертого теста один к одному со вторым... Минут 15 сижу думаю как такое может быть, условия входа одни и те же, стопы на тех же ценах, но тестер не закрывает ордера покупки в то же время как и ордера продажи, хотя ставит исправно в то же время... Итак, 2 раза случайность, 3 закономерность! Проверяю все условия, дублирую стопы и цену входа на рынок Принтом, иду за пивом (советник пока за ним не бегает) и запускаю тест в режиме визуализации, наблюдаю. И вот что я обнаружил. Первый же ордер на продажу исправно ставится в свое законное время, ставит стопы на свои положенные места, а вот цена не доходит 1 пункта до своей положенной отметки! У какая! Доходит только через 3 часа после положенного срока, после чего, собственно, благополучно срабатывает стоп. Интересно! Быстро, быстро ставлю визуализацию советника с продажей ордера. Все как и должно быть, стоп закрыт, как и в первые раз.

Значит что имеем? Есть два оппонента. Точно известно что один из них нагло врет, причем в лицо, и не стесняется совсем, или, нагло врут оба, что мало вероятно и тогда точно, что оба бесстыдники. Пишем эмулятор ордеров на покупку и продажу с теми же условиями входа и стопами, дублированием котировок ордеров в сторонний носитель, короткая отладка и тестим... Забавно, но я получил средний результат. Пишем советник с теми же условиями входа, но без стопов, в роли стопа ставим OrderClose. Результат эмулятора.

Итак вердикт, редко тестер не доводит котировку до стопа. Причем закономерно, на одни и те же позиции, и до одних и тех же стопов, на разных направлениях ордеров.

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


P.S. Разница между количеством закрытых ордеров эмулятором и обычными средствами, составляла не больше 10%-15%.

 
Sledo:


Тестируйте с постоянным спредом - для этого инет НУЖНО ОТКЛЮЧИТЬ. Между тестами инет не включайте - и все будет одинаково. - спред всегда меняется - и результаты разняться, и очень сильно могут отличаться .

 
Достаточно в терминале разрешить прокси-сервер, и в строку адреса вписать "бфывоарфыволр" :))
 

Наверное я что то не так написал.

Проблема в том что сколько бы я раз не запустил советника с ордерами продажи результат по закрытым ордерам ОДИН и ТОТ ЖЕ.

Сколько бы я раз не запустил советника с покупкой разницы в результате НЕТ.

Зато разница между результатом закрытых ордеров покупкой и продажей при тех же условиях ЕСТЬ(небольшая).

 
Sledo:

Наверное я что то не так написал.

Проблема в том что сколько бы я раз не запустил советника с ордерами продажи результат по закрытым ордерам ОДИН и ТОТ ЖЕ.

Сколько бы я раз не запустил советника с покупкой разницы в результате НЕТ.

Зато разница между результатом закрытых ордеров покупкой и продажей при тех же условиях ЕСТЬ(небольшая).

Вам же ответили: "СПРЕД!!"!!!!! И пусть он равен 2 пунктам. SL = TP = 10 пунктам. Bid = 1.5555. High свечи = 1.5565 и образовался он раньше, чем Low свечи = 1.5545.

1). BUY открылся по цене Ask = Bid + Spread = 1.5557. SL = 1.5557-0.001 = 1.5547, TP = 1.5557+0.001 = 1.5567.

Что будет происходить дальше!? Цена пошла вверх и дошла до High свечи, но ордер не закрылся по TP, так как BUY закрывается по Bid и Нам нужна цена 1.5567, а у Нас то High = 1.5555. Пошли вниз и BUY выбило по стопу.

2). SELL открылся по цене Bid = 1.5555. SL = 1.5555+0.001 = 1.5565, TP = 1.5555-0.001 = 1.5545.

Что будет происходить дальше!? Цена пошла вверх и даже не дошла до High свечи, а ордер уже закрылся по SL, так как SELL закрывается по Ask, Нам нужна цена 1.5565 и у Нас она есть High + Spread > 1.5555.

 
Мде... Большая просьба, перед тем как писать ответ и/или совет, если хотите помочь, читайте внимательно описание проблемы. В описании есть все ключевые позиции по проблеме(хотя это для меня больше неудобство чем проблема). Стопы стояли с учетом спреда. Котировка не доходила 1(один) пункт до стопа по ордеру на продажу. P.S.Сорь за грам. ошибки в этом ответе. Писалось с телефона.
 
Sledo:
Мде... Большая просьба, перед тем как писать ответ и/или совет, если хотите помочь, читайте внимательно описание проблемы. В описании есть все ключевые позиции по проблеме(хотя это для меня больше неудобство чем проблема). Стопы стояли с учетом спреда. Котировка не доходила 1(один) пункт до стопа по ордеру на продажу. P.S.Сорь за грам. ошибки в этом ответе. Писалось с телефона.
Выложите, пожалуйста, картинки с тестера стратегий и докажите Нам Свою правоту!
 

Что касается картинок, к сожалению у меня не осталось отчетов, поскольку дело было давно. Что касается доказательств то у меня нет ни желания ни запасов пива (советник по прежнему игнорирует запросы на доставку пива), что бы доказывать свою правоту. Был факт того что котировка в одном случае доходила до отметки стопа, в другом не доходила 1 пункт до стопа. Собственно отчего стоп и не срабатывал. Дабы подтвердить этот факт, я протестировал дополнительными программками, которые подтвердили что есть такой факт неточности, причем закономерный и закономерность зависит от того какой ордер стоит. Пока что, самые точные результаты, мне выдает только Excel. Но это, конечно, уже отладка для конечных результатов.


Также факт в том что существует разница в результатах между программами с одинаковыми условиями на вход и одинаковыми условиями на выход, но по разному реализованными (выходы из ордера) в тестовом режиме. Я думаю накидать несколько примитивных программок в 40 строк и проверить изложенные факты не составит труда даже начинающему программисту. Лично я просто обхожу препятствия если их не преодолеть.


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


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

 
Sledo:

Потом меняю ордер с продажи на покупку, оставляю те же условия входа на рынок, корректирую стопы покупки под стопы продажи и снова тестирую.

Ну, тогда рассказывайте, как Вы корректируете. Если у Вас есть ордер на продажу с ценой, SL и TP, какие условия будут у ордера на покупку?
 
Roger:
Ну, тогда рассказывайте, как Вы корректируете. Если у Вас есть ордер на продажу с ценой, SL и TP, какие условия будут у ордера на покупку?


Я понимаю, что то что есть, просто не может быть, просто по тому, что этого быть Не может. Итак, затратив 10 минут на текст исходника, подгонку ордеров, выкладываю отчеты в которых неплохо видно неточности в результате.


int OrdenSell,a;
     
int start()  // начало функции старт
  {
    
     
     if(Hour()==00 && a ==0)
      {
      
      a=5;      
      //OrdenSell=OrderSend(Symbol(),OP_SELL,0.1,Bid,5,Ask+51*Point,Ask-51*Point,"m",1,0,Red);
      OrdenSell=OrderSend(Symbol(),OP_BUY,0.1,Ask,5,Bid-30*Point,Bid+72*Point,"m",1,0,Red);

      }
      
     if(Hour()==23)
      {
      
      a=0;
      
      } 
      
   }
return(0);//Конец программы.


Отчеты в прикрепленных файлах.




ЛЕНТЯИ!



Надо уничтожить как ересь!

Файлы:
ttcwe1.zip  23 kb
 
Файлы:
kjfgm2.zip  23 kb
Причина обращения: