[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 288

 
FAQ:

Тут такая проблема... Индикаторные буфера работают только в индикаторах. простым переносом кода вы ничего не получите, используйте вызов стандартных и пользовательских индикаторов в коде вашего скрипта. Технические индикаторы вам помогут

АААА!! спасибо!!

Вопрос а как высчитать момент когда две эти пересекались в последний раз?
 
GarKain:
АААА!! спасибо!!

Вопрос а как высчитать момент когда две эти пересекались в последний раз?

Вот, как-то так.

//+------------------------------------------------------------------+
//|                                                        e_RVI.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern int ExtRVIPeriod=10;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
 double RVI_1 = iCustom( NULL,0,"Relativ Vigor Index",ExtRVIPeriod,0,1);
 double RVI_2 = iCustom( NULL,0,"Relativ Vigor Index",ExtRVIPeriod,0,2);
 double RVIS_1= iCustom( NULL,0,"Relativ Vigor Index",ExtRVIPeriod,1,1);
 double RVIS_2= iCustom( NULL,0,"Relativ Vigor Index",ExtRVIPeriod,1,2);
 
 Comment("\n","\n"," RVI:  1 Бар = ",RVI_1,
              "\n"," RVI:  2 Бар = ",RVI_2,
              "\n"," RVIS: 1 Бар = ",RVIS_1,
              "\n"," RVIS: 2 Бар = ",RVIS_2); 
              
   if(RVI_2<RVIS_2&&RVI_1>RVIS_1)    //Biu 
       SetArrow(241,Blue,"Biu"+Time[0],Time[0],Low[0],0);
       
   if(RVI_2>RVIS_2&&RVI_1<RVIS_1)    //Sell
       SetArrow(242,Red,"Sell"+Time[0],Time[0],High[0],0);       
//----
   return(0);
  }
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 12.10.2007                                                     |
//|  Описание : Установка значка на графике, объект OBJ_ARROW.                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    cd - код значка                                                         |
//|    cl - цвет значка                                                        |
//|    nm - наименование               ("" - время открытия текущего бара)     |
//|    t1 - время открытия бара        (0  - текущий бар)                      |
//|    p1 - ценовой уровень            (0  - Bid)                              |
//|    sz - размер значка              (0  - по умолчанию)                     |
//+----------------------------------------------------------------------------+
void SetArrow(int cd, color cl,
              string nm="", datetime t1=0, double p1=0, int sz=0) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (t1<=0) t1=Time[0];
  if (p1<=0) p1=Bid;
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_ARROW, 0, 0,0);
  ObjectSet(nm, OBJPROP_TIME1    , t1);
  ObjectSet(nm, OBJPROP_PRICE1   , p1);
  ObjectSet(nm, OBJPROP_ARROWCODE, cd);
  ObjectSet(nm, OBJPROP_COLOR    , cl);
  ObjectSet(nm, OBJPROP_WIDTH    , sz);
}
 

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

Господа трейдеры, в одном из постов, на форуме я подсмотрел интересный “индюк”

Там, если не ошибаюсь, на 5м графике фоном виднелись силуэт часовых свечей. То есть было наглядно видно, как цена изменялась в течении часа.

Плизззз, сбросьте если не трудно(igrok081@mail.ru) или подскажите где скачать, ну или наконец хоть название.

Заранее благодарю.

Александр.

 
r772ra:

Вот, как-то так.

*стыдно* я конешно ничего не понял из кода. НО, извините на привередливость, я хотел узнать как высчитать момент когда две эти пересекались В ПОСЛЕНИЙ РАЗ? то есть последний момент когда подобное происходило. Может быть код правильный и он начинает считать только после того как его запустили. если так то как можно сделать что бы он проверил было когда подобное было до запуска скрипта?


объясните чайнику где заварка. как это сделать самому?



немного понял но все равно хочу узнать. как можно сделать что бы он проверил было когда подобное было до запуска скрипта? и какая в этот момент была цена.

 
GarKain:


объясните чайнику где заварка. как это сделать самому?


Читайте здесь:

https://book.mql4.com/ru/samples/indicators

И здесь:

https://book.mql4.com/ru/samples/shared

 
Спасибо за инфу.

вопрос не снят. как можно сделать что бы он проверил было когда за последнее время пересекались эти линии? и какая в этот момент была цена.


В общем-то чего я хочу добиться:

мне нужно что бы скрипт нашел последнее пересечение на графике и вычел цену на момент пересечения из текущей цены.

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

узнать на каком баре было пересечение, а потом найти время этого бара = время пересечения

вычислить точную цену пересечения вы можете, но найти какая была при этом цена инструмента невозможно, маскимум что вы можете знать это номер бара, и соответственно его hight low open close

 
FAQ:

узнать на каком баре было пересечение, а потом найти время этого бара = время пересечения

вычислить точную цену пересечения вы можете, но найти какая была при этом цена инструмента невозможно, маскимум что вы можете знать это номер бара, и соответственно его hight low open close

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