Подскажите, пожалуйста,

 

Сталкнулась с проблемой, подскажите, пожалуйста, как ее решить.

Работая на чарте Н1, через функции iOpen и т.д. вызываю данные с минутного таймфрейма. После обработки этих данных, мне нужно вывести результаты на отдельном графике в масштабе М1. Если я пытаюсь построить график в отдельном подокне используя indicator_separate_window, то у меня масштаб в подокно на этот график передается с основного графика Н1. Как решить проблему? И нужно, чтобы это все работало в тестере.

 
Я бы посоветовал кидать график на тот ТФ, куда предполагаеся выводить конечный результат i.e. M1 - а данные H1 уже можно брать через iOpen,...
 
alsu:
Я бы посоветовал кидать график на тот ТФ, куда предполагаеся выводить конечный результат i.e. M1 - а данные H1 уже можно брать через iOpen,...


В этом случае, я предполагаю появится другая проблема, если я работаю на Н1, то для формирования тиков тестер все равно использует М1, и я надеюсь, что через функции iOpen, у меня будет доступ к минутным данным. Если я работаю на чарте М1, то через iTime вряд ли возможно вызвать значение времени начала часового бара (я подчеркиваю, проблема упирается в тестер).

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

 

Я бы сделал так: основной график сделал бы М1, соответственно отдельный график тоже будет М1, а вот индикаторы основного графика взял бы с периодом в 60 раз больше, т.е. получается Н1.

 
Richie:

Я бы сделал так: основной график сделал бы М1, соответственно отдельный график тоже будет М1, а вот индикаторы основного графика взял бы с периодом в 60 раз больше, т.е. получается Н1.


А нет ни каких других индикаторов. Сам расчет данных с М1 и является основой для создания нового индикатора. Единственно, мне надо по началу нового часа обнулять ряд переменных и сбрасывать резульнаты накопленные в буферах, чтобы каждый час начинать с чистого листа.
 
Angela:

А нет ни каких других индикаторов. Сам расчет данных с М1 и является основой для создания нового индикатора. Единственно, мне надо по началу нового часа обнулять ряд переменных и сбрасывать резульнаты накопленные в буферах, чтобы каждый час начинать с чистого листа.

Видимо, у вас "глаз замылился" )) Если Hour(Time[1]) != Hour(Time[0]), то очистка. Итак столько раз, сколько в данной минуте будет тиков. Если это критично, то добавьте флаг очистки.

 
Только Hour(Time[1]) нужно хранить в внешней переменной
 

Что-то у меня при компиляции редактор ругается,

')' - wrong parameters count D:\MTMQ\experts\indicators\Tikker.mq4 (79, 29)

когда вставляю конструкцию

if (H1time != Hour(Time[0]) )
H1time = Hour(Time[0]);

все скобки расставлены правильно.

Объявляю int H1time, как требуется в документации,

в int init(), присваиваю H1time=Hour(Time[1]);

Что не так?

 

Помогите разобраться в мистике.

Хочу сохранять в файле данные торговли. Знаю, что они сохраняются в папке терминала /EXPERTS/FILES .

Написал следующий тестовый код (обработку ошибок убрал):

---------------

string FileName = "MyFile.csv";

int handle;

handle = FileOpen(FileName, FILE_CSV|FILE_WRITE, ';');

FileWrite(handle, " Proba");

FileClose(handle);

handle = FileOpen(FileName, FILE_CSV|FILE_READ,';');

Comment (FileReadString(handle), " FileName = ", FileName, " FileSize = ", FileSize (handle));

FileClose(handle);

------------

То есть, открыл файл на запись, записал туда текст, закрыл файл.

Опять открыл, но для чтения, прочитал из него текст, вывел текст в строку комментария на графике, закрыл файл.

Так вот, всё это работает и комментарий на график выводится, но файла в той директории я не нашёл! Более того, пустил поиск по всему диску C:\, но опять файла не нашёл! Мистика какая-то! Файл, вроде есть, но его нет.

Когда к простому имени файла я добавил полный путь к папке /EXPERTS/FILES, то вышла ошибка о неправильном имени файла.

Ну не должно так быть! Не правильно это!

Где мой файл?

 
ssn1:

Помогите разобраться в мистике.

Хочу сохранять в файле данные торговли. Знаю, что они сохраняются в папке терминала /EXPERTS/FILES .

Написал следующий тестовый код (обработку ошибок убрал):

---------------

string FileName = "MyFile.csv";

int handle;

handle = FileOpen(FileName, FILE_CSV|FILE_WRITE, ';');

FileWrite(handle, " Proba");

FileClose(handle);

handle = FileOpen(FileName, FILE_CSV|FILE_READ,';');

Comment (FileReadString(handle), " FileName = ", FileName, " FileSize = ", FileSize (handle));

FileClose(handle);

------------

То есть, открыл файл на запись, записал туда текст, закрыл файл.

Опять открыл, но для чтения, прочитал из него текст, вывел текст в строку комментария на графике, закрыл файл.

Так вот, всё это работает и комментарий на график выводится, но файла в той директории я не нашёл! Более того, пустил поиск по всему диску C:\, но опять файла не нашёл! Мистика какая-то! Файл, вроде есть, но его нет.

Когда к простому имени файла я добавил полный путь к папке /EXPERTS/FILES, то вышла ошибка о неправильном имени файла.

Ну не должно так быть! Не правильно это!

Где мой файл?


Если Вы работаете в тестере, то нужно искать в tester\files
 
Angela:

Что-то у меня при компиляции редактор ругается,

')' - wrong parameters count D:\MTMQ\experts\indicators\Tikker.mq4 (79, 29)

когда вставляю конструкцию

if (H1time != Hour(Time[0]) )
H1time = Hour(Time[0]);

все скобки расставлены правильно.

Объявляю int H1time, как требуется в документации,

в int init(), присваиваю H1time=Hour(Time[1]);

Что не так?


Функция Hour(), не имеет передаваемых параметров, а вы передаете в нее Time[0].
Отсюда и ошибки.

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