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



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

СообщениеДобавлено: Ср Апр 20, 2016 1:39 pm Ответить с цитатой Вернуться к началу

Спасибо!
Посмотреть профиль Отправить личное сообщение
Sergey51



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

СообщениеДобавлено: Чт Апр 28, 2016 12:00 pm Ответить с цитатой Вернуться к началу

И еще вопрос: Есть некий опережающий индикатор, который амиброкер не сможет просчитать, он считается в Тайминг солюшн, и его можно вывести в текстовой файл в таком виде:
22.04.2016 35,7371
23.04.2016 35,2426
24.04.2016 35,0056
25.04.2016 34,8800
26.04.2016 34,6178
27.04.2016 34,5569
28.04.2016 34,4408
29.04.2016 34,2485
30.04.2016 34,1120
01.05.2016 33,7903
02.05.2016 33,3058
03.05.2016 32,7988
04.05.2016 32,5979
05.05.2016 32,5888
06.05.2016 32,6499
07.05.2016 32,7965
08.05.2016 33,0290
09.05.2016 33,1850
10.05.2016 33,2197
11.05.2016 32,9477
12.05.2016 32,4895
13.05.2016 31,8643
14.05.2016 31,4925
15.05.2016 31,3761

Можно как-нибудь в формулу это запихать, т.е. чтобы амиброкер "тупо" нарисовал по этим данным линию (волну), как угодно.
Посмотреть профиль Отправить личное сообщение
DMITRY



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

СообщениеДобавлено: Чт Апр 28, 2016 1:56 pm Ответить с цитатой Вернуться к началу

Тут вроде про это: http://www.amisite.ru/phpBB2/viewtopic.php?t=999&postdays=0&postorder=asc&start=0
Посмотреть профиль Отправить личное сообщение
panzer



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

СообщениеДобавлено: Ср Май 11, 2016 6:26 pm Ответить с цитатой Вернуться к началу

Добрый день!
Возник вопрос, как из файла можно закачать данные в массив? Хочу вывести на график каналы, которые вычислил в другой программе. Пробую следующий код, но получаю странный вывод на графике, по задумке если нету смены канала, он должен брать данные прошлого бара, однако он почему-то рисует начальные данные. Вот как это выглядит:
Image

Код:
Код:

SetBarsRequired(100000,0);

High_bound =  fopen( "E:/file_high_boundry.txt", "r");
Low_bound = fopen( "E:/file_low_boundry.txt", "r");

dt = DateTime();
High_boundary=0;
Low_boundary=0;

function Date_To_Num(ddmmyyyy)
{
   dd_ = StrToNum(StrLeft(ddmmyyyy,2));
   mm_ = StrToNum(StrMid(ddmmyyyy,3,2));
   yy_ = StrToNum(StrRight(ddmmyyyy,4))-2000;
   return (10000 * (yy_+100)) + (100 * mm_) + dd_;
}
function Time_To_Num(hhmmss)
{
   hh_t = StrToNum(StrLeft(hhmmss,2));
   mm_t = StrToNum(StrMid(hhmmss,3,2));
   ss_t = StrToNum(StrRight(hhmmss,2));
   return 10000 * hh_t + 100 * mm_t + ss_t;
}

if( High_bound )
   {
      while( ! feof( High_bound ) )
      {
      s = fgets( High_bound );
      d0=Date_To_Num(StrExtract(s,0, ' '));
        t0=Time_To_Num(StrExtract(s,1, ' '));
      H_b = StrToNum(StrExtract(s,2, ' '));
      
      newbuy = (Cross(TimeNum(),t0) AND DateNum()==d0);   
      High_boundary = IIF(newbuy,H_b,High_boundary);
         
      }
   fclose( High_bound );
   }

if( Low_bound )
   {
         while( ! feof( Low_bound ) )
      {
      t = fgets( Low_bound );
      d0=Date_To_Num(StrExtract(t,0, ' '));
        t0=Time_To_Num(StrExtract(t,1, ' '));
      L_b = StrToNum(StrExtract(t,2, ' '));
      
      newbuy1 = (Cross(TimeNum(),t0) AND DateNum()==d0);   
      Low_boundary = IIF(newbuy1,L_b,Low_boundary);
      
      }   
      fclose( Low_bound );
   }
   
   IIf(newbuy==1,Plot(newbuy*10,"Upper channel",colorRed,styleLine),newbuy);
   

Plot(High_boundary,"Upper channel",colorBlue,styleLine);
Plot(Low_boundary,"Lower channel",colorGreen,styleLine);
Посмотреть профиль Отправить личное сообщение
panzer



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

СообщениеДобавлено: Ср Май 11, 2016 9:26 pm Ответить с цитатой Вернуться к началу

добавление вот этого в конце решило проблему
Код:

for( i = 1; i < BarCount; i++ )
{
   if (High_boundary[i]==0 AND High_boundary[i-1]!=0)
   {
   (High_boundary[i]=High_boundary[i-1]);
    printf("%.f \n",High_boundary[i]);
    }
  }


Но можно ли как-то включить сразу в функцию IFF?

High_boundary = IIF(newbuy,H_b,High_boundary);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Май 11, 2016 10:51 pm Ответить с цитатой Вернуться к началу

Вместо
Код:
High_boundary = IIF(newbuy,H_b,High_boundary);


Попробуй
Код:
High_boundary = ValueWhen(newbuy, H_b);

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



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

СообщениеДобавлено: Пт Июн 10, 2016 10:39 am Ответить с цитатой Вернуться к началу

Добрый день. Подскажите пожалуйста, как раскрасить часть панели:
1. вертикальные полосы к примеру rsi<20 в зеленый, а rsi>80 в красный
2. горизонтальные полосы диапазон от 1000 до 1500.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Июн 10, 2016 9:01 pm Ответить с цитатой Вернуться к началу

Не понятно объяснил.

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



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

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

Частично менять фон.
В первом варианте когда rsi < 30 поменять часть фона на зеленый цвет, когда > 70 сделать красным. Получится черный фон и зеленые/красные вставки.
Если конечно это реально сделать.
Посмотреть профиль Отправить личное сообщение
DMITRY



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

СообщениеДобавлено: Сб Июн 11, 2016 9:25 pm Ответить с цитатой Вернуться к началу

Код:
r = rsi(9);
Plot(r,"r",colorOrange, styleLine);
Plot(70,"",colorlightgrey,styleLine);
Plot(30,"",colorLightGrey,styleLine);
PlotOHLC( r,r,50,r, "", IIf( r > 50, colorRed, colorGreen ), styleCloud| styleClipMinMax, 30, 70);
Посмотреть профиль Отправить личное сообщение
AlexLan73



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

СообщениеДобавлено: Вс Июн 12, 2016 6:21 am Ответить с цитатой Вернуться к началу

Спасибо))
Посмотреть профиль Отправить личное сообщение
Demongloom



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

СообщениеДобавлено: Вс Окт 09, 2016 10:35 am Ответить с цитатой Вернуться к началу

Всем привет. Подскажите как в один/два приема осуществить элементарную операцию (а то похоже туплю):
1. Вычисление суммы ВСЕХ элементов массива начиная с первого
2. и вывод полученной константы в числовом формате (Plot не пойдет) на экран в область драг/дроп, чтоб она там постоянно висела?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Окт 09, 2016 12:55 pm Ответить с цитатой Вернуться к началу

Цитата:
1. Вычисление суммы ВСЕХ элементов массива начиная с первого

Cum(); Например Cum(Close);
Цитата:
2. и вывод полученной константы в числовом формате (Plot не пойдет) на экран в область драг/дроп, чтоб она там постоянно висела?

Не понял куда надо вывести. Можно воспользоваться
Title = NumToStr( Сюда числовую переменную , 1.3);

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



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

СообщениеДобавлено: Пн Окт 10, 2016 2:23 pm Ответить с цитатой Вернуться к началу

Привет.
[quote="000"][quote]Cum(); Например Cum(Close);

Я так полагаю что здесь придется отключать Квик АФЛ? Если да, напомни оператор каким оно выполняется плиз.
Потому что например:
Plot( Cum(1),_DEFAULT_NAME(), ParamColor("Color", ColorCycle ), ParamStyle("Style", styleLine, maskAll) ); дает монотонно растущий график с максимальным значением 66.

Цитата:

Не понял куда надо вывести. Можно воспользоваться
Title = NumToStr( Сюда числовую переменную , 1.3);


Здесь я имел ввиду строку выходных параметров индикаторов, та что вверху слева во всех окнах. Но если это сложно и многоэтапно, то пойдет вообще любой самый простой способ вывода на экран одной константы.
У меня сложности возникли именно с процедурой самого вывода константы, то есть с помощью каких операторов это можно выполнить. Я в справке так и не нашел ничего явного, касаемо этой процедуры. PlotText тоже не удел, он привязывает выход к координатам, а мне этого не нужно.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Цитата:
Я так полагаю что здесь придется отключать Квик АФЛ? Если да, напомни оператор каким оно выполняется плиз.

Да, надо отключить.
Код:
SetBarsRequired(sbrAll, sbrAll);

Цитата:
Здесь я имел ввиду строку выходных параметров индикаторов, та что вверху слева во всех окнах.

Это делается именно так, как я показал выше
Код:
Title = "тут любой ТЕКСТ";

Если надо вывести число, то его придется преобразовать в текст.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen