Имеется интересная торговая идея. Помогите найти ошибки в коде (mql4). - страница 2

 
Alexey Volchanskiy:
// и все Point заменить на _Point

на данный момент в mql4 четыре варианта запроса к Point

Point
Point()
_Point
(int)MarketInfo(Symbol(),MODE_POINT)

 В чем у них отличие и какой лучше применять на реале ? Использую на реале через маркет инфо.

 
Vladimir Zubov:

на данный момент в mql4 четыре варианта запроса к Point

 В чем у них отличие и какой лучше применять на реале ? Использую на реале через маркет инфо.

Старого варианта Point нет даже в хелпе. Варианты _Point и Point() корректны, но Ренат рекомендовал использовать функцию.
 
Alexey Volchanskiy:
Старого варианта Point нет даже в хелпе. Варианты _Point и Point() корректны, но Ренат рекомендовал использовать функцию.
Ему конечно виднее, но хотелось бы знать причину.
 
Можете залить сюда скрины с окнами свойств папок, в которых лежат файлы истории. Думаю с атрибутами или с правами доступа что-то не так. Может операционка запрещает тестеру изменять файлы с котировками
 
Vladimir Zubov:

на данный момент в mql4 четыре варианта запроса к Point

 В чем у них отличие и какой лучше применять на реале ? Использую на реале через маркет инфо.

Если вам надо получить значение Point символа отличного от текущего то надо использовать MarketInfo(Symbol(),MODE_POINT), если текущего то я использую Point().

А варианты _Point и Point остались со старых времен для совместимости. Вот только явное преобразование типа double в int тут не уместно так как Point() и  MarketInfo(Symbol(),MODE_POINT) возвращает число 0.0001 или 0.00001 (в зависимости от точности котирования 4 или 5 знаков)  типа double. 

 

Что это и как исправить? 

2016.02.13 18:05:07.917 TestGenerator: unmatched data error (volume limit 83 at 2016.02.12 23:45 exceeded)

 
Yaroslav Gladkov:

Что это и как исправить? 

2016.02.13 18:05:07.917 TestGenerator: unmatched data error (volume limit 83 at 2016.02.12 23:45 exceeded)

Эта ошибка исторических данных. Влияет на точность моделирования.
 
Vitalii Ananev:

Если вам надо получить значение Point символа отличного от текущего то надо использовать MarketInfo(Symbol(),MODE_POINT), если текущего то я использую Point().

А варианты _Point и Point остались со старых времен для совместимости. Вот только явное преобразование типа double в int тут не уместно так как Point() и  MarketInfo(Symbol(),MODE_POINT) возвращает число 0.0001 или 0.00001 (в зависимости от точности котирования 4 или 5 знаков)  типа double. 

То я лишее скопировал (int) конечно в данном случае не использую. Но когда пошла путаница и не ясно кокой метод лучше использовать и почему, решил только маркет инфо использовать, даже на текущем символе.
 

Посмотрите этот сайт http://tickstory.com/

Может ли их прога решить эту проблему TestGenerator: unmatched data error (volume limit 83 at 2016.02.12 23:45 exceeded)

 
Yaroslav Gladkov:

Посмотрите этот сайт http://tickstory.com/

Может ли их прога решить эту проблему TestGenerator: unmatched data error (volume limit 83 at 2016.02.12 23:45 exceeded)

Настройте в терминале хранить максимальное количество баров в истории и в окне.

 

Перезагрузите терминал

Скачайте историю котировок (клавиша F2) нужного символа, начиная с M1 

 

Перезагрузите терминал.

P.S. у меня история котировок не загружена на картинке, так как тестером не пользуюсь в этом терминале.