Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 222

 
Синтаксис одолел, а с логикой туговато.
 

Здравствуйте.

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

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

Архив котировок загружал оба раза один и тот же с сервера MetaQuotes Software corp.

Файлы:
szcwya.zip  34 kb
 
gince:

Как найти два верхних/нижних фрактала подряд? Рисунок ниже.

Пробовал индикатор написать, но чего то недодумал.

А может кто то видел такой индикатор готовым ?


Вы уверенны что функция int GetFractal(string sy="0", int tf=0, int nf=0)корректно ловит фракталы ??? (там же значения EMPTY_VALUE есть )

Зачем такой неадекватный перебор?

1) работа от появления свечи а не от тика

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

3) если верхний фрактал есть то +1 к значению первой переменной, если нижний то -1. ( Варианты результатов: - 1, 0, +1)

4) на следующем фрактале: если верхний фрактал есть то +1 к значению второй переменной, если нижний то -1. ( Варианты результатов: - 1, 0, +1)

5) ищем суму первой и второй переменных:

а) меньше 0 ( у нас два нижних фрактала) УРА!

б) больше 0 ( у нас два верхних фрактала) УРА!!

в) равно нулю и одна одна переменная равняется нулю ( у нас два нижних и два верхних фрактала) УРА!!!

6) переназчаем значение второй переменной первой и запускаем в цыкл с пункта 4)

 
aiculu:
помогите я не поняла как получилось но я не аккуратно что то нажала у меня исчезло окошко с обзором моих открытых ордеров как вернуть обратно?

Ctrl-T

 
Elektronik:

Ctrl-T


спасибо разобралась)))
 
Antonius:

Здравствуйте.

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

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

Архив котировок загружал оба раза один и тот же с сервера MetaQuotes Software corp.

У вас в тестере выбран текущий спред - отсюда и разница, т.к., при запуске теста спред используется тот, который был на момент запуска теста. Задайте спред постоянным числом.
 
ALXIMIKS:


Вы уверенны что функция int GetFractal(string sy="0", int tf=0, int nf=0)корректно ловит фракталы ??? (там же значения EMPTY_VALUE есть )

Зачем такой неадекватный перебор?

1) работа от появления свечи а не от тика

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

3) если верхний фрактал есть то +1 к значению первой переменной, если нижний то -1.

4) на следующем фрактале: если верхний фрактал есть то +1 к значению второй переменной, если нижний то -1.

5) ищем суму первой и второй переменных:

а) меньше 0 ( у нас два нижних фрактала) УРА!

б) больше 0 ( у нас два верхних фрактала) УРА!!

в) равно нулю и одна одна переменная равняется нулю ( у нас два нижних и два верхних фрактала) УРА!!!

6) переназчаем значение второй переменной первой и запускаем в цыкл с пункта 4)

Вместо сарказма, напишите лучше сами правильную и оптимизированную функцию человеку. От вас всегда виден только негатив и насмешки. Не стройте из себя умника: есть чем ответить - напишите код, нет ответа - помолчите. Перебор там идёт побарно кстати...
 
artmedia70:
У вас в тестере выбран текущий спред - отсюда и разница, т.к., при запуске теста спред используется тот, который был на момент запуска теста. Задайте спред постоянным числом.


Разница между сделками, открытыми в один и тот же день, в одно и то же время в разные дни тестирования - вариьруется.

Например,

Дата, время Позавчера Сегодня Разница
2011.10.05 13:151616.031622.89 -6.86
2011.10.12 13:151682.871682.89 -0.02
2011.10.19 13:151649.101659.66 -10.56


Да и слишком большие значения для спреда.

 
artmedia70:
Вместо сарказма, напишите лучше сами правильную и оптимизированную функцию человеку. От вас всегда виден только негатив и насмешки. Не стройте из себя умника: есть чем ответить - напишите код, нет ответа - помолчите. Перебор там идёт побарно кстати...


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

сарказм? не знаю мыслей небыло, просто помочь.

код писать кому-то? оптимизировать еще? (да могу, но стоит ли ето делать? )

(п.с. artmedia70, не в обиду, уважаю Ваше отношение и мнение в целом - честно, но на днях вы сами давали код с iCustom-ы мягко говоря не оч оптимизированый.)

int a1=0,a2,a3,kilkict,frac,frac1=0;//frac - флаг существования фракталов, frac1- счетчик фракталов (+1 или 0 за цикл)

kilkict=iBars(sy, tf);

for (i=3; i<kilkict;i++){
  a2=0;frac=0;
  if(iFractals(sy, tf, MODE_UPPER, i)>0) {            
     if (Bufer0!=EMPTY_VALUE) {
         a2+=1;frac=1;frac1++;
        }
     }
  if(iFractals(sy, tf, MODE_LOWER, i)>0) {            
     if (Bufer0!=EMPTY_VALUE) {
        if(a2==0){frac1++; frac=1;}a2+=-1;
        }
     } if (frac==0){continue;}if (frac1==1){a1=a2;continue;}
  a3=a1+a2;
  if(a3<0)           { a1=a2;//Два фрактала вниз  подряд найдено// continue;}
  if(a3>0)           { a1=a2;//Два фрактала вверх подряд найдено // continue;}
  if(a3==0 && a1==0) { a1=a2;// Два фрактала подряд вверх и два фрактала подряд вниз найдено //}
}

что-то типа етого должно работать если вставить в проверку на новый бар.

более оптимальным будет код если сузить kilkict=iBars(sy,tf) после какого-то количества фракталов, чтобы постоянно не перебирать все бары.

 
ALXIMIKS:


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

сарказм? не знаю мыслей небыло, просто помочь.

код писать кому-то? оптимизировать еще? (да могу, но стоит ли ето делать? )

(п.с. artmedia70, не в обиду, уважаю Ваше отношение и мнение в целом - честно, но на днях вы сами давали код с iCustom-ы мягко говоря не оч оптимизированый.)

что-то типа етого должно работать если вставить в проверку на новый бар.

более оптимальным будет код если сузить kilkict=iBars(sy,tf) после какого-то количества фракталов, чтобы постоянно не перебирать все бары.

Мда, как шутили в КВВАИУ, настоящий офицер должен внушать ужас,- как своим поведением, так и своим внешним видом.

Неужто можно "более оптимальным" сделать?

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