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



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

СообщениеДобавлено: Чт Авг 08, 2013 8:56 am Ответить с цитатой Вернуться к началу

I did not express clearly , I beg your pardon,
SetBarsRequired(sbrAll, 0);

//if(H[i] > PA1[i-1])
When the conditions are met , LL = Ref (Low, 1);
//if(L[i] < PS1[i-1])
When the conditions are met , HH = Ref (High, 1);
See Figure , when the HH line through PA1 line , LL lines moving position.

_________________
Beginner

Последний раз редактировалось: Kreangast (Чт Авг 08, 2013 10:27 am), всего редактировалось 2 раз(а)
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Авг 08, 2013 9:32 am Ответить с цитатой Вернуться к началу

Ref (Low, 1)
looking to the future.
may need to use -1

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



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

СообщениеДобавлено: Чт Авг 08, 2013 9:38 am Ответить с цитатой Вернуться к началу

000 писал(а):
Ref (Low, 1)
looking to the future.
may need to use -1


I can not think of any other way .
Because H [i]> PA1 condition after the establishment . Lowest LL BAR from the next one begins recalculated.
OR Because L [i]< PS1 condition after the establishment . Hightest HH BAR from the next one begins recalculated.

See Figure



Would you please help me , thank you very much

_________________
Beginner
Посмотреть профиль Отправить личное сообщение
Kreangast



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

СообщениеДобавлено: Чт Авг 08, 2013 10:45 am Ответить с цитатой Вернуться к началу

Kreangast писал(а):
000 писал(а):
Ref (Low, 1)
looking to the future.
may need to use -1


I can not think of any other way .
Because H [i]> PA1 condition after the establishment . Lowest LL BAR from the next one begins recalculated.
OR Because L [i]< PS1 condition after the establishment . Hightest HH BAR from the next one begins recalculated.

See Figure



Would you please help me , thank you very much


box1=0;
box2=0;
SetBarsRequired(10000,10000);
procedure fillDarvas(start,end,swap,top, bottom )
{
for ( j = start; j < end; j++)
{
if( box1[j] == swap)
box1[j]= top ;
else
box1[j]= bottom;

if(box2[j] == swap)
box2[j]= bottom ;
else
box2[j]= top;
}
}

BoxArr1 = 0;
BoxArr2 = 0;
StateArray = 0;
DBuy = 0;
DSell = 0;
TopArray = 0;
BotArray = 0;
tick=0;

BoxTop = High[0];
BoxBot = Low[0];
swap=0;
state = 0;
BoxStart = 0;

for (i=0; i<BarCount; i++)
{
if (state==5)
{
TopArray[i]=BoxTop;
BotArray[i]=BoxBot;
if (Low[i]<(BoxBot*(1-tick/100)) || High[i]>(BoxTop*(1+tick/100)))
{
fillDarvas(BoxStart,i,swap,BoxTop,BoxBot);

state = 1;
swap = !swap;
BoxTop = High[i];
BoxStart = i;
}
}
else
{
if (High[i]<BoxTop)
{
if ((state<3) || (Low[i]>BoxBot))
{
state++;
}
else
{
state=3;
}
if (state==3)
BoxBot=Low[i];
}
else
{
state=1;
BoxTop=High[i];
}
}
StateArray[i] = state;
}

fillDarvas(BoxStart,BarCount,swap,BoxTop,BoxBot);
Buy=Cover=H>Ref(box1,-1) AND H>Ref(box2,-1) AND Ref(statearray,-1)==5;
Short=Sell=L<Ref(box1,-1) AND L<Ref(box2,-1) AND Ref(statearray,-1)==5;




Plot( box1, "" , 1 + statearray, styleLine );
Plot( box2, "" , 1 + statearray , styleLine );

_SECTION_END();

_SECTION_BEGIN("14 Line HHLL by: Isfandi");
//****** sahamlq45.blogspot.com ******


of=1;
n=100;
Hh=HHV(H,n);
Ll=LLV(L,n);

p1=ll+(hh-ll)*0.5;
p2=ll+(hh-ll)*0.382;
p3=ll+(hh-ll)*0.618;
p4=ll+(hh-ll)*0.236;
p5=ll+(hh-ll)*0.786;

Plot(p1, "p1:",9,styleDashed);
Plot(p2, "p1:",24,styleDashed);
Plot(p3, "p1:",24,styleDashed);
Plot(p4, "p1:",24,styleDashed);
Plot(p5, "p1:",24,styleDashed);
Plot(Hh, "p1:",8,styleDashed);
Plot(Ll, "p1:",13,styleDashed);

_SECTION_END();
_SECTION_END();

/* **********************************

Code to automatically identify pivots

********************************** */
// -- what will be our lookback range for the hh and ll?
farback=Param("How Far back to go",100,50,5000,10);
nBars = Param("Number of bars", 12, 5, 40);
// -- Title.
Title = Name() + " (" + StrLeft(FullName(), 15) + ") O: " + Open + ",
H: " + High + ", L: " + Low + ", C: " + Close;
// -- Plot basic candle chart
PlotOHLC(Open, High, Low, Close,
"BIdx = " + BarIndex() +
"\n" + "O = " + O + "\n"+"H = "+ H + "\n"+"L = " + L
+ "\n"+"C ",
colorBlack, styleCandle);
GraphXSpace=7;
// -- Create 0-initialized arrays the size of barcount
aHPivs = H - H;
aLPivs = L - L;
// -- More for future use, not necessary for basic plotting
aHPivHighs = H - H;
aLPivLows = L - L;
aHPivIdxs = H - H;
aLPivIdxs = L - L;
nHPivs = 0;
nLPivs = 0;
lastHPIdx = 0;
lastLPIdx = 0;
lastHPH = 0;
lastLPL = 0;
curPivBarIdx = 0;
// -- looking back from the current bar, how many bars
// back were the hhv and llv values of the previous
// n bars, etc.?
aHHVBars = HHVBars(H, nBars);
aLLVBars = LLVBars(L, nBars);
aHHV = HHV(H, nBars);
aLLV = LLV(L, nBars);
// -- Would like to set this up so pivots are calculated back from
// last visible bar to make it easy to "go back" and see the pivots
// this code would find. However, the first instance of
// _Trace output will show a value of 0
aVisBars = Status("barvisible");
nLastVisBar = LastValue(Highest(IIf(aVisBars, BarIndex(), 0)));
_TRACE("Last visible bar: " + nLastVisBar);
// -- Initialize value of curTrend
curBar = (BarCount-1);
curTrend = "";
if (aLLVBars[curBar] <
aHHVBars[curBar]) {
curTrend = "D";
}
else {
curTrend = "U";
}
// -- Loop through bars. Search for
// entirely array-based approach
// in future version
for (i=0; i<farback; i++) {
curBar = (BarCount - 1) - i;
// -- Have we identified a pivot? If trend is down...
if (aLLVBars[curBar] < aHHVBars[curBar]) {
// ... and had been up, this is a trend change
if (curTrend == "U") {
curTrend = "D";
// -- Capture pivot information
curPivBarIdx = curBar - aLLVBars[curBar];
aLPivs[curPivBarIdx] = 1;
aLPivLows[nLPivs] = L[curPivBarIdx];
aLPivIdxs[nLPivs] = curPivBarIdx;
nLPivs++;
}
// -- or current trend is up
} else {
if (curTrend == "D") {
curTrend = "U";
curPivBarIdx = curBar - aHHVBars[curBar];
aHPivs[curPivBarIdx] = 1;
aHPivHighs[nHPivs] = H[curPivBarIdx];
aHPivIdxs[nHPivs] = curPivBarIdx;
nHPivs++;
}
// -- If curTrend is up...else...
}
// -- loop through bars
}
// -- Basic attempt to add a pivot this logic may have missed
// -- OK, now I want to look at last two pivots. If the most
// recent low pivot is after the last high, I could
// still have a high pivot that I didn't catch
// -- Start at last bar
curBar = (BarCount-1);
candIdx = 0;
candPrc = 0;
lastLPIdx = aLPivIdxs[0];
lastLPL = aLPivLows[0];
lastHPIdx = aHPivIdxs[0];
lastHPH = aHPivHighs[0];
if (lastLPIdx > lastHPIdx) {
// -- Bar and price info for candidate pivot
candIdx = curBar - aHHVBars[curBar];
candPrc = aHHV[curBar];
if (
lastHPH < candPrc AND
candIdx > lastLPIdx AND
candIdx < curBar) {
// -- OK, we'll add this as a pivot...
aHPivs[candIdx] = 1;
// ...and then rearrange elements in the
// pivot information arrays
for (j=0; j<nHPivs; j++) {
aHPivHighs[nHPivs-j] = aHPivHighs[nHPivs-
(j+1)];
aHPivIdxs[nHPivs-j] = aHPivIdxs[nHPivs-(j+1)];
}
aHPivHighs[0] = candPrc ;
aHPivIdxs[0] = candIdx;
nHPivs++;
}
} else {
// -- Bar and price info for candidate pivot
candIdx = curBar - aLLVBars[curBar];
candPrc = aLLV[curBar];
if (
lastLPL > candPrc AND
candIdx > lastHPIdx AND
candIdx < curBar) {
// -- OK, we'll add this as a pivot...
aLPivs[candIdx] = 1;
// ...and then rearrange elements in the
// pivot information arrays
for (j=0; j<nLPivs; j++) {
aLPivLows[nLPivs-j] = aLPivLows[nLPivs-(j+1)];
aLPivIdxs[nLPivs-j] = aLPivIdxs[nLPivs-(j+1)];
}
aLPivLows[0] = candPrc;
aLPivIdxs[0] = candIdx;
nLPivs++;
}
}
// -- Dump inventory of high pivots for debugging
/*
for (k=0; k<nHPivs; k++) {
_TRACE("High pivot no. " + k
+ " at barindex: " + aHPivIdxs[k] + ", "
+ WriteVal(ValueWhen(BarIndex()==aHPivIdxs[k],
DateTime(), 1), formatDateTime)
+ ", " + aHPivHighs[k]);
}
*/
// -- OK, let's plot the pivots using arrows
PlotShapes(IIf(aHPivs==1, shapeDownArrow, shapeNone), colorRed, 0, High,
Offset=-15);
PlotShapes(IIf(aLPivs==1, shapeUpArrow , shapeNone), colorBlue, 0, Low,
Offset=-15);

//Please refer to

_________________
Beginner
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Авг 08, 2013 11:16 am Ответить с цитатой Вернуться к началу

Пацаны. Кто силен по не русски. Помогите мне понять.

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



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

СообщениеДобавлено: Чт Авг 08, 2013 1:25 pm Ответить с цитатой Вернуться к началу

Я тоже не могу понять - он говорит на ломаном аглицком, слова ставит рандомно, смысл весь теряется. Пусть изъясняется картинками)
Посмотреть профиль Отправить личное сообщение ICQ Number
Kreangast



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

СообщениеДобавлено: Чт Авг 08, 2013 2:02 pm Ответить с цитатой Вернуться к началу

if(H[i] > PA1[i-1])
PA1[i] = PA[i];
PS1[i] = PS[i];
else if(L[i] < PS1[i-1]) {
PS1[i] = PS[i];
PA1[i] = PA[i];


I need to recalculate the next one BAR TR values(Like with the first recalculated).

Who can help me thank you very much.
[url][IMG]http://p13.freep.cn/p.aspx?u=v20_p13_photo_1308082102046980_0.jpg[/IMG][/url]

_________________
Beginner

Последний раз редактировалось: Kreangast (Чт Авг 08, 2013 4:02 pm), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Авг 08, 2013 3:51 pm Ответить с цитатой Вернуться к началу

Kreangast писал(а):
if(H[i] > PA1[i-1])
PA1[i] = PA[i];
PS1[i] = PS[i];
else if(L[i] < PS1[i-1]) {
PS1[i] = PS[i];
PA1[i] = PA[i];


I need to recalculate the next one BAR TR values(Like with the first recalculated).

Who can help me thank you very much.

NEXT??
Код:

for(i = 2; i < BarCount - 1; i++) {
 if(H[i-1] > PA1[i-2]) {
  PA1[i] = PA[i];
  PS1[i] = PS[i];
 }
 else if(L[i-1] < PS1[i-2]) {
  PS1[i] = PS[i];
  PA1[i] = PA[i];
 }
 else {
  PA1[i] = PA1[i - 1];
  PS1[i] = PS1[i - 1];
 }
}

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



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

СообщениеДобавлено: Чт Авг 08, 2013 4:08 pm Ответить с цитатой Вернуться к началу

Hi 000
See Figure
My skills is poor, please forgive me.

for(i = 2; i < BarCount; i++) {
if(H[i] > PA1[i-1]) {
PA1[i] = PA[i];
PS1[i] = PS[i];
}
else if(L[i] < PS1[i-1]) {
PS1[i] = PS[i];
PA1[i] = PA[i];
}
The above work is completed .
Next Steps

Next Bar L[i] ,In this price to calculate the new values ​​of TR.
or
Next Bar H[i] ,In this price to calculate the new values ​​of TR.

_________________
Beginner
Посмотреть профиль Отправить личное сообщение
Kreangast



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

СообщениеДобавлено: Чт Авг 08, 2013 4:37 pm Ответить с цитатой Вернуться к началу

Kreangast писал(а):
Hi 000
See Figure
My skills is poor, please forgive me.

for(i = 2; i < BarCount; i++) {
if(H[i] > PA1[i-1]) {
PA1[i] = PA[i];
PS1[i] = PS[i];
}
else if(L[i] < PS1[i-1]) {
PS1[i] = PS[i];
PA1[i] = PA[i];
}
The above work is completed .
Next Steps

Next Bar L[i] ,In this price to calculate the new values ​​of TR.
or
Next Bar H[i] ,In this price to calculate the new values ​​of TR.


After crossing the PA1 highest price , lowest price from under a Bar recalculation TR
After crossing the PS1 or the lowest price from the highest price under a Bar recalculation TR

Please think of a good way
Thank you very much
http://p13.freep.cn/p.aspx?u=v20_p13_photo_1308082102046980_0.jpg&click=1

_________________
Beginner
Посмотреть профиль Отправить личное сообщение
Kreangast



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

СообщениеДобавлено: Чт Авг 08, 2013 5:12 pm Ответить с цитатой Вернуться к началу

Kreangast писал(а):
Kreangast писал(а):
Hi 000
See Figure
My skills is poor, please forgive me.

for(i = 2; i < BarCount; i++) {
if(H[i] > PA1[i-1]) {
PA1[i] = PA[i];
PS1[i] = PS[i];
}
else if(L[i] < PS1[i-1]) {
PS1[i] = PS[i];
PA1[i] = PA[i];
}
The above work is completed .
Next Steps

Next Bar L[i] ,In this price to calculate the new values ​​of TR.
or
Next Bar H[i] ,In this price to calculate the new values ​​of TR.


After crossing the PA1 highest price , lowest price from under a Bar recalculation TR
After crossing the PS1 or the lowest price from the highest price under a Bar recalculation TR

Please think of a good way
Thank you very much
http://p13.freep.cn/p.aspx?u=v20_p13_photo_1308082102046980_0.jpg&click=1


[IMG]http://p13.freep.cn/p.aspx?u=v20_p13_photo_1308082212067697_0.jpg[/IMG]

_________________
Beginner
Посмотреть профиль Отправить личное сообщение
Kreangast



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

СообщениеДобавлено: Чт Авг 08, 2013 5:30 pm Ответить с цитатой Вернуться к началу

NEXT??
Код:


for(i = 2; i < BarCount - 1; i++) {
 if(H[i-1] > PA1[i-2]) {
  PA1[i] = PA[i];
  PS1[i] = PS[i];
}
 else if(L[i-1] < PS1[i-2]) {
  PS1[i] = PS[i];
  PA1[i] = PA[i];
 }
 else {
  PA1[i] = PA1[i - 1];
  PS1[i] = PS1[i - 1];
 }
}
[/quote]
Is not it can be understood as the end of the calculation after the establishment of the current condition of PA1.
Initialization calculate the next BAR Lowest Low + TR * 8. ( Prior to the Low value jumps the BAR)

_________________
Beginner
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Авг 08, 2013 5:51 pm Ответить с цитатой Вернуться к началу

there
Код:
TR = Max(Max(High - Low), abs(Ref(Close, -1) - High)), abs(Ref(Close, -1) - Low));

calculated TR for each bar.
there
Код:
PA = L + TR * 8;

calculated PA for each bar
there
Код:
PA1[i] = PA[i];

PA for this bar

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



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

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

000 писал(а):
there
Код:
TR = Max(Max(High - Low), abs(Ref(Close, -1) - High)), abs(Ref(Close, -1) - Low));

calculated TR for each bar.
there
Код:
PA = L + TR * 8;

calculated PA for each bar
there
Код:
PA1[i] = PA[i];

PA for this bar

//
SetBarsRequired(sbrAll, 0);

TR = Max(Max((High - Low), abs(Ref(Close, -1) - High)), abs(Ref(Close, -1) - Low));
PA = L + TR * 8;
PA1[1] = PA[1];
PS = H - TR * 8;
PS1[1] = PS[1];

for(i = 2; i < BarCount; i++) {
if(H[i] > PA1[i-1]) {
PA1[i] = PA[i];
PS1[i] = PS[i];
}
else if(L[i] < PS1[i-1]) {
PS1[i] = PS[i];
PA1[i] = PA[i];
}
else {
PA1[i] = PA1[i - 1];
PS1[i] = PS1[i - 1];
}
}

Plot(C, "", colorBlack, styleCandle);

Plot(PA1, "", colorRed);
Plot(PS1, "", colorBlue);
//
After completion of the above work , then judge the following conditions are recalculated for the next BAR

if (H [I]> PA1 OR L [i] <PS1)
I hope that next BAR re looking for the highest price and the lowest price calculation.

Thank you for your reply

_________________
Beginner
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Авг 08, 2013 6:07 pm Ответить с цитатой Вернуться к началу

Yes

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen