Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 195

 

Здравствуйте!

Прошу помощи у профессионалов.

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

Суть индюка до боли проста - смотрит хай и лоу предыдущей свечи - прибавляет к хаю 50 пунктов, и минус 50 от лоу.

Спасибо.

Файлы:
help.mq4  1 kb
 
Zhunko:
Библиотека. Там всё есть для этого. Разделы 4.3 и 4.6.


Вадим: анекдот.

Зоотехник шприцем осеменяет коров и уходит. Красавица ждет у выхода и спрашивает: а поцеловать?

 
neon51r:

Здравствуйте!

Прошу помощи у профессионалов.

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

Суть индюка до боли проста - смотрит хай и лоу предыдущей свечи - прибавляет к хаю 50 пунктов, и минус 50 от лоу.

Спасибо.



Это из учебника.

//--------------------------------------------------------------------
// userindicator.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
#property indicator_chart_window    // Индик. рисуется в основном окне
#property indicator_buffers 2       // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_color2 Red      // Цвет второй линии
 
double Buf_0[],Buf_1[];             // Объявление массивов (под буферы индикатора)
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   SetIndexBuffer(1,Buf_1);         // Назначение массива буферу
   SetIndexStyle (1,DRAW_LINE,STYLE_DOT,1);// Стиль линии
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
   int i,                           // Индекс бара
       Counted_bars;                // Количество просчитанных баров 
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Buf_0[i]=High[i]+50*Point;             // Значение 0 буфера на i-ом баре
      Buf_1[i]=Low[i]-50*Point;              // Значение 1 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//---------------------------------------------------------------------
 

помогите с синтаксисом

int k=OrdersTotal();

//+--установка ордеров если нет ни одного ордера
if (k==0) {OrderSend(Symbol(),OP_BUYSTOP,v,PriceBs+Tp*Point,0,Sl,PriceBs+2*Tp*Point,NULL,mn,0,Red);

OrderSend(Symbol(),OP_SELLSTOP,v,PriceSs-Tp*Point,0,Sl,PriceSs-2*Tp*Point,NULL,mn,0,Gold) ; }


поставятся оба ордера или один?

нужно чтоб сов поставил два отложенных ордера если ордеров нет

 
sdm:

...

поставятся оба ордера или один?



Будет 0, 1 или 2 ордера.
 
neon51r:

Здравствуйте!

Прошу помощи у профессионалов.

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

Суть индюка до боли проста - смотрит хай и лоу предыдущей свечи - прибавляет к хаю 50 пунктов, и минус 50 от лоу.

Спасибо.


Как новая свеча будет, так само и перерисуется.

 
Integer:

Будет 0, 1 или 2 ордера.

нужно чтоб когда нет ордеров он поставил оба ордера

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

 
sdm:

нужно чтоб когда нет ордеров он поставил оба ордера

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


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

int x=0, a=0, b=0

if (x==0) {

}

что написать в скобках чтоб a приняло значение 1 и b приняло значение 1 ?

 
sdm:

int x=0, a=0, b=0

if (x==0) {

}

что написать в скобках чтоб a приняло значение 1 и b приняло значение 1 ?


Проще всего написать {а=1; б=1}, но можете изобрести какую-нибудь красивую многостраничную формулу по их вычислению если очень хочется.
Причина обращения: