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



Зарегистрирован: 15.09.2008
Сообщения: 125
Откуда: С Паука

СообщениеДобавлено: Ср Окт 29, 2008 7:33 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Отлично. Н счет моды или максимума - подумаю.

Забыл.
Забыл сказать Спасибо ,
за то, что вот так, простым скриптом, Ами превратился в MarketDelta Smile
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Rybak писал(а):

Может я не прав (поправь), но я всё ж использую
Sum(V/100, BarsInRange) вместо MA(V, BarsInRange).

В принципе можно. Только поставь там LastValue(Sum(V/100, BarsInRange)) ибо я выводил линию Sum(V/100, BarsInRange) на чарт и она мне не понравилась...

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



Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия

СообщениеДобавлено: Чт Мар 19, 2009 7:19 pm Ответить с цитатой Вернуться к началу

Олег, я попробовал тот код, который ты написал на странице 2, на всякий случай продублирую тут


Код:
// для выбранного участка

//Market Profile
GraphXSpace = 5;
SetChartOptions(0, chartShowDates);

//===========================

Den = Param("Density", 40, 10, 100, 10);

ShowMP = ParamToggle("Show MP", "No|Yes");
ShowVP = ParamToggle("Show VP", "No|Yes");
StyleMP = ParamStyle("style MP", styleLine, maskAll);
StyleVP = ParamStyle("style VP", styleLine, maskAll);

//===========================
startBar = BeginValue(BarIndex());
endBar = EndValue(BarIndex());

BarsInRange = endBar -startBar;

if(BarsInRange < 1000)
{

   BarsInRange = BarsSince(startBar == BarIndex()) + 1;


   //===========================

   //===========================

   Bot = LastValue(ValueWhen(endBar == BarIndex(), LLV(L, BarsInRange), 1));
   Top = LastValue(ValueWhen(endBar == BarIndex(), HHV(H, BarsInRange), 1));
   Vol = LastValue(ValueWhen(endBar == BarIndex(), LastValue(Sum(V/100, BarsInRange)), 1));

   //===========================

   Range = Top-Bot;
   Box = Range/Den;
   VolumeUnit = Vol;

   for (k = 0; k < Den; k++)             // loop through each line (price) starting at the Lowest price

   {
      Line = Bot + k*Box;
      detect = Line >= L & Line <= H;

      if(ShowMP == True)
      {
         CountMPString = LastValue(ValueWhen(endBar == BarIndex(), Sum(detect, BarsInRange), 1));
         MpLine = IIf(CountMPString >= BarsInRange, Line, Null);

         Plot(MPLine, "", colorRed, styleMP);
      }

      if(ShowVP == True)
      {
         CountVPString = LastValue(ValueWhen(endBar == BarIndex(), Sum(detect*V, BarsInRange), 1));
         VpLine = IIf(CountVPString >= BarsInRange*VolumeUnit, Line + Box/4, Null);

         Plot(VPLine, "", colorBlue, styleVP);
      }
   }
}
Title = "{{NAME}} - {{INTERVAL}} {{DATE}} {{VALUES}} - \\c04 Market Profile  \\c06 Volume Profile";

_SECTION_BEGIN("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();



Все работает классно, однако возникает такая аномалия, которая хорошо видна на скриншоте. С чем это может быть связано?

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



Зарегистрирован: 30.12.2008
Сообщения: 214
Откуда: Воображляндия

СообщениеДобавлено: Чт Мар 19, 2009 7:54 pm Ответить с цитатой Вернуться к началу

Кажется разобрался. Моя ошибка была связана с тем, что левая граница данных для профиля была далеко за "экраном" и соответственно Профили строились на ней, а правая часть графика масштабировалась с учетом данных Профилей на левой части.

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



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

СообщениеДобавлено: Вс Ноя 29, 2009 1:42 pm Ответить с цитатой Вернуться к началу

В просторах интернета нашел вот такой вот код.
Посмотреть профиль Отправить личное сообщение
PROtest



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

СообщениеДобавлено: Чт Апр 15, 2010 11:06 pm Ответить с цитатой Вернуться к началу

Karlitos писал(а):
В просторах интернета нашел вот такой вот код.


Круто! Большое спасибо! Жаль только, что подтормаживает жутко.
Посмотреть профиль Отправить личное сообщение
Karlitos



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

СообщениеДобавлено: Чт Апр 15, 2010 11:25 pm Ответить с цитатой Вернуться к началу

PROtest писал(а):

Круто! Большое спасибо! Жаль только, что подтормаживает жутко.

Попробуй этот, он вроде не тормозит.
Посмотреть профиль Отправить личное сообщение
Karlitos



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

СообщениеДобавлено: Пт Апр 16, 2010 9:16 am Ответить с цитатой Вернуться к началу

Еще профиль.
Посмотреть профиль Отправить личное сообщение
PROtest



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

СообщениеДобавлено: Пт Апр 16, 2010 12:42 pm Ответить с цитатой Вернуться к началу

Karlitos писал(а):
PROtest писал(а):

Круто! Большое спасибо! Жаль только, что подтормаживает жутко.

Попробуй этот, он вроде не тормозит.


wow...супер! Теперь всё пучком. Ещё раз СПАСИБО!
Посмотреть профиль Отправить личное сообщение
hardcam



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

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

Доброе утро!
скачал вот такую формулу
Код:
_SECTION_BEGIN("MarketProfile");
//------------------------------------------------------------------------------
//
// Formula Name: Market Profile
//
// Use with 5/15min chart
// Originial - From AFL library
// Edited by - Milind / KAKA

//Market Profile 9/12/2009

PlotOHLC(O,H,L,C,"Price",IIf(C>O,colorGreen,colorRed),styleCandle);


EnMP2= ParamList("MarketProfile","Solid|Lines|Letters");
styleLines = ParamStyle("Style", styleLine, maskAll);

Type=ParamList("Type","Price Profile|Volume Profile");
Period= ParamList("Base","Hourly|Daily|Weekly|Monthly",1);


Den = Param("Density", 1, 0.25, 100, 0.25); // Resolution in terms of $
percent=Param("Value Area", 70, 1, 100, 1);
ViewTPOCount= ParamToggle("Show TPO Count", "No|Yes",1);
ViewPOC = ParamToggle("Show POC", "No|Yes",1);
ViewVALVAH = ParamToggle("Show VAL VAH Line", "No|Yes",1);
Viewfill = ParamToggle("Show VA Fill", "No|Yes",1);
Colorpoc=ParamColor("Color POC", colorYellow);
Colorfill=ParamColor("Color Fill", ColorRGB(20,40,60));


EnIB = ParamToggle("Show Initial Balance", "Yes|No");
IBBars = Param("Initial Balance Bars", 2, 0, 10, 1);

if(Period=="Daily"){
BarsInDay = BarsSince(Day() != Ref(Day(), -1));
Bot = TimeFrameGetPrice("L", inDaily, 0);
Top = TimeFrameGetPrice("H", inDaily, 0);
Vol = TimeFrameGetPrice("V", inDaily, 0);
}

if(Period=="Hourly"){
BarsInDay = BarsSince(Minute() != Ref(Minute(), -1));
Bot = TimeFrameGetPrice("L", in5Minute, 0);
Top = TimeFrameGetPrice("H", in5Minute, 0);
Vol = TimeFrameGetPrice("V", in5Minute, 0);
}

if(Period=="Weekly"){
BarsInDay = BarsSince(DayOfWeek() < Ref( DayOfWeek(), -1 ));
Bot = TimeFrameGetPrice("L", inWeekly, 0);
Top = TimeFrameGetPrice("H", inWeekly, 0);
Vol = TimeFrameGetPrice("V", inWeekly, 0);
}

if(Period=="Monthly" ){
BarsInDay = BarsSince(Month() != Ref(Month(), -1));
Bot = TimeFrameGetPrice("L", inMonthly, 0);
Top = TimeFrameGetPrice("H", inMonthly, 0);
Vol = TimeFrameGetPrice("V", inMonthly, 0);
}

CurTop = HHV(H,BarsInDay+1);
Curbot = LLV(L,BarsInDay+1);
Range = Highest(Top-Bot);
TodayRange = Top - Bot;

AveRange = Sum(Top-Bot,30)/30;
LAveRange = AveRange[BarCount-1];

// Initialization
baseX = 0;
baseY = floor(Bot[0]/Den)*Den;
relTodayRange = 0;
firstVisBar = Status("firstvisiblebar");
lastVisBar = Status("lastvisiblebar");

D=.0005;
total=0;
totaldn=0;
totalup=0;
shiftup=0;
shiftdn=0;
startr=0;

for (j=0; j <= 100; j++) {
x[j] = 0;
}

i0 = 0;
i1 = 0;
for (i=0; i<BarCount; i++) {
if (BarsInDay[i] == 0 AND i < firstVisBar) {
i0 = i;
}
if (BarsInDay[i] == 0 AND i >= lastVisBar) {
i1 = i;
}
}

i1 = BarCount-1;
for (i=i0; i<=i1; i++) {
if (BarsInDay[i] == 0) {
baseX = i;
baseY = floor(Bot[i]/Den)*Den;
maxY = floor(Top[i]/Den)*Den;
relTodayRange = (maxY-baseY)/Den;

for (j=0; j <= relTodayRange; j++) {
x[j] = 0;
}
}

range_x=lastVisBar-firstVisBar;
spread = Param("X Space", 80, 1, 200, 1);
tpl = Param("Time Per Letter (mins)", 30, 1, 360, 1);
Intervalmin=Interval()/60;
flt =Param("First Letter (Bars)", 1, 1, 60, 1);
teb=ParamToggle("To Each Bar","No|Yes");
Color=Param("Color Threshold",20,1,50,1);
stopg=0;
stopr=0;
new=0;

Voloumeunit=Vol[i]/LastValue(BarsInDay);


if (EnMP2 == "Letters") {
for (j=0; j<= relTodayRange; j++) {
if (L[i] <= baseY+j*Den AND H[i] >= baseY+j*Den) {
PlotText(StrExtract(" A , B , C , D , E , F , G , H , I , J , K , L , M , N , O , P , Q , R , S , T , U , V , W , X , Y , Z, a , b , c , d , e , f , g , h , i , j , k , L , m , n ,o , p , q , r , s , t , u , v , w , x , y , z ",
IIf(BarsInDay[i]<flt,0,ceil(BarsInDay[i]/(tpl/Intervalmin))-0)), baseX+IIf(teb==1,BarsInDay[i],x[j]*(range_x/spread)), baseY+j*Den,
colorWhite,ColorHSB(10+((ceil(BarsInDay[i]/(tpl/Intervalmin)))*Color),160,140));
x[j]++;

}
}
}

else if (EnMP2 == "Lines" OR EnMP2 == "Solid") {
for (j=0; j<= relTodayRange; j++) {
if (L[i] <= baseY+j*Den AND H[i] >= baseY+j*Den) {
if(Type=="Price Profile"){x[j]=x[j]+1;}
else if(Type=="Volume Profile"){x[j]=x[j]+round(V[i]/Voloumeunit);}

}
}
}

// Draw Initial Balance after 11am bar is complete
if (BarsInDay[i] == IBBars+1 AND EnIB == 0) {
Line1 = LineArray(i-2, curtop[i-1],i+7, curtop[i-1],0,True);
Plot(Line1,"",colorLightGrey,styleLine+styleDashed|styleNoRescale);
Line1 = LineArray(i-2, curbot[i-1],i+7, curbot[i-1],0,True);
Plot(Line1,"",colorLightGrey,styleLine+styleDashed|styleNoRescale);
}

// Examine x[j]
if ((i < BarCount - 1 AND BarsInDay[i+1] == 0) OR i == BarCount-1) {
maxXj = 0;
maxj = 0;
for (j=0; j<= relTodayRange; j++) {
if (maxXj < x[j]) {maxXj = x[j]; maxj = j; StaticVarSet("Maxj",j); new=j;
}
}
for ( n = 1; n <= relTodayRange; n++ ) {
total[n]=x[n]+total[n-1];
}
Value_area=(total[relTodayRange]*percent)/100;

for ( a = 1; a <= relTodayRange; a++ )
{
if(Maxj-a>0 AND Maxj+a<relTodayRange)
{
if(MaxXj+total[Maxj+a]-total[Maxj]+total[Maxj-1]-total[Maxj-(a+1)]>=Value_area) {shiftup=a; shiftdn=a; break;}
}   
else if(Maxj-a<1 )
{
if(MaxXj+total[Maxj+a]-total[Maxj]+total[Maxj-1]>=Value_area){shiftup=a; shiftdn=maxj-1; break;}   
}
else if(Maxj+a>relTodayRange )
{
if(MaxXj+total[relTodayRange]-total[Maxj]+total[Maxj-1]-total[Maxj-(a+1)] >=Value_area){shiftup=relTodayRange-maxj; shiftdn=a; break;}   
}
}

Vah = LineArray(baseX, baseY+(maxj+shiftup)*Den, i, baseY+(maxj+shiftup)*Den,0,True);
Val = LineArray(baseX, baseY+(maxj-shiftdn)*Den, i, baseY+(maxj-shiftdn)*Den,0,True);
poc = LineArray(baseX, baseY+maxj*Den, i, baseY+maxj*Den,0,True);
if(ViewVALVAH==1){Plot(Vah,"",ParamColor("Color_VA", colorLightBlue),styleLine|styleNoRescale);
Plot(Val,"",ParamColor("Color_VA", colorLightBlue),styleLine|styleNoRescale);}
if(ViewPOC==1){Plot(poc,"",Colorpoc,styleLine|styleNoRescale);}
PlotText(""+(baseY+(maxj+shiftup)*Den),i-5,baseY+(maxj+shiftup)*Den,colorWhite);
PlotText(""+(baseY+(maxj-shiftdn)*Den),i-5,baseY+(maxj-shiftdn)*Den,colorWhite);
if(ViewTPOCount==1){PlotText(""+total[maxj-1],basex,bot[i]-(Top[i]-bot[i])*0.05,ParamColor("Color_VAL", colorLavender));
PlotText(""+(total[relTodayRange]-total[maxj]),basex,Top[i],ParamColor("Color_VAH", colorLavender));}



if(ViewPOC==1){PlotText(""+(baseY+maxj*Den),i-5,baseY+maxj*Den,Colorpoc);}
}

if (i < BarCount - 1 AND BarsInDay[i+1] == 0 OR i == BarCount-1) {

for (p = 1; p < relTodayRange+1; p++){
line = LineArray(baseX, baseY+p*Den, baseX+x[p], baseY+p*Den);
line2 = LineArray(baseX, baseY+(p-1)*Den, baseX+x[p-1], baseY+(p-1)*Den);

if (EnMP2 == "Solid")
{
PlotOHLC( Line, Line, Line2, Line2, "",IIf(p>(maxj+shiftup),ParamColor("Color_VAH", colorLavender),IIf(p<=(maxj+shiftup)AND p>(maxj-shiftdn),ParamColor("Color_VA", colorLightBlue),ParamColor("Color_VAL", colorLavender))) ,styleCloud|styleNoRescale|styleNoLabel);
}
if (EnMP2 == "Lines")
{
Plot(line,"",IIf(p>(maxj+shiftup),ParamColor("Color_VAH", colorLavender),IIf(p<=(maxj+shiftup)AND p>(maxj-shiftdn),ParamColor("Color_VA", colorLightBlue),ParamColor("Color_VAL", colorLavender))) , styleLines|styleNoLabel);
}

}
if(Viewfill==1){PlotOHLC(Vah,Vah,Val,Val,"",Colorfill,styleCloud|styleNoRescale|styleNoLabel);}

}
}


_SECTION_END();


выдает ошибку
качал тут
http://day-trader.ucoz.ru/load/programmy/programmy_market_profile/nabor_indikatorov_market_volume_profile_dlja_amibroker/20-1-0-630#comments

вторая формула оказалась с этого сайта)
Посмотреть профиль Отправить личное сообщение
hardcam



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

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

сделал график по формуле с сайта
выглядит так(
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

У меня тоже не работает. Разбираться почему не стану. Очень там много кода... Smile

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


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

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

hardcam писал(а):
сделал график по формуле с сайта
выглядит так(

Очень большая цена индекса по сравнению с TickSize. Поставь TickSize 10 или даже 30

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



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

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

Karlitos писал(а):
PROtest писал(а):

Круто! Большое спасибо! Жаль только, что подтормаживает жутко.

Попробуй этот, он вроде не тормозит.


отлично работает!
что значат цвета профиля?
Посмотреть профиль Отправить личное сообщение
hardcam



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

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

000 писал(а):
hardcam писал(а):
сделал график по формуле с сайта
выглядит так(

Очень большая цена индекса по сравнению с TickSize. Поставь TickSize 10 или даже 30

спасибо!
отлично все.
опять же вопрос)
а цвета что значат?

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen