Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 как сохранить серию чисел из .txt файла? Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
sserk



Зарегистрирован: 15.01.2012
Сообщения: 23

СообщениеДобавлено: Вс Сен 30, 2012 6:56 pm Ответить с цитатой Вернуться к началу

Попробую на словах Smile
В общем есть код состоящих из двух частей. Первая часть ищет точки для сделок бай и селл и записывает их раз в день в конце рабочей сессии в текстовый файл. Из-за того, что этот индикатор перерисовывает иногда точки его нельзя использовать в реал-тайм торговле. Вторая часть кода читает этот самый файл и ищет совпадения во времени сделок. НО так как совпадений множество (в среднем от 50 до 80) появилась идея как то эти совпадения засунуть в массив и для фильтрации искать скажем среднее значение. Т.е. первая часть кода рисует сделки, а вторая параллельно должна предполагать когда сделка будет закрыта по времени. В примере выше, как раз приведен второй кусок кода.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вс Сен 30, 2012 9:16 pm Ответить с цитатой Вернуться к началу

Не понял.
Давай так
Код:

                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

СообщениеДобавлено: Пн Окт 01, 2012 4:59 pm Ответить с цитатой Вернуться к началу

Код:
 if(ti[9]==LastValue(timeB1))


это и есть условие для поиска совпадений, переменная timeB1 появляется из первой части кода в виде времени для покупки, значения принимает от 100000 до 184500. Нулевого значения у этой переменной нет. А цикл из первых 11 итераций остался от прошлых экспериментов, по идее его можно сократить до 2. Нужные значения это ti[9] для поиска и сравнения с timeB1 и следующее за ним ti[10], которое я хочу засунуть уже в другой массив, чтобы в дальнейшем с этим новым массивом работать.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Окт 01, 2012 5:07 pm Ответить с цитатой Вернуться к началу

Тебе надо найти в файле все строки у которых время равно timeB1 ??? И засунуть их в отдельный массив.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
sserk



Зарегистрирован: 15.01.2012
Сообщения: 23

СообщениеДобавлено: Пн Окт 01, 2012 5:16 pm Ответить с цитатой Вернуться к началу

не совсем, для сравнения берется строка с переменной ti[9] она сравнивается с timeB1, а для нового массива берется переменная ti[10], которая идет сразу следом за ti[9], т.е. одну строку из текста нашли и сравнили, а для нового массива берем следующую строку ti[10]. и уже из ti[10] нужен массив
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Окт 01, 2012 5:36 pm Ответить с цитатой Вернуться к началу

Ну да. Это я не правильно написал.
Вечером сделаю тебе такой код.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Окт 01, 2012 11:08 pm Ответить с цитатой Вернуться к началу

Пробуй.
Код:

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

СообщениеДобавлено: Вт Окт 02, 2012 6:41 pm Ответить с цитатой Вернуться к началу

Спасибо за код.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen