АвторСообщение



Пост N: 1
Зарегистрирован: 14.02.14
ссылка на сообщение  Отправлено: 14.02.14 12:45. Заголовок: Изменение вида индекатора.


Помогите понять как переделать индикатор фишер1 вобшем переделывать не надо надо просто чтобы фишер1 рисовал вот так ||||||||||||||||||ну конечно это пример просто, так как черточки должны быть разного цвета да это вы и сами знаете я смог сделать чтобы так рисовалось но только относительно нулевой линии то есть синие рисуются вышы нуля а розовые ниже нуля а вот что изменить в коде чтоб и розовые рисовались вышы ноля не как не могу понять ну теперь вот и сам код фишира1 БУДУ ОЧЕНЬ БЛАГОДАРЕН ЗА ПОМОЩЬ!!!

#property copyright "Copyright © 2005, Yura Prokofiev"
#property link "Yura.prokofiev@gmail.com"

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Black
#property indicator_color2 Blue
#property indicator_color3 White

extern int period=10;

double ExtBuffer0[];
double ExtBuffer1[];
double ExtBuffer2[];


int init()
{


SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2,White);
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2,Blue);
SetIndexStyle(2,DRAW_HISTOGRAM);
IndicatorDigits(Digits+1);

SetIndexBuffer(0,ExtBuffer0);
SetIndexBuffer(1,ExtBuffer1);
SetIndexBuffer(2,ExtBuffer2);

IndicatorShortName("Fisher");
SetIndexLabel(1,NULL);
SetIndexLabel(2,NULL);

return(0);
}


int start()
{
//int period=10;
int limit;
int counted_bars=IndicatorCounted();
double prev,current,old;
double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0;
double price;
double MinL=0;
double MaxH=0;


if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;


for(int i=0; i<limit; i++)
{ MaxH = High[Highest(NULL,0,MODE_HIGH,period,i)];
MinL = Low[Lowest(NULL,0,MODE_LOW,period,i)];
price = (High+Low)/2;
Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1;
Value=MathMin(MathMax(Value,-0.999),0.999);
ExtBuffer0=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1;
Value1=Value;
Fish1=ExtBuffer0;

}


bool up=true;
for(i=limit-2; i>=0; i--)
{
current=ExtBuffer0;
prev=ExtBuffer0[i+1];

if (((current<0)&&(prev>0))||(current<0)) up= false;
if (((current>0)&&(prev<0))||(current>0)) up= true;

if(!up)
{
ExtBuffer2=current;
ExtBuffer1=0.0;
}

else
{
ExtBuffer1=current;
ExtBuffer2=0.0;
}
}

return(0);
}

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 1 [только новые]


Сотрудник




Пост N: 137
Зарегистрирован: 01.12.09
Откуда: Украина, Днепропетровск
ссылка на сообщение  Отправлено: 14.02.14 14:07. Заголовок: К сожалению, наши сп..


К сожалению, наши специалисты оказывают помощь только по вопросам, связанным с приложением AutoGraf 4, которому и посвящен этот форум.
Можем посоветовать обратиться к хорошему программисту, Игорю Герасько. Задайте свой вопрос на его форуме: http://scriptong.myqip.ru , возможно там Вы получите ответ.


Спасибо: 1 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 10
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет