Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 962

 
Artyom Trishkin:

Компилятор не ругается, а предупреждает, что вы в int пытаетесь засунуть double.


Замечательная гифка в тему - повеселили, спасибо.

 
Alexey Viktorov:

Попробуйте ещё DRAW_COLOR_CANDLES

Спасибо, попробую.
 
Alexey Viktorov:

Попробуйте ещё DRAW_COLOR_CANDLES

У DRAW_COLOR_CANDLES не меняется ширина, хотя в примере документаций присутствует (#property indicator_width1  1). Поэтому накладка одну свечу на другую не получится.

 
Nauris Zukas:

У DRAW_COLOR_CANDLES не меняется ширина, хотя в примере документаций присутствует (#property indicator_width1  1). Поэтому накладка одну свечу на другую не получится.

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

 
Alexey Viktorov:

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

"...ширину баров в пикселях посчитать..." как-то не особо понял как  это делается.

 
Nauris Zukas:

"...ширину баров в пикселях посчитать..." как-то не особо понял как  это делается.

В общем, было-бы желание, надо проверять что получится. За ненадобностью я не проверял...

Масштаб

Режим указания масштаба в пунктах на бар


Ширина графика в пикселях / Ширина графика в барах Возможно это не сработает когда установлен отступ от правого края графика.

 
Alexey Viktorov:

В общем, было-бы желание, надо проверять что получится. За ненадобностью я не проверял...

Масштаб

Режим указания масштаба в пунктах на бар


Ширина графика в пикселях / Ширина графика в барах Возможно это не сработает когда установлен отступ от правого края графика.

Спасибо.

 
Подскажите люди добрые... 
Столкнулся с такой бякой в тестере.
При попытке поставить фильтр на вхождение в рынок по уровню спреда. Тестер его (спред) игнорирует.
Но игнорирует, только с последних 6 мес. 5 (последних) месяцев тестирует нормально, фильтрует.
Я где то читал, что тестер как то по своему учитывает спред и делает невозможным фильтрацию по нему,
но сбивает с толку то, что за 5 мес. он всё-таки его учитывает и вполне дружелюбно обслуживает...
Скрин прилагаю.
Вопрос вот в чём. 
Это особенность тестера? или у него есть настройки о которых я не знаю?
Или быть может это условие нужно задавать как то программно?

Фильтр для тестирования я написал так...     

void OnTick()
  { 
  double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK); 
  double bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
  double spread=ask-bid; 
  
  if (PositionsTotal()>=1) 
  return;
  {
  int spread_points=(int)MathRound(spread/SymbolInfoDouble(Symbol(),SYMBOL_POINT)); 
  if (spread_points<=5)
  {
  trade.Buy(0.1,_Symbol,ask,bid-300*_Point,bid+300*_Point);
  }
  }
  }

Ну... как умел, так и написал)

Файлы:
 
vladzeit:
Подскажите люди добрые... 
Столкнулся с такой бякой в тестере.
При попытке поставить фильтр на вхождение в рынок по уровню спреда. Тестер его (спред) игнорирует.
Но игнорирует, только с последних 6 мес. 5 месяцев тестирует нормально, фильтрует.
Я где то читал, что тестер как то по своему учитывает спред и делает невозможным фильтрацию по нему,
но сбивает с толку то, что за 5 мес. он всё-таки его учитывает и вполне дружелюбно обслуживает...
Скрин прилагаю.
Вопрос вот в чём. 
Это особенность тестера? или у него есть настройки о которых я не знаю?
Или быть может это условие нужно задавать как то программно?

Фильтр для тестирования я написал так...     

Ну... как умел, так и написал)

Тестируйте в режиме "Каждый тик на основе реальных тиков":

//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   double ask  = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
   double bid  = SymbolInfoDouble(Symbol(),SYMBOL_BID);
   long spread = SymbolInfoInteger(Symbol(),SYMBOL_SPREAD);

   if(ask==0.0 || bid==0.0 || spread=0)
      return;

   if(PositionsTotal()>0)
      return;

   if(spread_points<=InpSpread)
     {
      trade.Buy(0.1,Symbol(),ask,ask-300*Point(),ask+300*Point());
     }
  }

InpSpread - входной long параметр.

 
Vladimir Karputov:

Тестируйте в режиме "Каждый тик на основе реальных тиков":

InpSpread - входной long параметр.

Спасибо Vladimir, входной long поставил. 

input long  InpSpread =5;
spread=0 //поправил, на == это ведь сравнение?
if(spread_points<=InpSpread) // поправил на spread

Всё работает, но всё равно фильтрует спред только за 5 мес.  "Каждый тик на основе реальных тиков" соблюдаю. 

Может дело в котировках MetaQuotes, сейчас попробую другие. 

Причина обращения: