Ищу индикатор фракталов

Harris

Интересующийся
Люди,у кого есть индикатор фракталов цветной?
 

Harris

Интересующийся
Цветной в смысле стрелочки нижнего и верхнего фракталов должны различаться по цвету, неужели не у кого нет?
 

ВладимирР

Чат-Модератор
23:39:43 ЛИС151: //+------------------------------------------------------------------+
//| Ind_VilkaFractals_v1.2.mq4 |
//| Copyright © 2009, Alexey Sleptsov (lekhach) |
//| [email protected] |
//+------------------------------------------------------------------+
// Индикатор работает по стратегии "Вилка Чувашова".
// Версия 1.2:
// 1. Добавлена функция удаления объектов при выгрузке индикатора.
// 2. Удалены лишние строки из кода.
// 3. Переделан alert.
// 4. Добавлен FractalsTrue.
//--------------------------------------------------------------------
#property copyright "lekhach © 2009"
#property link "[email protected]"
//--------------------------------------------------------------------
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_width1 1
#property indicator_width2 1
//---- input parameters
int Lines=0; // Количество видимых/невидимых фрактальных линий
bool FractalsTrue=true; // Вкл/выкл значков фракталов
bool alertTrue=false; // Вкл/выкл сигнала
color LinesColorUp=Blue; // Цвет верхних фрактальных линий
color LinesColorDown=Red; // Цвет нижних фрактальных линий
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//--- my variables
int Up=0;
int BufUp=0;
int Down=0;
int BufDown=0;
double BufPriceUp[100000];
double BufDateUp[100000];
double BufPriceDown[100000];
double BufDateDown[100000];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,217);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexEmptyValue(0,0.0);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,218);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexEmptyValue(1,0.0);
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("Fractals";
SetIndexLabel(0,"FractalsUp";
SetIndexLabel(1,"FractalsDown";
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
for (int j=0; j<100000; j++)
{
ObjectDelete("LineUp"+j);
ObjectDelete("LineDown"+j);
}
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int limit;
//---- Последний посчитанный бар будет пересчитан
if (counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- Основной цикл
for (int i=limit; i>2; i--)
{
if (FractalsTrue==true)
{
ExtMapBuffer1=iFractals(NULL,0,MODE_UPPER,i);
ExtMapBuffer2=iFractals(NULL,0,MODE_LOWER,i);
}
//---- Блок Up-фракталов
if (iFractals(NULL,0,MODE_UPPER,i)!=0)
{
Up++;
BufPriceUp[Up]=iFractals(NULL,0,MODE_UPPER,i);
BufDateUp[Up]=Time;
/*
if (Up>2 && Up-BufUp>1 && BufPriceUp[Up]<BufPriceUp[Up-1] && BufPriceUp[Up-1]<BufPriceUp[Up-2])
{
BufUp=Up;
ObjectCreate("LineUp"+(Up-1),OBJ_TREND,0,BufDateUp[Up-1],BufPriceUp[Up-1],BufDateUp[Up],BufPriceUp[Up]);
ObjectCreate("LineUp"+Up,OBJ_TREND,0,BufDateUp[Up-2],BufPriceUp[Up-2],BufDateUp[Up-1],BufPriceUp[Up-1]);
if (ObjectGetValueByShift("LineUp"+Up,i-1)>ObjectGetValueByShift("LineUp"+(Up-1),i-1))
{
ObjectDelete("LineUp"+Up);
ObjectDelete("LineUp"+(Up-1));
}
else if (alertTrue==true) alert(Symbol(),Period()," Низходящая вилка! ",TimeToStr(Time,TIME_DATE|TIME_SECONDS));
}
ObjectSet("LineUp"+(Up-1),OBJPROP_COLOR,LinesColorUp);
ObjectSet("LineUp"+(Up-1),OBJPROP_WIDTH,2);
ObjectSet("LineUp"+(Up-1),OBJPROP_RAY,True);
ObjectSet("LineUp"+Up,OBJPROP_COLOR,LinesColorUp);
ObjectSet("LineUp"+Up,OBJPROP_WIDTH,2);
ObjectSet("LineUp"+Up,OBJPROP_RAY,True);
if (Up>Lines+1) ObjectDelete("LineUp"+(Up-Lines-1));
*/
}
//---- Блок Down-фракталов
if (iFractals(NULL,0,MODE_LOWER,i)!=0)
{
Down++;
BufPriceDown[Down]=iFractals(NULL,0,MODE_LOWER,i);
BufDateDown[Down]=Time;
/*
if (Down>2 && Down-BufDown>1 && BufPriceDown[Down]>BufPriceDown[Down-1] && BufPriceDown[Down-1]>BufPriceDown[Down-2])
{
BufDown=Down;
ObjectCreate("LineDown"+(Down-1),OBJ_TREND,0,BufDateDown[Down-1],BufPriceDown[Down-1],BufDateDown[Down],BufPriceDown[Down]);
ObjectCreate("LineDown"+Down,OBJ_TREND,0,BufDateDown[Down-2],BufPriceDown[Down-2],BufDateDown[Down-1],BufPriceDown[Down-1]);
if (ObjectGetValueByShift("LineDown"+Down,i-1)<ObjectGetValueByShift("LineDown"+(Down-1),i-1))
{
ObjectDelete("LineDown"+Down);
ObjectDelete("LineDown"+(Down-1));
}
else if (alertTrue==true) alert(Symbol(),Period()," Восходящая вилка! ",TimeToStr(Time,TIME_DATE|TIME_SECONDS));
}
ObjectSet("LineDown"+(Down-1),OBJPROP_COLOR,LinesColorDown);
ObjectSet("LineDown"+(Down-1),OBJPROP_WIDTH,2);
ObjectSet("LineDown"+(Down-1),OBJPROP_RAY,True);
ObjectSet("LineDown"+Down,OBJPROP_COLOR,LinesColorDown);
ObjectSet("LineDown"+Down,OBJPROP_WIDTH,2);
ObjectSet("LineDown"+Down,OBJPROP_RAY,True);
if (Down>Lines+1) ObjectDelete("LineDown"+(Down-Lines-1));
*/
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
23:39:57 ЛИС151: вот код закинь
 
Верх