Автор |
Сообщение |
sserk
Зарегистрирован: 15.01.2012
Сообщения: 23
|
Попробую на словах
В общем есть код состоящих из двух частей. Первая часть ищет точки для сделок бай и селл и записывает их раз в день в конце рабочей сессии в текстовый файл. Из-за того, что этот индикатор перерисовывает иногда точки его нельзя использовать в реал-тайм торговле. Вторая часть кода читает этот самый файл и ищет совпадения во времени сделок. НО так как совпадений множество (в среднем от 50 до 80) появилась идея как то эти совпадения засунуть в массив и для фильтрации искать скажем среднее значение. Т.е. первая часть кода рисует сделки, а вторая параллельно должна предполагать когда сделка будет закрыта по времени. В примере выше, как раз приведен второй кусок кода. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Не понял.
Давай так
Код: |
timeHist = StrExtract(s,2); //читаем третью колонку
timeHist = StrToNum(timeHist); // преобразуем из текста в цифру
for( i = 0; i < 11; i++ ) //формируем массив из 11 значений времени
{
ti[i] = ti[i + 1]; // нулевое значение соотв. ti[10]
if(i == 10)
ti[i] = timeHist;
}
|
тут постепенно загоняем в массив значение времени. В итоге должны остаться значения из последний 11 строк
А вот дальше...
Код: |
if(ti[9]==LastValue(timeB1)) // задаем условие для поиска совпадений, timeB1 задается индикатором в формате ччммсс (время без пробелов и разделителей) тайм 5 минут
{m++; // определяем количество совпадений, для создания нужного количества элементов массива
for ( y = 0; y < m; y++) // пробуем создать массив из значений ti[10] попадающих под условие ti[9]= timeB1
{
ym[y] = ym[y+1];
if (y==m)
ym[y] = ti[10]; // а вот значений то в массиве и нет?????? где то ошибка
}
}
|
Что из себя представляет timeB1. Часто ли оно равно 0.
.... Вроде начинаю что то понимать....
Не понятно почему и зачем первый цикл 11 итераций если первые 9 не используются никак.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
sserk
Зарегистрирован: 15.01.2012
Сообщения: 23
|
Код: |
if(ti[9]==LastValue(timeB1)) |
это и есть условие для поиска совпадений, переменная timeB1 появляется из первой части кода в виде времени для покупки, значения принимает от 100000 до 184500. Нулевого значения у этой переменной нет. А цикл из первых 11 итераций остался от прошлых экспериментов, по идее его можно сократить до 2. Нужные значения это ti[9] для поиска и сравнения с timeB1 и следующее за ним ti[10], которое я хочу засунуть уже в другой массив, чтобы в дальнейшем с этим новым массивом работать. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Тебе надо найти в файле все строки у которых время равно timeB1 ??? И засунуть их в отдельный массив. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
sserk
Зарегистрирован: 15.01.2012
Сообщения: 23
|
не совсем, для сравнения берется строка с переменной ti[9] она сравнивается с timeB1, а для нового массива берется переменная ti[10], которая идет сразу следом за ti[9], т.е. одну строку из текста нашли и сравнили, а для нового массива берем следующую строку ti[10]. и уже из ti[10] нужен массив |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну да. Это я не правильно написал.
Вечером сделаю тебе такой код. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Пробуй.
Код: |
r = ParamToggle("read file", "No|Yes", 0);
t = t1 = ym = 0;
if(r)
{
fh1 = fopen( "gazp06_12.txt", "r");
if( fh1 )
{
timeHist = 0;
i = 1;
while(!feof(fh1))
{
s = fgets(fh1);
if(StrExtract(s, 0) == Name())
{
timeHist = StrExtract(s,2);
timeHist = StrToNum(timeHist);
t1 = t;
t = timeHist;
if(t1 == LastValue(timeB1))
{
ym[i] = t;
i++;
}
}
}
fclose( fh1 );
}
}
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
sserk
Зарегистрирован: 15.01.2012
Сообщения: 23
|
|
Посмотреть профиль Отправить личное сообщение |
|
|