Мультивалютный советник. Желательно мнение разработчиков. - страница 4

 

LeoV писал (а):

Сэнкью вери мача)))))))))))))

Рано сенкаете ;)
Предложенное решение не избавит от проблемы.
А избавит, как по мне, один из 2-х вариантов:

1. Если эксперт не использует 0-й бар (все индикаторы, цены, и т.д. берутся с индексом [1] и больше): при появлении нового бара на "ведущем" инструменте (том, где запущен эксперт) приступаем к анализу: по текущему символу и по символам, время открытия последнего бара которых == времени открытия бара на текущем символе, берем всю информацию с бара №1; по символам, время открытия последнего бара которых < времени открытия бара на текущем символе, берем всю информацию с бара №0 (это и есть бар №1, просто он еще об этом не знает).

2. Если эксперт использует 0-й бар, вариант только один - ждать пока время открытия последнего бара на всех инструментах не станет идентично. Иначе анализ будет происходить не так, как задумывался.

Удачи ;)

 
komposter писал (а): Если эксперт не использует 0-й бар

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

 
komposter:

LeoV писал (а):

Сэнкью вери мача)))))))))))))

Рано сенкаете ;)
Предложенное решение не избавит от проблемы.
А избавит, как по мне, один из 2-х вариантов:

1. Если эксперт не использует 0-й бар (все индикаторы, цены, и т.д. берутся с индексом [1] и больше): при появлении нового бара на "ведущем" инструменте (том, где запущен эксперт) приступаем к анализу: по текущему символу и по символам, время открытия последнего бара которых == времени открытия бара на текущем символе, берем всю информацию с бара №1; по символам, время открытия последнего бара которых < времени открытия бара на текущем символе, берем всю информацию с бара №0 (это и есть бар №1, просто он еще об этом не знает).

2. Если эксперт использует 0-й бар, вариант только один - ждать пока время открытия последнего бара на всех инструментах не станет идентично. Иначе анализ будет происходить не так, как задумывался.

Удачи ;)


Андрей вопрос был по сути по поиску начала нового часа, именно в мультивалютке !

кроме того у LeoV проблема была в том что он ждал ПОЛНОЙ СИНХРОНИЗАЦИИ начала нового часа по всем инструментам

а это не обязательно...

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

и не получив их синхронно пропускал вход

- это и была его ошибка

ошибка просто в логике поиска нового часа!



если новый час наступил на USDJPY, и закрыл работающий БАР, то Вы же понимате что он наступил и для других пар - разница в том что в БАРЫ других пар тики могут прийти с задержкой


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

следовательно можно считать что новый час есть и МОЖНО обсчитывать по текущему CLOSE не закрытые бары

разница возможна, но проблему у LeoV уже не будет...

----


кстати Ваше предложение ЖДАТЬ НАЧАЛА ЧАСА ПО ВСЕМ парам тоже вполне нормальное, ну 10-15 секунд или минуту подождать начала часа по всем парам

для LeoV не слишком существенно... если работая идет по целям от 100п

особой разницы нет


в такой ситуации надо просто дождаться закрытия всех инструментов на часе

и только после этого начинать обсчет ...

логика поиска закрытия БАРОВ просто иная ... кстати при такой логике переписывать нет нужды

 
komposter:

LeoV писал (а):

Сэнкью вери мача)))))))))))))

Рано сенкаете ;)
Предложенное решение не избавит от проблемы.
А избавит, как по мне, один из 2-х вариантов:

1. Если эксперт не использует 0-й бар (все индикаторы, цены, и т.д. берутся с индексом [1] и больше): при появлении нового бара на "ведущем" инструменте (том, где запущен эксперт) приступаем к анализу: по текущему символу и по символам, время открытия последнего бара которых == времени открытия бара на текущем символе, берем всю информацию с бара №1; по символам, время открытия последнего бара которых < времени открытия бара на текущем символе, берем всю информацию с бара №0 (это и есть бар №1, просто он еще об этом не знает).

2. Если эксперт использует 0-й бар, вариант только один - ждать пока время открытия последнего бара на всех инструментах не станет идентично. Иначе анализ будет происходить не так, как задумывался.

Удачи ;)

Идеальное решение, только, Андрей, тебя не поняли))

 
YuraZ:

ошибка просто в логике поиска нового часа!

если новый час наступил на USDJPY, и закрыл работающий БАР, то Вы же понимате что он наступил и для других пар - разница в том что в БАРЫ других пар тики могут прийти с задержкой


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

следовательно можно считать что новый час есть и МОЖНО обсчитывать по текущему CLOSE не закрытые бары

разница возможна, но проблему у LeoV уже не будет...

----

кстати Ваше предложение ЖДАТЬ НАЧАЛА ЧАСА ПО ВСЕМ парам тоже вполне нормальное, ну 10-15 секунд или минуту подождать начала часа по всем парам

для LeoV не слишком существенно... если работая идет по целям от 100п

особой разницы нет

Ну мне кажется, что это правильно....
 
Integer:
komposter:

LeoV писал (а):

Сэнкью вери мача)))))))))))))

Рано сенкаете ;)
Предложенное решение не избавит от проблемы.
А избавит, как по мне, один из 2-х вариантов:

1. Если эксперт не использует 0-й бар (все индикаторы, цены, и т.д. берутся с индексом [1] и больше): при появлении нового бара на "ведущем" инструменте (том, где запущен эксперт) приступаем к анализу: по текущему символу и по символам, время открытия последнего бара которых == времени открытия бара на текущем символе, берем всю информацию с бара №1; по символам, время открытия последнего бара которых < времени открытия бара на текущем символе, берем всю информацию с бара №0 (это и есть бар №1, просто он еще об этом не знает).

2. Если эксперт использует 0-й бар, вариант только один - ждать пока время открытия последнего бара на всех инструментах не станет идентично. Иначе анализ будет происходить не так, как задумывался.

Удачи ;)

Идеальное решение, только, Андрей, тебя не поняли))

ну почему же не поняли :-) все поняли ..


час он наступит в любом случае

вопрос в том что считать началом часа ТИК по ВСЕМ исследуемым инструметам в новый час

или тик в новый час в первый же инструмент - говорящий о том что ЧАС наступил

---

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

но новый час все равно уже наступил :-))) ...

 
LeoV:
YuraZ:

ошибка просто в логике поиска нового часа!

если новый час наступил на USDJPY, и закрыл работающий БАР, то Вы же понимате что он наступил и для других пар - разница в том что в БАРЫ других пар тики могут прийти с задержкой


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

следовательно можно считать что новый час есть и МОЖНО обсчитывать по текущему CLOSE не закрытые бары

разница возможна, но проблему у LeoV уже не будет...

----

кстати Ваше предложение ЖДАТЬ НАЧАЛА ЧАСА ПО ВСЕМ парам тоже вполне нормальное, ну 10-15 секунд или минуту подождать начала часа по всем парам

для LeoV не слишком существенно... если работая идет по целям от 100п

особой разницы нет


в такой ситуации надо просто дождаться закрытия всех инструментов на часе

и только после этого начинать обсчет ...

логика поиска закрытия БАРОВ просто иная ... кстати при такой логике переписывать нет нужды

Ну мне кажется, что это правильно....

на самом деле правильно и то и другое

вопрос лишь МУЧАТЬСЯ ли с переписыванием индикаторов, ( что бы они считали не по закрытию бара в моем случае а по текущему CLOSE )

или не МУЧАТЬСЯ



Андрей предлагает - не мучаться

 
YuraZ, пока писал, еще не видел сообщения 21.05.2008 16:17
 
komposter:

1. Если эксперт не использует 0-й бар (все индикаторы, цены, и т.д. берутся с индексом [1] и больше): при появлении нового бара на "ведущем" инструменте (том, где запущен эксперт) приступаем к анализу: по текущему символу и по символам, время открытия последнего бара которых == времени открытия бара на текущем символе, берем всю информацию с бара №1; по символам, время открытия последнего бара которых < времени открытия бара на текущем символе, берем всю информацию с бара №0 (это и есть бар №1, просто он еще об этом не знает).

Если честно, то я это не понял. Почему это правильно?

 
LeoV:
komposter:

1. Если эксперт не использует 0-й бар (все индикаторы, цены, и т.д. берутся с индексом [1] и больше): при появлении нового бара на "ведущем" инструменте (том, где запущен эксперт) приступаем к анализу: по текущему символу и по символам, время открытия последнего бара которых == времени открытия бара на текущем символе, берем всю информацию с бара №1; по символам, время открытия последнего бара которых < времени открытия бара на текущем символе, берем всю информацию с бара №0 (это и есть бар №1, просто он еще об этом не знает).

Если честно, то я это не понял. Почему это правильно?

Андрей имеет ввиду что ЕСЛИ Вы используете расчет по нужным ВАМ инструментам

то "правильно" считать именно по закрытым барам!


это правильно!


но если "эксперт" знает что новый час настал - то смело можно считать просто по CLOSE - это тоже правильно

но в этом случае надо переписать индикаторы!!!

---




ВОТ СЕЙЧАС ПРОЧИТАЛ АНДРЕЯ ВНИМАТЕЛЬНО и понял что по сути он ПРЕДЛАГАЕТ то же самое что и я :-)))


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

а по тем который дали данные в новый час по бару = 1

это как раз и требует переписывания индикаторов

----


LeoV



уточняю логику



допустим вы исследуете 3 пары


EURUSD

USDCHF

USDJPY


newBar = 0;
iBarEUR = 0;
iBarCHF = 0;
iBarJPY = 0;
if (   Time_NEW !=  iTime( "EURUSD" ,  PERIOD_H1, 0 ) ) // новый час
{

   Time_NEW ==  iTime( "EURUSD" ,  PERIOD_H1, 0 );
   iBarEUR = 1; 
   newBar = 1;

}
if (   Time_NEW !=  iTime( "USDCHF" ,  PERIOD_H1, 0 ) )// новый час
{
   
   Time_NEW ==  iTime( "USDCHF" ,  PERIOD_H1, 0 );
   iBarCHF = 1; 
   newBar = 1;
}
if (   Time_NEW !=  iTime( "USDJPY" ,  PERIOD_H1, 0 ) )// новый час
{
   Time_NEW ==  iTime( "USDJPY" ,  PERIOD_H1, 0 )  ; 
   iBarJPY = 1; 
   newBar = 1;
}
if ( newBar == 1 )
{
   // у вас есть номера баров для всех 3 пар
   // тут запускайте ваши индикаторы подавая им номера баров
   //iBarEUR; содержат нужные номера баров
   //iBarCHF ;
   //iBarJPY;
}
Причина обращения: