Как "научить" стандартные индикаторы, например, iCCI(...), использовать тиковый поток (Bid+Ask)/2 ? - страница 2

 
Vitaly Muzichenko:

А если так назвать кастом-символ AUDCAD_MY?

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

 
foxmag:

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

Да, выдержаны полностью. Несоответствие минимальное: Bid и Ask - не таймсерии, а нечто другое, с чем тестер вообще работать не умеет. И не должен уметь. 

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

 
Алексей Тарабанов:

... Несоответствие минимальное: Bid и Ask - не таймсерии...

Вы, очевидно, о первом моем посте... Увы, я не смог придумать ничего лучшего, чтобы передать суть того, что мне нужно. А по сути проблемы у Вас что-то есть? Например, опыт работы с синтетическими инструментами...

 
foxmag:

Вы, очевидно, о первом моем посте... Увы, я не смог придумать ничего лучшего, чтобы передать суть того, что мне нужно. А по сути проблемы у Вас что-то есть? Например, опыт работы с синтетическими инструментами...

Нет, я уже все сказал. 

 

Напишите индикатор, который посчитает все прошлые бары как close[i]+spread[i]/2*_Point

Для вновь поступающих расчётов (OnCalculate на досчёт) берёте последний тик и считаете (bid+ask)/2

Потом на этот индикатор можно навесить любой другой индикатор, у которого есть OnCalculate с одним ценовым массивом. Либо стандартные типа CCI, которые применяются к одному ценовому массиву (Apply to Price)

 
Slava:

Напишите индикатор, который посчитает все прошлые бары как close[i]+spread[i]/2*_Point

Для вновь поступающих расчётов (OnCalculate на досчёт) берёте последний тик и считаете (bid+ask)/2

Потом на этот индикатор можно навесить любой другой индикатор, у которого есть OnCalculate с одним ценовым массивом. Либо стандартные типа CCI, которые применяются к одному ценовому массиву (Apply to Price)

Подход понятен. Однако для полной его реализации придется создавать собственные таймсерии не только для новых расчетных Close баров, но и для Open и пр. Придется самостоятельно переписывать историю тиков, заменяя bid средним (bid+ask)/2. Нужно также учитывать перерывы в работе МТ5 и связанные с этим подкачки данных, которые нужно перерасчитывать, либо при каждом старте МТ5 считать все заново, что накладно (да и невозможно при длинной истории). Словом, эта задача системная, и это ровно то, чего хотелось бы избежать. Тем более, что разработчики замечательным образом уже все (наверное, почти все) сделали в этом плане своими синтетическими инструментами.

Там все в порядке за исключением случаев замены в тестере "нормальных" инструментов синтетическими. Тестер останавливается на стадии ожидания обновлений и как упрямый осел не двигается с места :) В чем там дело? Может, правда, в обозначении AudCad, а не, например, AUDCAD_XA-XA ? Проверю.

 
Vitaly Muzichenko:

А если так назвать кастом-символ AUDCAD_MY?

Вы абсолютно правы, все дело в обозначении символа, а именно, первые 6 букв должны быть взяты из оригинального названия инструмента. Тогда все (!) функционирует. Мне еще раньше на глаза попалось то, что при выборе символа в окне "Собственный символ" автоматически заполняются поля "Базовая валюта" и "Валюта прибыли" (в моем случае в этих полях стояли Aud и Cad). Мои попытки заменить их правильными значениями не удавались - после изменений система подставляла старые значения Aud и Cad. Только разработчики знают точно, насколько это важно. А теперь и мы знаем, поэкспериментировав.

То, что здесь описано - ограничение на имя символа синтетического инструмента, которое отсутствует в описании. Прошу ответственных за документацию внести поправку.

Всем спасибо за дискуссию.

 
foxmag:

Вы абсолютно правы, все дело в обозначении символа, а именно, первые 6 букв должны быть взяты из оригинального названия инструмента. Тогда все (!) функционирует. Мне еще раньше на глаза попалось то, что при выборе символа в окне "Собственный символ" автоматически заполняются поля "Базовая валюта" и "Валюта прибыли" (в моем случае в этих полях стояли Aud и Cad). Мои попытки заменить их правильными значениями не удавались - после изменений система подставляла старые значения Aud и Cad. Только разработчики знают точно, насколько это важно. А теперь и мы знаем, поэкспериментировав.

То, что здесь описано - ограничение на имя символа синтетического инструмента, которое отсутствует в описании. Прошу ответственных за документацию внести поправку.

Всем спасибо за дискуссию.

Скорее всего так: первые три символа и вторые три символа должны соответствовать реальным валютам. В Вашем случаем это валюты AUD и CAD

 
Vladimir Karputov:

Если не трудно, то после создания синтетического инструмента расскажите, удалось ли использовать этот график со стандартными индикаторами.

Все функционирует. "Муки" к этому выше в дискуссии.

Остался только последний вопрос по теме. При размещении в окне синтетического инструмента в левом верхнем углу окна появляется желтый значок с шестеренкой, символизирующий, что действующий в окне инструмент - синтетический. Этот значок находится поверх всех объектов и мне не удается его перекрыть чем-нибудь. Как его спрятать? Например, по типу сокрытия значков быстрой торговли:

ChartSetInteger(idChart,CHART_SHOW_ONE_CLICK,false);

Спасибо.

 
Vladimir Karputov:

Скорее всего так: первые три символа и вторые три символа должны соответствовать реальным валютам. В Вашем случаем это валюты AUD и CAD

Именно так.

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