Торговля спредами в Meta Trader-е - страница 16

 

Ещё один вопрос присутствующим. Поскольку советник в заявленной теме обсчитывает два инструмента, то этот вопрос будет актуален.

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

(Торгуются на разных площадках или по др. причинам)

Сырьевые BRN и CL (в мт4 БР), например, ежедневно начинают работу зачастую, с разницей в 2-3 часа.

Тож самое (дакс+футси), -часовая разница. 

В таких случаях расчет среднестат. спреда между инструментами на малых тф иногда будет оч. некорректным! Особенно, если сессия открылась гэпом!

Хотелось бы предусмотреть проверку,  - насколько по времени совпадают последние бары. Те последние бары, - по которым ведется расчет среднестатич. спреда - например, в той же функции от Fduch-а  - CalculateAvarageSpread(Symbol_1,Symbol_2,0, NBars)

Иначе говоря, хотелось хотя бы отобразить в комменте, - сколько последних баров  обоих инструментов на заданном тф совпадают по времени ?

Подскажите, как это сделать ?

 
rid >>:

Ещё один вопрос присутствующим. Поскольку советник в заявленной теме обсчитывает два инструмента, то этот вопрос будет актуален.

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

(Торгуются на разных площадках или по др. причинам)

Сырьевые BRN и CL (в мт4 БР), например, ежедневно начинают работу зачастую, с разницей в 2-3 часа.

Тож самое (дакс+футси), -часовая разница.

В таких случаях расчет среднестат. спреда между инструментами на малых тф иногда будет оч. некорректным! Особенно, если сессия открылась гэпом!

Хотелось бы предусмотреть проверку, - насколько по времени совпадают последние бары. Те последние бары, - по которым ведется расчет среднестатич. спреда - например, в той же функции от Fduch-а - CalculateAvarageSpread(Symbol_1,Symbol_2,0, NBars)

Иначе говоря, хотелось хотя бы отобразить в комменте, - сколько последних баров обоих инструментов на заданном тф совпадают по времени ?

Подскажите, как это сделать ?

А что означает "насколько по времени совпадают .. бары" ? В моей функции для расчета спреда я беру те два бара, чьи Open по времени совпадают:

 int symb2Shift = iBarShift(Symbol_2,Timeframe,iTime(Symbol_1,Timeframe,k),true);

При вызове на таймфреме М1, можно быть уверенным что для расчета спреда будут взяты пары баров, совпадающие по времени с точностью до минуты. Другой вопрос, использовать для рассчета спреда iClose или iOpen.. В любом случае, уверенности в корректности я не чувствую, поэтому сейчас считаю сренднестат. спреды на основе тиковых данных, собранных в реальном времени (соответствие с точностью до секунды).

 
Fduch писал(а) >>

А что означает "насколько по времени совпадают .. бары" ? В моей функции для расчета спреда я беру те два бара, чьи Open по времени совпадают:

При вызове на таймфреме М1, можно быть уверенным что для расчета спреда будут взяты пары баров, совпадающие по времени с точностью до минуты. Другой вопрос, использовать для рассчета спреда iClose или iOpen.. В любом случае, уверенности в корректности я не чувствую, поэтому сейчас считаю сренднестат. спреды на основе тиковых данных, собранных в реальном времени (соответствие с точностью до секунды).

Cовершенно верно: наиболее точный способ собирать историю спреда самому по тикам. С натяжкой можно считать по опен/клоуз, но они не синхронизированы, хотя при достаточной частоте тиков сильно отличаться по времени не должны. Но ни в коем случае не хай/лоу - тут погрешность максимальна.

 
getch >>:

Хочется все же разобраться в терминологии.

Что такое ассет, коинтеграция и корреляция?

Asset, cointegration, correlation -> Google.

Очень не советую по данному вопросу Википедию - абсолютно ламерские статьи. Про pairs trading вместо статьи просто реклама беспонтового сайта.

Очень советую путёвые учебники, например, Carol Alexander 'Market models'

 

Боюсь показаться назойливым. Но ещё вопрос.

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

С "виртуальной" имитацией сделок второго.

 Однако, обнаружилось.что если цены OCHL второго инструмента  "хеджа" советник в тестере "худо-бедно" возвращает, то даже текущие биды и аски второго инструмента  не возвращаются - отображаются нули! 

Comment(Ask_Tiker2,"_",Bid_Tiker2);

Так и должно быть ? Или есть возможность эти  цены  как-то изыскать ?

 
Reshetov >>:

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

Спасибо :)

rid писал(а) >>

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

Бесполезно.

Однако, обнаружилось.что если цены OCHL второго инструмента "хеджа" советник в тестере "худо-бедно" возвращает, то даже текущие биды и аски второго инструмента не возвращаются - отображаются нули!

Проверьте наличие истории и ошибку после функции.

 
TheXpert >>:


Проверьте наличие истории и ошибку после функции.


История присутствует.

//Валютная версия
extern string  Symbol_1 = "USDJPY";
extern string  Symbol_2 = "EURJPY";
///----------------------
int start()
{
//--------Задаем текущие цены инструметов -- 
double Ask_Tiker1 = MarketInfo(Symbol_1,MODE_ASK);
double Bid_Tiker1 = MarketInfo(Symbol_1,MODE_BID); 
double Ask_Tiker2 = MarketInfo(Symbol_2,MODE_ASK);
double Bid_Tiker2 = MarketInfo(Symbol_2,MODE_BID);

Comment(Ask_Tiker1,"_",Bid_Tiker1, "\n",
        Ask_Tiker2,"_",Bid_Tiker2, "\n",
"Ошибка  = ",GetLastError());

Отображается ошибка 4059

ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE    4059    Функция не разрешена в тестовом режиме

Странно это. Ведь и первый и второй инструмент заданы через Маркетинфо. Первый инстр. - отображается нормально (92_91.98 - USDJPY), а  EURJPY - не хочет.

А если я ставлю советник на вторй инструмент, т.е. на на график евроиены, - то наоборот, первый символ дает нули в комменте, а цены второго - евроиены - отображается нормально


 

rid писал(а) >>

Отображается ошибка 4059

Возможно, я Вас обманул. MarketInfo является "безопасной", т.е. ошибок по ходу не генерирует.
 
TheXpert >>:


Бесполезно.


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

Ведь цены OHLC Маркетинфо возвращаются тестером нормально. А значит можно по ценам OPEN  получить(закрыть)   реальную прибыль одного  инструмента и рассчитать "виртуальную прибыль" другого! А потом наоборот.

Разве не так?

 И  поочередно прогнав советник на обоих инструментах, -  мы каждый раз получим достаточно корректное открытие и закрытие позиций  текущего  инструмента  при каждом прогоне.

 

rid писал(а) >>

Разве не так?

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

А на пропущенных барах Вы возможно будете получать баранки вместо цен.

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

TheXpert писал(а) >>

Бесполезно.

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