Автор |
Сообщение |
Dudi
Зарегистрирован: 03.02.2010
Сообщения: 25
|
000 писал(а): |
Ссылочку дай. Я так не вспомню о чем речь.... |
вот тут лежит:
http://forex.kbpauk.ru/printthread.php/Board/pf/main/69533/type/post
Amibroker(XO плюг, автор 000)
Karlitos писал(а): |
Из всех вариантов эти три более-менее. |
Первые ХО из архива похожи на настоящие, жаль только что их прям на график нельзя наложить,
а вот 2 и 3 опять какието непонятные, куча каких строчек с циферками.. зачем это надо, как там размер бокса менять
В нормальных ХО должно быть всего 3 изменяемых параметра:
1. Цена 2. Размер бокса и 3. Размер реверса. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Karlitos
Зарегистрирован: 22.03.2009
Сообщения: 32
|
Dudi писал(а): |
а вот 2 и 3 опять какието непонятные, куча каких строчек с циферками.. зачем это надо, как там размер бокса менять
В нормальных ХО должно быть всего 3 изменяемых параметра:
1. Цена 2. Размер бокса и 3. Размер реверса. |
Насчет цены впервые слышу, правой кнопкой нажимаешь на график и меняешь размер бокса и реверс. "Куча строчек" это для удобства, когда считаешь по формуле куда пойдет цена. Их кстати тоже можно убрать в параметрах. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот все, что там было. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Dudi
Зарегистрирован: 03.02.2010
Сообщения: 25
|
А я попробовал вот так, в результате Ами выдала ошибки.
Также пробовал ATR поместить внутрь Lastvalue() - но тогда индикатор теряет стабильность, да и бокс получается не адаптивный, а одинакового размера видимо на основе последнего значения АТР
LinearReg() тоже почему то не удается использовать как исходное значение для расчета..
Код: |
Box = ATR(10);
Revers = 3;
ff = LinearReg( Close,5);
A = 1;
PFL = Null;
PFH = Null;
PFL[0] = Box * ceil(ff[0]/Box) + Box; //выдает ошибку
PFH[0] = Box * floor(ff[0]/Box); //выдает ошибку
direction = 0;
...
|
В чем тут ошибка ? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
PFL[0] это число а Box это массив (много чисел). Вот поэтому и ругается.
Вообще сделать ХО с переменным боксом задача не тривиальная.
Поскольку в одном столбике Ами может рисовать боксы только одинакового размера надо фиксировать значение бокса в начале рисования столбика и удерживать его до начала рисования следующего. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
Решил проверить что за крестики-нолики, и вот ошибочка выходит тут
delta = BarCount - j -2;
// смещение баров
//(2 - на один меньше чем надо.
// Освобождаю место для точки
// показывающей текущее Close)
LastClose = LastValue(Close);
direction = Ref(direction, - delta); // для смены цвета баров
t=Ref(t, -delta);
PFD = Ref(PFD, -delta); // смещение даты реверса
Hi = Ref(PFH, -delta) + Box/2;
Lo = Ref(PFL, -delta) - Box/2; |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
ни одного рабочего кода под новую версию найти не удалось |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
//------------------------------------------------------------------------------
//
// Formula Name: P&F Chart - High/Low prices Sept2003
// Author/Uploader: Graham Kavanagh
// E-mail: gkavanagh@e-wire.net.au
// Date/Time Added: 2003-10-01 02:44:23
// Origin: Australia
// Keywords:
// Level: semi-advanced
// Flags: indicator
// Formula URL: http://www.amibroker.com/library/formula.php?id=301
// Details URL: http://www.amibroker.com/library/detail.php?id=301
//
//------------------------------------------------------------------------------
//
// Supersedes other P&F versions in this and yahoo files.
//
// P&F chart for V4.40 and above. Based on close prices.
//
// Problem resolved with boxes not being created at right prices due to the 9
// decimal place inaccuracies for numbers with decimals. This was causing a
// problem creating the rising and falling boxes with the Ceil and Floor
// functions.
//
// Place in indicator builder. Chart is compacted to the right end of the
// chart space ending on last date bar.
//
// Box sizes and reverse can be changed near the beginning of the afl code
// within the "Boxsize = IIF" statements.
//
//------------------------------------------------------------------------------
//AFL P&F Chart for Amibroker Indicator window. Based on High/low prices.
//Based on code in AB help files
//Reverse is 3 boxes.
//Graham Kavanagh 30 Sep 2003
Version(4.40);
SetBarsRequired(100000,100000);
//Size for P&F boxes
boxsize=IIf(C<0.05, 0.001,
IIf(C>=0.05 AND C<0.1, 0.002,
IIf(C>=0.1 AND C<0.5, 0.005,
IIf(C>=0.5 AND C<2, 0.01,
IIf(C>=2 AND C<5, 0.02,
IIf(C>=5 AND C<10, 0.05,
IIf(C>=10 AND C<50, 0.1,
IIf(C>=50 AND C<100, 0.2,
IIf(C>=100 AND C<200, 0.5,
IIf(C>=200 AND C<500, 1,
2 ))))))))));
Box = LastValue(boxsize);
HX = round((H/box)*10)/10;
LX = round((L/box)*10)/10;
RH = floor(HX);
FL = ceil(LX);
// initialize first element
j = 0;
Reverse1 = 3; // reversal requirement
PFC[j] = FL[0];
PFO[j] = PFC[j] + 1;
down = 1; // By default the first bar is a down bar.
up = 0;
swap = 0;
// perform the loop that produces PF Chart
for( i = 1; i < BarCount; i++ )
{
if( FL[i] <= PFC[j]-1 && down) //continue down
{
PFC[j] = FL[i];
PFO[j] = PFC[j] + 1;
}
else
{
if( RH[i] >= PFC[j] + Reverse1 && down) //Change direction to up
{
j++;
swap = 1;
PFC[j] = RH[i];
PFO[j] = PFC[j]-1;
}
}
if( RH[i] >= PFC[j] + 1 && up) //Continue up
{
PFC[j] = RH[i];
PFO[j] = PFC[j] - 1;
}
else
{
if( FL[i] <= PFC[j] - Reverse1 && up) //Change direction to down
{
j++;
PFC[j] = FL[i];
PFO[j] = PFC[j] + 1;
swap = 1;
}
}
if( swap )
{
swap = 0;
if( up )
{
up = 0;
down = 1;
}
else
{
up = 1;
down = 0;
}
}
}
delta = BarCount - j-1;
PFO = Ref( PFO, -delta );
PFC = Ref( PFC, -delta );
// High-Low range sets the height of the P&F bar
H = IIf(Ref(PFC,-1)>Ref(PFO,-1),Ref(HHV(PFC,1),-1)-1,Max(PFO,PFC))*Box;
L = IIf(Ref(PFC,-1)<Ref(PFO,-1),Ref(LLV(PFC,1),-1)+1,Min(PFO,PFC))*Box;
O = IIf(Ref(PFC,-1)>Ref(PFO,-1),Ref(HHV(PFC,1),-1)-1,IIf(Ref(PFC,-1)<Ref(PFO,-1),Ref(LLV(PFC,1),-1)+1,PFO))*Box;
// the difference between Open AND Close should be set to box size
// the sign decides if X or O are plotted
C = O + Box * IIf( PFC > PFO, 1,-1);
GraphXSpace = 2;
Title = "No Jscript " + Name()+ " PF HiLo, H: " + H+ ", L: " + L+", Box: "+ box + ", Reversal: " + reverse1;
Plot( C, "P&F Chart Close", IIf( PFC > PFO, colorBlue, colorRed ), styleCandle+styleNoLabel+stylePointAndFigure); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Atlasraketa
Зарегистрирован: 12.07.2015
Сообщения: 136
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|