Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 След. |
Автор |
Сообщение |
Sergey51
Зарегистрирован: 05.09.2015
Сообщения: 30
|
|
Посмотреть профиль Отправить личное сообщение |
|
Sergey51
Зарегистрирован: 05.09.2015
Сообщения: 30
|
И еще вопрос: Есть некий опережающий индикатор, который амиброкер не сможет просчитать, он считается в Тайминг солюшн, и его можно вывести в текстовой файл в таком виде:
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
|
|
Посмотреть профиль Отправить личное сообщение |
|
panzer
Зарегистрирован: 02.02.2016
Сообщения: 5
|
Добрый день!
Возник вопрос, как из файла можно закачать данные в массив? Хочу вывести на график каналы, которые вычислил в другой программе. Пробую следующий код, но получаю странный вывод на графике, по задумке если нету смены канала, он должен брать данные прошлого бара, однако он почему-то рисует начальные данные. Вот как это выглядит:
Код:
Код: |
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
|
добавление вот этого в конце решило проблему
Код: |
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
|
Вместо
Код: |
High_boundary = IIF(newbuy,H_b,High_boundary); |
Попробуй
Код: |
High_boundary = ValueWhen(newbuy, H_b); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AlexLan73
Зарегистрирован: 25.06.2012
Сообщения: 87
|
Добрый день. Подскажите пожалуйста, как раскрасить часть панели:
1. вертикальные полосы к примеру rsi<20 в зеленый, а rsi>80 в красный
2. горизонтальные полосы диапазон от 1000 до 1500. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Не понятно объяснил. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AlexLan73
Зарегистрирован: 25.06.2012
Сообщения: 87
|
Частично менять фон.
В первом варианте когда rsi < 30 поменять часть фона на зеленый цвет, когда > 70 сделать красным. Получится черный фон и зеленые/красные вставки.
Если конечно это реально сделать. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
DMITRY
Зарегистрирован: 18.09.2009
Сообщения: 179
|
Код: |
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
|
|
Посмотреть профиль Отправить личное сообщение |
|
Demongloom
Зарегистрирован: 17.03.2016
Сообщения: 3
|
Всем привет. Подскажите как в один/два приема осуществить элементарную операцию (а то похоже туплю):
1. Вычисление суммы ВСЕХ элементов массива начиная с первого
2. и вывод полученной константы в числовом формате (Plot не пойдет) на экран в область драг/дроп, чтоб она там постоянно висела? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Цитата: |
1. Вычисление суммы ВСЕХ элементов массива начиная с первого |
Cum(); Например Cum(Close);
Цитата: |
2. и вывод полученной константы в числовом формате (Plot не пойдет) на экран в область драг/дроп, чтоб она там постоянно висела?
|
Не понял куда надо вывести. Можно воспользоваться
Title = NumToStr( Сюда числовую переменную , 1.3); |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Demongloom
Зарегистрирован: 17.03.2016
Сообщения: 3
|
Привет.
[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
|
Цитата: |
Я так полагаю что здесь придется отключать Квик АФЛ? Если да, напомни оператор каким оно выполняется плиз. |
Да, надо отключить.
Код: |
SetBarsRequired(sbrAll, sbrAll); |
Цитата: |
Здесь я имел ввиду строку выходных параметров индикаторов, та что вверху слева во всех окнах. |
Это делается именно так, как я показал выше
Код: |
Title = "тут любой ТЕКСТ"; |
Если надо вывести число, то его придется преобразовать в текст. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|