Советники: Мультивалютный советник на основе кластерного индикатора. Вторая версия - страница 6

 
vegetate:
evbut:
vegetate:

Хинт: Строчку

if (MarketInfo(sym,MODE_TRADEALLOWED)!=1) {Print ("Торговля по инструменту ",sym," запрещена ДЦ!!!");no_open=1;}

заменить на

  if ((! IsTesting() && MarketInfo(sym,MODE_TRADEALLOWED)!=1) ||
       (IsTesting() && price == 0)) {Print ("Торговля по инструменту ",sym," запрещена ДЦ!!!");no_open=1;}

Что даст замена?


Это только для тестера.

"Использование функции MarketInfo формирует ошибку ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE(4059), однако выдается корректная информация о текущих ценах тестируемого символа, о размере уровней стопов, размере пункта, размере спреда любого символа, присутствующего в окне котировок."

т.е. MarketInfo(sym,MODE_TRADEALLOWED) может некорректное значение возвращать (что оно и успешно делает, по крайней мере у меня - не позволяет открывать сделки даже на текущем символе).


ясна

 
Mircea:

Уважаемый Alexandros! Не подскажите, как прицепить "CC" к "ccfp_v3"., а то я в програмировании 0++. "Complex Comon" у меня прицепить получилось. Тестил неделю. Вроде бы ничего, хотя бы не слил. "СС" вроде получше чем "Complex Comon" - чувствительней. Должен работать. Помогите. Результаты обязуюсь выкладывать!

позвольте объяснить... СС и Complex Common - 'то один и тот же индикатор. и зачем его цеплять в ту версию совтеника, когда в этой он уже используется на равне с CCFp

 

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

Что могу сказать по поводу тестера...

Сильно сомневаюсь что это возможно... Т.к. как уже говорилось здесь, сами индикаторы мультивалютные. И они будут корректно работать только на ВСЕХ валютах.

В основе индикаторов заложен именно этот принцип. А в тестере это просто невозможно. Обратите внимание, кто не знаком с творчеством Сем Семыча -сумма значений всех валют - ВСЕГДА равна 0. И если например отключить все валюты кроме двух, например, оставить только евру и бакс - то график на индикаторах будет совершенно непохож на тот который дают линии евры и бакса, когда включены все валюты. И пересечения этих линий будут совершенно на других барах.

Так что - если оставить в индикаторах только две валюты - весь комплект (советник+индикаторы) будут работать совершенно не так, как на реале. Т.е. работать они будут абсолютно корректно, но относительно именно тех условий в которые мы их загоним в тестере. Т.е. результаты не будут иметь абсолютно ничего даже похожего на результаты реала.

Так что ИМХО - в тестере прогнать, конечно, возможно, только это лишено какого либо смысла.

Вот пока и все что хотел сказать... со всеми предложениями и пожеланиями буду разбираться немного позже.

 
evbut:
Mircea:

Уважаемый Alexandros! Не подскажите, как прицепить "CC" к "ccfp_v3"., а то я в програмировании 0++. "Complex Comon" у меня прицепить получилось. Тестил неделю. Вроде бы ничего, хотя бы не слил. "СС" вроде получше чем "Complex Comon" - чувствительней. Должен работать. Помогите. Результаты обязуюсь выкладывать!

позвольте объяснить... СС и Complex Common - 'то один и тот же индикатор. и зачем его цеплять в ту версию совтеника, когда в этой он уже используется на равне с CCFp

Хорошо! Тогда как отключить CCFp (мне он что-то не очень)?

 
Mircea:
Хорошо! Тогда как отключить CCFp (мне он что-то не очень)?


:) 

Мне Анжолина Джоли тоже что-то не очень!

 
genro:
Mircea:
Хорошо! Тогда как отключить CCFp (мне он что-то не очень)?


:) 

Мне Анжолина Джоли тоже что-то не очень!


Код прочтите... отключить ССFp можно элементарно... просто удалить проверку условий с этого индикатора из строк которые вычисляют сигнал

этот блок в коде выделен каментом... да и вообще код прокомментирован.. разобраться имхо не сложно

 

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

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

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

 
Mircea:
evbut:
Mircea:

Уважаемый Alexandros! Не подскажите, как прицепить "CC" к "ccfp_v3"., а то я в програмировании 0++. "Complex Comon" у меня прицепить получилось. Тестил неделю. Вроде бы ничего, хотя бы не слил. "СС" вроде получше чем "Complex Comon" - чувствительней. Должен работать. Помогите. Результаты обязуюсь выкладывать!

позвольте объяснить... СС и Complex Common - 'то один и тот же индикатор. и зачем его цеплять в ту версию совтеника, когда в этой он уже используется на равне с CCFp

Хорошо! Тогда как отключить CCFp (мне он что-то не очень)?

как отключить, я не знаю. в програмировании понимаю не больше вашего )) да и не стоит его отключать, потому как оба инидикатора фильтруют сигналы друг друга. Я проверил работу на одном индюке СС - сливатор

 

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

Относительно трала хотелось бы заметить следующее. Почему именно половину закрывать? в каком-то советнике я встречал трех уровневое сопровождение позиций. А именно:

1) цена прошла плюсом X пунктов - закрываем треть позиции стоплос переносим на этот уровень,

2) прошла Y пунктов - закрываем вторую треть позиции и стоплос переносим на этот уровень и

3) цена пошла дальше на Z пунктов - закрываем остаток позиции.

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


Если кто может внести такую поправку в код поделитесь пожалуйста!

И еще добавил в код я все таки новозеландца вот таким кодом

//NZD
   if (top==8)
      {
      if (down==1){ sym="NZDUSD"; op=0;}
      if (down==2){ sym="EURNZD"; op=1;}
      if (down==4){ sym="NZDCHF"; op=0;}
      if (down==5){ sym="NZDJPY"; op=0;}
      if (down==6){ sym="AUDNZD"; op=1;}
      if (down==7){ sym="NZDCAD"; op=0;}
//**************************      


и к каждой валюте прицепил, а он все равно не торгует по нему. в чем проблема? В индикаторах новозеландец не отключен

может стоит вынести обсуждение на форум?

 
evbut:

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

Относительно трала хотелось бы заметить следующее. Почему именно половину закрывать? в каком-то советнике я встречал трех уровневое сопровождение позиций. А именно:

1) цена прошла плюсом X пунктов - закрываем треть позиции стоплос переносим на этот уровень,

2) прошла Y пунктов - закрываем вторую треть позиции и стоплос переносим на этот уровень и

3) цена пошла дальше на Z пунктов - закрываем остаток позиции.

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


Если кто может внести такую поправку в код поделитесь пожалуйста!

И еще добавил в код я все таки новозеландца вот таким кодом

//NZD
   if (top==8)
      {
      if (down==1){ sym="NZDUSD"; op=0;}
      if (down==2){ sym="EURNZD"; op=1;}
      if (down==4){ sym="NZDCHF"; op=0;}
      if (down==5){ sym="NZDJPY"; op=0;}
      if (down==6){ sym="AUDNZD"; op=1;}
      if (down==7){ sym="NZDCAD"; op=0;}
//**************************      
и к каждой валюте прицепил, а он все равно не торгует по нему. в чем проблема? В индикаторах новозеландец не отключен

может стоит вынести обсуждение на форум?



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

Пункт второй - по поводу трала. Вариантов закрытия масса. Предложенный вами вариант закрывать в три захода - ничем не лучше и не хуже, чем реализованный мной... В принципе мой вариант например на лоте 0.1 и закрывается в четыре захода (при условии минимального лота 0.01). Первый раз закрывается 0.05, второй раз 0.03, третий раз - 0.01 и на четвертый раз - остаток... Не вижу никаких преимуществ или недостатков в любой из схем - это дело вкуса, просто мой вариант проще всего реализовать программно (имхо). Каждый волен вносить любые изменения в код и алгоритм. Для этого советник и выложен в открытый доступ с исходным кодом, а не в скомпилированном виде.

Пункт третий... Вы сделали верно. Но не все.

Чтобы заработал НЗД - надо еще изменить объявление массива. в оригинале массив - с семью элементами в первом измерении. Нетрудно посчитать, что если надо чтобы работал новозеландец - он будет восьмым. И если оставить как есть - ему просто не хватит места в массиве:)

Это решается элементарно

Замена в объявлении переменых строки

double ccfp [7,2],ccfp_old [7,2],cc [7,2],cc_old [7,2],lot[1];

строкой


double ccfp [8,2],ccfp_old [8,2],cc [8,2],cc_old [8,2],lot[1];

и это еще не все.

Далее надо добавить еще один проход в цикл заполнения массива данными т.е в объявлении цикла заменить:

/////////////Заполнение массива данными индикатора CC
for (cnt=0;cnt<7;cnt++)

на


/////////////Заполнение массива данными индикатора CC
for (cnt=0;cnt<8;cnt++)

аналогично для ccfp.

Ну и наконец надо добавить еще один проход в цикл проверки сигналов

Т.е. в цикле проверки сигналов заменить

/////////////////Проверка сигнала
for (x=0;x<7;x++)
   {
   for (y=0;y<7;y++)

на 


/////////////////Проверка сигнала
for (x=0;x<8;x++)
   {
   for (y=0;y<8;y++)

Все. После этих изменений NZD будет работать.

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