Нужна помощь в отладке советника - страница 3

 
Vinin:


Как что, конечно контроль времени. Времени открытия бара.

А тики могут и пачками падать. Свалилось сразу же 10 тиков и в таком случае в Вашем варианте (хотя конечно это не Ваш вариант, ноги известно откуда растут) мы пропускаем бар. Если Вас это устроит - извините что помешал

О, тут ноги из стольких мест растут, уже и не отследить, я же не с нуля писал а брал что понравится и откуда придётся :)))

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

//----------------------------------------------------------------------------- Новый бар ----
   New_Bar=0;                                            // Для начала обнулимся
   if (Time_0 != Time[0])                                // Если уже другое время начала бара
      {
      New_Bar= 1;                                        // А вот и новый бар
      Time_0 = Time[0];                                  // Запомним время начала нового бара
      } 

Такую проверку вы имели в виду?

 
evillive:

О, тут ноги из стольких мест растут, уже и не отследить, я же не с нуля писал а брал что понравится и откуда придётся :)))

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

Такую проверку вы имели в виду?


Не совсем конечно, но подобную. Можно использовать вариант Решетова. В каждом его советнике есть
 
Понял, спасибо. Щас сделаю, посмотрю что изменится.
 

Не, так в тестере всё то же "марево" из отрытых и сразу же закрытых ордеров образуется...

Ставил вот этот кусок кода

   int prevtime = 0;
   if(Time[0] == prevtime) 
       return(0);
   prevtime = Time[0];
Или это не вся проверка?
 
evillive:

Не, так в тестере всё то же "марево" из отрытых и сразу же закрытых ордеров образуется...

Ставил вот этот кусок кода

Или это не вся проверка?


Это корректная проверка, вполне. Но если хочется что бы позиции открывались внутри бара (если не открылись раньше) то лучше использовать вариант Решетова
 
Vinin:

Это корректная проверка, вполне. Но если хочется что бы позиции открывались внутри бара (если не открылись раньше) то лучше использовать вариант Решетова

Ну так это и был вариант Решетова, прямо из AI, разве нет? Да и тут он тот же код использует...
 
evillive:

Ну так это и был вариант Решетова, прямо из AI, разве нет?

Нет. Вариант Решетова немного шире. Он еще при неудачной попытке восстанавливает значение переменной prevtime
 
Vinin:

Нет. Вариант Решетова немного шире. Он еще при неудачной попытке восстанавливает значение переменной prevtime

Да в том-то и дело что попытки слишком "удачные", очень уж часто ордера открывает-закрывает :( Ведь по логике ордер должен открыться при пересечении и закрыться также при пересечении.

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

 
evillive:

Да в том-то и дело что попытки слишком "удачные", очень уж часто ордера открывает-закрывает :( Ведь по логике ордер должен открыться при пересечении и закрыться также при пересечении.

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


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

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

 
Я скорость поменьше делал. Хорошо видно как меняется последнее значение индикаторов и их линии не пересекаются когда открываются левые ордера. В первом посте даже видео выложил.