Пожалуйста помогите написать индикатор! - страница 3

 

Привет всем. Ау-у-у!

 

to Malish

Берете инструмент Фибо. Удаляете все что не нужно, ставите свои уровни)))

 
Korey:

to Malish

Берете инструмент Фибо. Удаляете все что не нужно, ставите свои уровни)))

Доброго времени суток.

Спасибо за ответ.

Сейчас именно так и поступаю. Происходит это так (на прошлом примере): в фибо оставлены уровни 0; 0,4; 0,6 и 1%.

Уровень "0" поставил на на 1,9676. Потом запускаю программу в Excel, где забиты формулы для расчетов, ставлю значение 1,9676, получаю значение для уровня "1%" равным 1,9873, перехожу в МТ, ставлю на это значение второй уровень и затем уже визуально контролирую процесс на графике.

Получается достаточно нудно. А когда нужно просмотреть уровни от нескольких экстремумов - вообще тоска.

Поэтому и хочется иметь уже готовый инструмент. В МТ смотрел через редактор - нет программы Фибо, видимо прошита в теле.

Что-же, видимо будем мучаться и дальше по старинке.

Еще раз спасибо за ответ. Хоть душу отвел.

Пока всем и удачи.

 
timbo:
abramov:

Большое спасибо за код, но я не пойму гуда его вписывать: в пустой пользовательский индикатор? Или куда? Я брал и полностью копировал его в пустой пользовательский индикатор, компиляция прошла удачно, но индикатор вообще не чего не выдаёт не линий не данных не чего! Пожалуйста подскажите куда его скопировать! Заранее спасибо!

P.S. Я не очень разбираюсь в програмирование MQL4.

Это советник. Т.е. его в пустой советник и вешать на нужный график. В закладке Experts он буде печатать, если тик больше одного пункта.

Большое спасибо за подсказку!

 
xeon:
abramov:
Очень может быть что я получаю обрывочные куски, но у меня ДЦ Алпари и ADSL 2+, но старый комп и последняя версия терминала, как насчёт того что когда меняют процентные ставки цена может махом скакануть чуть ли не на 50 пунктов: 100,02 100,52 следующим же приходом, а не на 100,02 100,03 100,04 100,05 и т.д. до 100,52 причём бывает 1 тик быстрее секунды стабильно в течении часа на GBP/JPY 'VSI' . Возможно вы и правы про обрывочные куски, подскажите как проверить нормально ли у меня всё с ДЦ и/или интернет провайдером?

вот этим можете проверить свои тики

double OldBid,NewBid;
int start(){
//----
   OldBid=NewBid;
   NewBid=Bid;
   double HOLE=NormalizeDouble(NewBid-OldBid,Digits);
   if(MathAbs(HOLE)>Point){Print("Более 1 пункта  OLD= ",OldBid," NEW= ",NewBid," HOLE= ",HOLE," TIME SRV= ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS));}
//----
   return(0);
  }

Большое спасибо за код! Данный советник я назвал в своём MT4 в вашу честь "Xeon". Возможно ли создать не советник, а индикатор по типу тикового графика http://www.alpari.ru/ru/articles_mql4/18.html который бы высчитывал так же разницу цены, как в советнике только отмечая это всё в виде линии? Заранее спасибо!

Большое спасибо за код!

 

to Malish
Держите.
Поскольку Вы не описали алгоритм, поэтому так.
Это скрипт, который берет цену CLOSE того бара на котором стоит вертикальная линия StartML
Если это нулевой бар то последняя пришедшая цена.
Скрипт размещается в папке scripts, компилируется, далее запускается вручную по необходимости.
При первом старте появляется вертикальная линия StartML.
Меняете положение вертикальной линии, и запускаете еще раз.

НЕМОГУ ПРИКРЕПИТЬ ФАЙЛ - дает ошибка на странице, берите отсюда

#property copyright "Aleksandr Pak, Almaty"
#property link      "ekr-ap@mail.ru"

//#property indicator_chart_window


extern int control_level=6;
extern color col_up=Lime;
extern color col_down=Blue;
extern double percent_lev1=0.4;
extern double percent_lev2=0.6;
extern double percent_lev3=0.8;
extern double percent_lev4=1;
extern double percent_lev5=1.2;
extern double percent_lev6=1.4;

int contr_level;
double lev[10];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
      
      contr_level=2*control_level+1;
      
      for(int i=1;i<contr_level;i++) 
         {  
            ObjectCreate(StringConcatenate
            ("ML",DoubleToStr(i,0)),OBJ_TREND,0,Time[10],Close[1],Time[1],Close[1]);
         }
      
      lev[1]=percent_lev1/100.;
      lev[2]=percent_lev2/100.;
      lev[3]=percent_lev3/100.;
      lev[4]=percent_lev4/100.;
      lev[5]=percent_lev5/100.;
      lev[6]=percent_lev6/100.;
      if(ObjectFind("StartML")<0) ObjectCreate("StartML",OBJ_VLINE,0,Time[10],0);
      
   return(0);
  }

int deinit()
  {
   return(0);
  }

int start()
  {
   //int    counted_bars=IndicatorCounted();
//----
   
   double   ts=ObjectGet("StartML",OBJPROP_TIME1);
   double   t=ts-5*60*Period();
   double   t2=t+15*60*Period();
   int      b=iBarShift(NULL,0,ts ,FALSE);
   double   p= Close[b];
   
   for (int i=1; i<control_level+1;i++)
   {        string n= StringConcatenate ("ML",DoubleToStr(i,0));               
            double pl=p+p*lev[i];
            ObjectSet(n,OBJPROP_COLOR,col_up);         
            ObjectSet(n,OBJPROP_TIME1,t);
            ObjectSet(n,OBJPROP_PRICE1,pl);
            ObjectSet(n,OBJPROP_TIME2,t2);
            ObjectSet(n,OBJPROP_PRICE2,pl);
            n= StringConcatenate ("ML",DoubleToStr(i+control_level,0));
            pl=p-p*lev[i];
            ObjectSet(n,OBJPROP_COLOR,col_down);
            ObjectSet(n,OBJPROP_TIME1,t);
            ObjectSet(n,OBJPROP_PRICE1,pl);
            ObjectSet(n,OBJPROP_TIME2,t2);
            ObjectSet(n,OBJPROP_PRICE2,pl);
    }  
   return(0);
  }
 

Александр, большое спасибо. Скачал, буду разбираться.

 

to Malish

уже в CodeBase выложил, модератора ждет под именем Percent_Levels.

 

to Malish

Что то только сейчас подумал, если это идея чисто ваша, то нужно было бы назвать

типа Malish_lines ли же Malish_levels.

Ответьте, а я пока публикацию скрипта приторможу

Файлы:
 
Korey:

to Malish

Что то только сейчас подумал, если это идея чисто ваша, то нужно было бы назвать

типа Malish_lines ли же Malish_levels.

Ответьте, а я пока публикацию скрипта приторможу

Привет всем.

Александр - респект. Жителю Алма-Аты - особенно. Сам некоторое время жил там, ул. Курмангазы.

Публиковать - можно, секретов нет.

Название - дело автора. Идея - так себе, еще нужно понять как ее применять, и стоит ли вообще овчинка выделки.

Скрипт попробовал - пока есть сложности:

1) отсчет уровней надо вести от хая (или лоя), т.е. экстремального значения.

2) значения уровней забиты в листинге проги, нет возможности оперативного изменения в зависимости от пары.

Я приводил в пример имеющийся в МТ-4 графический инструмент Fibo.

Оптимально - нужен практически подобный вариант, со всеми возможностями по выставлению уровней и выбору цвета и т.д.

Существенная разница одна - передвигаем по графику только значение "0".

С уважением