Торгова програма MetaStock (Метасток)
Машина часу в Метастоку
«Я зіткнувся з незрозумілою ситуацією. На 18.10 мій Метасток дає ведмежу дивергенцію Stochastic Oscillator. Розрахунок ведеться за такою формулою:
Trough(1,C,3)≫Trough(2,C,3) AND ValueWhen(1,Trough(1,C,3),Stoch(21,3))
Далі я для експерименту по одному додавав вигадані підсумки торгів за 3 днями. Дані отримував шляхом додавання 4-5 копійок. Тобто дані за останні 5 днів набули вигляду
10/15/1999 3.8300 3.8500 3.6000 3.6600 61195 10/18/1999 3.5600 3.6700 3.5200 3.6050 57409 3. 5700 3.6500 57409 10/20/1999 3.6500 3.7700 3.6200 3.7000 57409 10/21/1999 3.7000 3.8200 3.6700 3.7500 57409

Додані дані виділені жирним. Я хотів грубо прикинути зміни індикаторів, якщо ціни підуть уздовж лінії тренду. На мій подив ведмежа дивергенція Stochastic Oscillatorна, яка була 18.10 зникла після додавання даних по 21.10. Я був переконаний, ЩО НАСТУПНІ ДАНІ НЕ ВПЛИВАЮТЬ НА ПОПЕРЕДНІЙ РОЗРАХУНОК. Майбутнє не може змінити минуле. Однак у разі після введення 3 рядків результат у минулому змінився. 18.10 ведмежа дивергенція по Stochastic Oscillator зникла. І на графіку та у коментарі. Я перевірив себе, але отримав повну відтворюваність. Питання: чому «майбутні» дані змінюють «минулі» результати розрахунків? «
Єдиний варіант, який я бачу, – це використання функції Trough(). У системі Ви двічі шукайте останнє «дно» за допомогою цієї функції. Особливість цієї функції в тому, що вона визначає «дно» з використанням функції zigzag. А ось функція zigzag має останнє коліно, що динамічно змінюється. Інакше кажучи, останнє коліно zigzaga змінює напрям унадходження нових даних, у тому числі і для попередніх днів. Звідси вплив наступних даних на попередні. До речі, з використанням функції Zigzag розраховуються деякі інші функції Метастоку – Peak(), Peakbars() і Troughbars().
Аналогічна пастка може чекати при використанні функції Lastvalue() – цей індикатор підглядає в майбутнє. До речі, «підглядання» у майбутнє може статися і помилково – один знайомий трейдер випадково створив «дуже прибуткову систему», забувши додати знак мінус у конструкції Ref(close,-1). У результаті система «бачила» ціну закриття завтрашнього дня і, природно, могла витягувати з цього прибуток…:). На щастя, ми виявили цю помилку досить швидко.
Таємничий Winros.exe
«Я встановив Метасток 6.51, проте під час запуску видається повідомлення «DBC's Data Manager (Winros.exe) could not be find. It must be runing before data can be collected». В результаті метасток не запускається. Що таке winross.exe і де його знайти - на диску я його не виявив?
Вся справа в тому, що Метасток, починаючи з версії 6.51, інсталюється одночасно у двох конфігураціях – Metastock professional і Metastock end of day mode. Перший варіант призначений для роботи з он-лайн даними, що отримуються від постачальників даних (Data vendors - такі, як Reuters, Signal, Telescan, etc.). Саме для такої роботи потрібний файл winros.exe і надається він саме одній із цих фірм після підписки на їхні послуги. Вартість такої передплати дуже не мала, тому якщо Ви не оперуєте багатозначними сумами і не проводите операції всередині дня, то для Вас призначений другий варіант – Metastock end of day mode. Використовуйте цей варіант для запуску програми – і не буде проблем.
Помилки в Downloader «ВDownloader при внесенні даних у колонки Volume і OpenInterest, якщо довжина числа перевищує три знаки, виникає повідомлення про помилку «Invalid value». При копіюванні колонки через буфер обміну така помилка зникає. В чому справа?"
Є ціла група подібних помилок у Downloader. До них, крім описаної вище, відноситься і Invalid date, після якої програма часто висне. Вся справа у стандарті представлення форматів даних. Якщо Ви постійно працюєте з Метастоком, то найкраще зробити зміни в налаштуваннях Windows з українського стандарту на англійську (США). Для цього треба зайти в панель керування, відкрити папку «мова та стандарти» та на закладці «регіональні стандарти» зробити відповідні зміни. До речі, є ще одна причина зробити такі зміни у стандартах. З якоїсь, мені невідомої, причини у разі встановлення українського стандарту подання даних у деяких випадках сам Метасток починає рахувати з невеликими помилками. Зазвичай це непомітно, оскільки помилка дуже незначна, проте помилки можуть накопичуватися, наприклад, при використанні функції Sum() на досить довгому ряді даних і ставати вже вагомими.