Автор |
Сообщение |
CherrLy
Зарегистрирован: 23.07.2009
Сообщения: 20
|
Нужно реализовать следующую вещь:
есть некоторый индикатор, для его вычисления нужны определённые параметры, которые с течением времени меняются. Т.е. фактически например 10 числа были параметры (-3, -2, -1), 12 числа (-2, -1, -6) и так далее. Нужно сделать так, чтобы амиброкер рисовал непрерывный график с учётом изменения этих параметров.
Пока вижу только 1 выход - хранить параметры в файле в виде:
Код: |
10.10.2009, -3, -2, -1
12.10.2009, -2, -1, -6
13.10.2009, -4, -2, -2
...
|
Перед построением индикатора считывать файл и потом только считать сам индикатор. Но вижу проблемы:
1) в ами насколько мне известно нет многомерных массивов, куда после прочтения файла запихнуть полученные данные?
2) индикатор будет считаться for i=1 to barcount, как получить дату текущего бара чтобы сравнить её с датой из файла чтобы получить актуальные на эту дату параметры?
Может есть более простые модели реализации, как хранить эти коэфициенты?
Заранее спасибо. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А эти коэффициенты в ручную расчитываются/вводятся? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
CherrLy
Зарегистрирован: 23.07.2009
Сообщения: 20
|
В том то и дело, что да. Они считаются в Excel, и не так часто, смена коэффицинтов может производиться 1 раз в несколько дней. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Завтра сделаю. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В общем так.
В папке Amibroker создаем файл qqq.test
с содержимым
Код: |
1081111, -3, 2, -1
1090115, 2, -1, -6
1090515, -4, -3, -1
|
первая цифра - дата в формате
10000 * (год - 1900) + 100 * месяц + день, например 2001-12-31 даст 1011231 и 1995-12-31 даст 951231
Далее через запятую без пробелов 3 цифры параметры
Вот такой код
Код: |
D = DateNum();
x = y = z = 0;
fh = fopen("qqq.test", "r");
if( fh ) {
str = fgets( fH );
Dat = StrToNum(StrExtract(str, 0));
for(i = 1; i < BarCount; i++)
{
if(D[i] == Dat) {
x[i] = StrToNum(StrExtract(str, 1));
y[i] = StrToNum(StrExtract(str, 2));
z[i] = StrToNum(StrExtract(str, 3));
str = fgets( fH );
Dat = StrToNum(StrExtract(str, 0));
}
else {
x[i] = x[i-1];
y[i] = y[i-1];
z[i] = z[i-1];
}
}
fclose( fh );
}
Plot(x, "x", colorRed);
Plot(y, "y", colorBlue);
Plot(z, "z", colorGreen);
|
рисует такую картинку |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
CherrLy
Зарегистрирован: 23.07.2009
Сообщения: 20
|
Спасибо огромное!!! Именно то, что нужно! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|