Анализ качества данных - страница 2

 
C'est sain, mais quand même, il vaudrait mieux, si vous possédiez la langue mql aussi à la perfection
 
Et encore, m., ne fichez pas aux gens non familiers.
 
joo >>:
C'est sain, mais quand même, il vaudrait mieux, si vous possédiez la langue mql aussi à la perfection

Herregud, hvis alle eide et MQL på nivå Shakespeares, lese koden, ville det være til glede!


Прошу простить за кривой норвежский, учу всего три месяца:))))

 
alsu >>:

Herregud, hvis alle eide et MQL på nivå Shakespeares, lese koden, ville det være til glede!

ЭЭЭ, я не говорил, что я полиглот. Пишите мне по русски. А то мой промт Вашего последнего поста переводить не в силах.

 
joo >>:

ЭЭЭ, я не говорил, что я полиглот. Пишите мне по русски. А то мой промт Вашего последнего поста переводить не в силах.

Друг мой, если бы каждый владел MQL на уровне Шекспира, читать кодбейс было бы истинным удовольствием, не так ли?

 

Да и сейчас одно удовольствие: OP_BUY || OP_SELL ? :)

 
alsu >>:

Друг мой, если бы каждый владел MQL на уровне Шекспира, читать кодбейс было бы истинным удовольствием, не так ли?

А так же истинным удовольствием было бы читать все посты форумчан, не "тыкающих" не знакомым людям. Указал Вам на это на французском, Вы, похоже, не поняли.

 
joo >>:

А так же истинным удовольствием было бы читать все посты форумчан, не "тыкающих" не знакомым людям. Указал Вам на это на французском, Вы, похоже, не поняли.

Простите плебея, пост удален.

 
Swetten >>:

Да и сейчас одно удовольствие: OP_BUY || OP_SELL ? :)

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

Mademoiselle, !sleep()?

start()

{

:))))))

 
DerrickMeadows >>:

Уважаемые посетители,

Я хотел написать свою автоматическую систему открытия и закрытия orders (i.e. expert adviser) но сначала убедится в высоком качестве данных поставляемых моим dealing center Alpari LLC.

Мой анализ данных основан на исторических данных доступных из MetaTrader на EURUSD. В моём понимании, expert adviser реагирует на изменения в рынке когда MetaTrader вызывает функцию start() этого adviser. Сначала Я думал что вызов функции start() происходит при формировании нового bar. Я написал mock adviser который записывал timestamp в text file при каждом вызове start() а также Close[0], Open[0], High[0], Low[0], Volume[0].

Я хотел проанализировать данные в Microsoft Access and Excel для детального анализа. Данные экспортированные из MetaTrader были импортированны в таблицы Access. Я хотел посмотеть на общее распределение данных во времени.


Теперь Я думаю что каждый expert adviser реагирует не на новый bar а на tick. Дополнительные фильтрующие условия необходимы для реагирования на новый bar. Я думаю так потому что экспортированные данные содержат внутриминутные timestamps и минимальный timeframe это М1.

Используя MS Access query, Я сгруппировал данные каждого tick по секунде и суммировал количество ticks на каждую секунду. Я использовал данные Alpari LLC за Январь ‘08. Для экспорта из MetaTrader, Я выбрал данные с двух timeframes: 1 min и 5 min. Результаты интраминутного анализа в Chart 1 and Chart 2.

Я хотел задать вопрос к экспертам на этом форуме. Из моего анализа следует что данные на 1 min timeframe не поступают на последние секунды любой минуты (секунды: 56, 57, 58, 59.) Однако на 5 min timeframe, данные на 59 секунда доступны. Также следует что 0 и 30 секунда любой минуты имеют большее количество ticks чем любые другие секунды. Но ticks на 0 секунду в два раза больше чем на 30 секунду.

Мне кажется что данные из моего dealing center Alpari LLC не очень высокого качества. Отсутствие ticks на 56, 57, 58 and 59 секунды значит что expert adviser работать на эти секунды не будет когда он установлен на 1 min timeframe. Почему то 59 секунда имеется на данные экспортированные с 5 min timeframe.

Меня удивило что на разные timeframes поступают разные данные, потому что timeframe это группировка данных на разные time units (e.g. 1 min, 5 min, 15 min etc) но данные используемые для группировки должны быть одинаковыми.

С уважением,

Derrick Meadows

Всё правильно, так и должно быть. Для правильного учёта и формирования баров в тиковом потоке существует так называемый межбарный разрыв.

ТЕ прерывание потока данных если время бара вышло и открытие потока если начался новый бар. Именно поэтому на последней секунде бара никогда не бывает тика, он приходит уже на новом баре(иногда в виде гепа).

А для защиты от запуска в int start() на каждом тике рекомендую такой фильтр:

int bBars=0;
int start()
{if(bBars!=Bars)
   {bBars=Bars;
    //
    // запускаемый на каждом баре код
    //
   }
return(0);
}
код проверен и работает везде без глюков.
Причина обращения: