MQL4 - automated forex trading   /  

Форум

Вход | Регистрация | Language: ru cn en
Найди в Code Base самую большую коллекцию торговых роботов

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

К списку тем  | 1 2 3 4 5 Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему
avatar
10
Malish 28.04.2008 18:24 #
 

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

Show Must Go On... или очередное возвращение к ZigZag'у
Об одном очевидном и, одновременно, нестандартном методе построения ZigZag'а и о том, что из этого получилось - индикаторе Мультифреймовый Фрактальный ZigZag, отображающем на одном, рабочем, таймфрейме (ТФ) ZigZag'и, построенные на трех старших. В свою очередь, величины старших ТФ могут быть нестандартными, в диапазоне от M5 до MN1.
avatar
3990
avatar
10
Malish 29.04.2008 10:20 #
 
Korey писал (а):

to Malish

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

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

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

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

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

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

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

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

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

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

 
avatar
17
abramov 29.04.2008 11:25 #
 
timbo писал (а):
abramov писал (а):

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

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

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

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

avatar
17
abramov 29.04.2008 11:35 #
 
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 который бы высчитывал так же разницу цены, как в советнике только отмечая это всё в виде линии? Заранее спасибо!

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

 
avatar
3990
Korey 29.04.2008 11:56 #
 

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);
  }
 
avatar
10
Malish 29.04.2008 15:57 #
 

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

avatar
3990
Korey 29.04.2008 16:30 #
 

to Malish

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

 
avatar
3990
Korey 29.04.2008 16:44 #
 

to Malish

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

типа Malish_lines ли же Malish_levels.

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


Прикрепленные файлы:
  percent_levels.mq4  (2.37 KB)
 
avatar
10
Malish 30.04.2008 16:20 #
 
Korey писал (а):

to Malish

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

типа Malish_lines ли же Malish_levels.

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

Привет всем.

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

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

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

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

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

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

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

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

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

С уважением

 
К списку тем   | 1 2 3 4 5  

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий