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



Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN

СообщениеДобавлено: Ср Ноя 07, 2018 3:23 pm Ответить с цитатой Вернуться к началу

Есть хороший индикатор, который красиво рисует зоны по перелому.
Можно изменить код, чтобы эти зоны не исчезали а оставались на истории?

Код:
Title = EncodeColor(colorLavender)+Name()+"   "+Date()+"   "+"Зоны спроса и предложения  ";

SetChartOptions(0,chartShowArrows|chartShowDates);
GfxSetBkMode(0);

_SECTION_BEGIN("Зоны Спроса и Предложения");
ShowZones = ParamToggle ("Зоны спроса и предложения", "Показать|Скрыть", 1);
PrStyle = ParamList ("Стиль графика цены", "Свечи,Бары,СвечиVSA,Линия");
Amount  = Param ("Чувствительность", 1.7, 0.1, 5, 0.1);
Array   = C;
zz0 = Zig (array, amount);
zz1 = Ref (zz0, -1);
zz2 = Ref (zz0, -2);

tr = ValueWhen (zz0 > zz1 AND zz1 < zz2, zz1);
pk = ValueWhen (zz0 < zz1 AND zz1 > zz2, zz1);
PU = tr + 0.01 * abs(tr)*amount;
PD = pk - 0.01 * abs(pk)*amount;

ZZT = IIf (array >= PU AND zz0 > zz1, 1, IIf(array <= PD AND zz0 < zz1, -1, 0));
ZZT = ValueWhen (ZZT != 0, ZZT);

Buy_Valid_ = zzt>0;
Sell_Valid_= zzt<0;
Buy_Valid  = ExRem (Buy_Valid_,  Sell_Valid_);
Sell_Valid = ExRem (Sell_Valid_, Buy_Valid_);

CandleCol =
   IIf (BarsSince(Buy_Valid) < BarsSince(Sell_Valid) AND BarsSince(Buy_Valid) !=0, colorBrightGreen,
   IIf (BarsSince(Buy_Valid) > BarsSince(Sell_Valid) AND BarsSince(Sell_Valid)!=0, colorRed, colorLightBlue));

VSA_Color    = IIf (Buy_valid, colorYellow,  IIf(Sell_valid,colorBrightGreen, Candlecol));
CANDLE_Color = IIf (C==O, colorLightBlue,    IIf (C>O, colorBrightGreen, colorRed));
BAR_Color    = IIf (C==O, colorBlack,         IIf (C>O, colorBlack, colorBlack));

if ( PrStyle == "СвечиVSA")   { PriceStyle=styleCandle|4;  BodyColor = VSA_Color; }
if ( PrStyle == "Свечи")      { PriceStyle=styleCandle|4;  BodyColor = CANDLE_Color; }
if ( PrStyle == "Бары")        { PriceStyle=styleBar|4;     BodyColor = BAR_Color; }
if ( PrStyle == "Линия")       { PriceStyle=styleLine|4;    BodyColor = colorGold; }

SetBarFillColor(BodyColor);
   Plot (C,"Close", BodyColor, PriceStyle|styleNoLabel, Zorder = 2);


// Пики и впадины
pk = BarsSince(Buy_Valid) < BarsSince(Sell_Valid);
tr = BarsSince(Buy_Valid) > BarsSince(Sell_Valid);
Ll = LowestSince (sell_valid,L,1);
hH = HighestSince(Buy_Valid,H,1);
Llm= LowestSince (sell_valid,Min(O,C),1);
hHm= HighestSince(Buy_Valid,Max(O,C),1);

xx = Cum(1);
NoLines = Param("Число зон",3,1,10,1);

// Раскраска зон
Col1 = colorDarkGreen;  Col11 = colorGreen;
Col2 = colorDarkRed;      Col22 = colorRed;

if (ShowZones == 0)
{
for (i = 1; i < NoLines+1 ; i++)
   {

   Factor = Param("Смеситель цветов", 0.5,0.01, 1, 0.01);
   scol   = ColorBlend(Col1,Col11,Factor*(i-1));
   rcol   = ColorBlend(Col2,Col22,Factor*(i-1));

   px1 = LastValue(ValueWhen(Buy_valid,Cum(1),i));
   py1 = LastValue(ValueWhen(Buy_valid,Ll,i));
   pz1 = LineArray(px1, py1, (BarCount-1), py1);

   px1m = LastValue(ValueWhen(Buy_valid,Cum(1),i));
   py1m = LastValue(ValueWhen(Buy_valid,Llm,i));
   pz1m = LineArray(px1m, py1m, (BarCount-1), py1m);
      Plot(pz1m,"",colorPaleGreen,styleDashed|styleNoRescale);
      PlotOHLC(pz1,pz1,pz1m,pz1m,"",scol,styleCloud|styleNoLabel|styleNoRescale,0,0,0,-i-nolines);
   tx1 = LastValue(ValueWhen(sell_valid,Cum(1),i));
   ty1 = LastValue(ValueWhen(sell_valid,Hh,i));
   tz1 = LineArray(tx1, ty1, (BarCount-1), ty1);

   tx1m = LastValue(ValueWhen(sell_valid,Cum(1),i));
   ty1m = LastValue(ValueWhen(sell_valid,Hhm,i));
   tz1m = LineArray(tx1m, ty1m, (BarCount-1), ty1m);
      Plot(tz1m,"",colorPink,styleDashed|styleNoRescale);
      PlotOHLC(tz1,tz1,tz1m,tz1m,"",rcol,styleCloud|styleNoLabel|styleNoRescale,0,0,0,-i-nolines);
   }
} else { }
_SECTION_END();

_________________
Нам не дано знать всего.
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
000
Site Admin


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

СообщениеДобавлено: Ср Ноя 07, 2018 5:15 pm Ответить с цитатой Вернуться к началу

Типа так
Код:

Title = EncodeColor(colorLavender)+Name()+"   "+Date()+"   "+"Зоны спроса и предложения  ";

SetChartOptions(0,chartShowArrows|chartShowDates);
GfxSetBkMode(0);

_SECTION_BEGIN("Зоны Спроса и Предложения");
ShowZones = ParamToggle ("Зоны спроса и предложения", "Показать|Скрыть", 1);
PrStyle = ParamList ("Стиль графика цены", "Свечи,Бары,СвечиVSA,Линия");
Amount  = Param ("Чувствительность", 1.7, 0.1, 5, 0.1);
Array   = C;
zz0 = Zig (array, amount);
zz1 = Ref (zz0, -1);
zz2 = Ref (zz0, -2);

tr = ValueWhen (zz0 > zz1 AND zz1 < zz2, zz1);
pk = ValueWhen (zz0 < zz1 AND zz1 > zz2, zz1);
PU = tr + 0.01 * abs(tr)*amount;
PD = pk - 0.01 * abs(pk)*amount;

ZZT = IIf (array >= PU AND zz0 > zz1, 1, IIf(array <= PD AND zz0 < zz1, -1, 0));
ZZT = ValueWhen (ZZT != 0, ZZT);

Buy_Valid_ = zzt>0;
Sell_Valid_= zzt<0;
Buy_Valid  = ExRem (Buy_Valid_,  Sell_Valid_);
Sell_Valid = ExRem (Sell_Valid_, Buy_Valid_);

CandleCol =
   IIf (BarsSince(Buy_Valid) < BarsSince(Sell_Valid) AND BarsSince(Buy_Valid) !=0, colorBrightGreen,
   IIf (BarsSince(Buy_Valid) > BarsSince(Sell_Valid) AND BarsSince(Sell_Valid)!=0, colorRed, colorLightBlue));

VSA_Color    = IIf (Buy_valid, colorYellow,  IIf(Sell_valid,colorBrightGreen, Candlecol));
CANDLE_Color = IIf (C==O, colorLightBlue,    IIf (C>O, colorBrightGreen, colorRed));
BAR_Color    = IIf (C==O, colorBlack,         IIf (C>O, colorBlack, colorBlack));

if ( PrStyle == "СвечиVSA")   { PriceStyle=styleCandle|4;  BodyColor = VSA_Color; }
if ( PrStyle == "Свечи")      { PriceStyle=styleCandle|4;  BodyColor = CANDLE_Color; }
if ( PrStyle == "Бары")        { PriceStyle=styleBar|4;     BodyColor = BAR_Color; }
if ( PrStyle == "Линия")       { PriceStyle=styleLine|4;    BodyColor = colorGold; }

SetBarFillColor(BodyColor);
   Plot (C,"Close", BodyColor, PriceStyle|styleNoLabel, Zorder = 2);


// Пики и впадины
pk = BarsSince(Buy_Valid) < BarsSince(Sell_Valid);
tr = BarsSince(Buy_Valid) > BarsSince(Sell_Valid);
Ll = LowestSince (sell_valid,L,1);
hH = HighestSince(Buy_Valid,H,1);
Llm= LowestSince (sell_valid,Min(O,C),1);
hHm= HighestSince(Buy_Valid,Max(O,C),1);


NoLines = Param("Число зон",3,1,10,1);

// Раскраска зон
Col1 = colorDarkGreen;  Col11 = colorGreen;
Col2 = colorDarkRed;      Col22 = colorRed;

if (ShowZones == 0)
{
for (i = 1; i < NoLines+1 ; i++)
   {

   Factor = Param("Смеситель цветов", 0.5,0.01, 1, 0.01);
   scol   = ColorBlend(Col1,Col11,Factor*(i-1));
   rcol   = ColorBlend(Col2,Col22,Factor*(i-1));

   py1 = ValueWhen(Buy_valid,Ll,i);
   py1m = ValueWhen(Buy_valid, Llm, i);
      Plot(py1m,"",colorPaleGreen,styleDashed|styleNoRescale);
      PlotOHLC(py1,py1,py1m,py1m,"",scol,styleCloud|styleNoLabel|styleNoRescale|styleStaircase,0,0,0,-i-nolines);
     

   ty1 = ValueWhen(sell_valid,Hh,i);
   ty1m = ValueWhen(sell_valid,Hhm,i);
      Plot(ty1m,"",colorPink,styleDashed|styleNoRescale);
      PlotOHLC(ty1,ty1,ty1m,ty1m,"",rcol,styleCloud|styleNoLabel|styleNoRescale|styleStaircase,0,0,0,-i-nolines);
   }
} else { }


_SECTION_END();

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



Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN

СообщениеДобавлено: Ср Ноя 07, 2018 5:19 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Типа так

Именно так, Благодарю!

_________________
Нам не дано знать всего.
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen