[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 147

 

Разобрался с прорисовкой индикатора (рекурсивный с начальной инициализацией, по идее нужно инициализировать с фиксированной даты, чтобы выходящие бары не изменяли начальные значения индикатора). Язык похоже неплохой но есть огромная проблема с документацией к языку.

получилось сделать так:

Если (IndicatorCounted<0) return с ошибкой

Если первое включение (IndicatorCounted==0) и нужно просчитать всю историю, то считать всю историю

{

если (Bars <= Length) {инициализация переменных начальными значениями}

если (Bars > Length) расчет индиктаора

}

Если НЕ первое включение (IndicatorCounted>0) то посчитать только Bars-IndicatorCounted-1 баров

{

если (IndicatorCounted-1 <= Length) {инициализация переменных начальными значениями до Length}

если (IndicatorCounted-1 > Length) расчет индиктаора

}

ТЕПЕРЬ ВОПРОСЫ:

А этот алгоритм можно как-то попроще сделать? (получилось слишком много текста)

Как расшифровать дату и время, из функции Time? (по идее нужна дата и время конкретного бара)

Есть где-нибудь достаточно полный учебник по mql4 (кроме учебника Kirill и справки в metaeditor) с описанием что и как работает (например вышеприведенный алгоритм)?

Где найти описание mql библиотеки stdlib?

 

Вопрос другого уровня. Лучше свою тему создавать.

Ок, спс.
 

От чего возникает ошибка 130  ? как ее исправить?

В тестере эксперт работает без ошибок...   на демо не может открыть ни одной сделки..

 

130 ошибка - вы неправильно указываете тейкпрофит и стоплос.

вероятные причины:

- ненормализована цена

- стопы находятся очень близко к рынку. уровень стоплевел. Он может плавать. поэтому его тоже нужно контролировать.

Если у вас они 5-10 пунктов, то смотрите, откуда они у вас вычисляются - от бида или аска.

- также пробема может быть в том, что брокеру нельзя давать стопы при рыночном исполнении ордера (например броко). Они должны ставится на уже открытом ордере.

 

Замечания: файлы могут открываться только в папке каталог_терминала\experts\files (каталог_терминала\tester\files в случае тестирования эксперта) или ее подпапках.

как это реализовать? автоматом программа не находит файл в подпапках.

 
beruk писал(а) >>

Замечания: файлы могут открываться только в папке каталог_терминала\experts\files (каталог_терминала\tester\files в случае тестирования эксперта) или ее подпапках.

как это реализовать? автоматом программа не находит файл в подпапках.

А как ты их ищещь?

 

вот в том-то и вопрос - как искать? в документации не нашол ни слова.

использую :

#import "kernel32.dll"//библиотека функций
int FindFirstFileA(string path, int & answer[]);//находит первый файл
bool FindNextFileA(int handle, int & answer[]);//находит последующие файлы, один за другим
bool FindClose(int handle);//прекращает поиск
#import

но судя по "или ее подпапках" это можно делать средствами MQL

 
beruk писал(а) >>

вот в том-то и вопрос - как искать? в документации не нашол ни слова.

использую :

#import "kernel32.dll"//библиотека функций
int FindFirstFileA(string path, int & answer[]);//находит первый файл
bool FindNextFileA(int handle, int & answer[]);//находит последующие файлы, один за другим
bool FindClose(int handle);//прекращает поиск
#import

но судя по "или ее подпапках" это можно делать средствами MQL

Средствами MQL можно создать файл и что-то в него записать. Можно открыть существующий файл и что-то прочитать. Есть этот файл или нет - зависит от тебя.

 

еще разок:

файлы могут открываться только в папке каталог_терминала\experts\files (каталог_терминала\tester\files в случае тестирования эксперта) или ее подпапках.

я использую для открытия стандартное

int handle;
handle=FileOpen("my_data.csv",FILE_CSV|FILE_READ,';');

таким образом файл создается/открывается в папке каталог_терминала\experts\files, но не в подпапках!

указаний как создать/открыть файл в подпапках я не нашол ни на форуме ни в документации.

может это ошибка в документации?

 
beruk >>:

..указаний как создать/открыть файл в подпапках я не нашол ни на форуме ни в документации.

Может так попробовать (предварительно создав папку files/my_dir)?

handle=FileOpen("my_dir/my_data.csv",FILE_CSV|FILE_READ,';');