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

 
evillive:

Каков вопрос, как говорится, таков и ответ. Кто же знает как там прайс считается, да и левел не указан заранее...


Но если price = Bid, то


Да, в примере, price = Bid. Его и сравниваю. Вместо "левел", что-то нужно. Попробую этот вариант.


Только 1 и 2 вместо 0, даст первую или обе цифры после точики, это уже не будет ХХХ.00. С нулем надо пробовать.

? А если уровень не 00, например нужен будет ХХХ.15 или ХХХ.35, как с ним сравнить

Функция

NormalizeDouble(Bid,0))

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

Спасибо.

 
Shum_sp:

Да, в примере, price = Bid. Его и сравниваю. Вместо "левел", что-то нужно. Попробую этот вариант.


Только 1 и 2 вместо 0, даст первую или обе цифры после точики, это уже не будет ХХХ.00. С нулем надо пробовать.

? А если уровень не 00, например нужен будет ХХХ.15 или ХХХ.35, как с ним сравнить

Функция

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

Спасибо.


И Вам спокойной ночи.
 
Shum_sp:

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


Имеется в виду, что очень много прописывать все уровни.

Советник САМ должен определит, что уровень ХХХ.00, пользователь не должен в этом участвовать и указывать уровни, при которых работать.

Я не могу понять, как ему объяснить, что текущая цена ХХХ.00

Спасибо всем.

//+------------------------------------------------------------------+
//|                                                       Ровное.mq4 |
//|                               Copyright 2013, Artyom A. Trishkin |
//|                       https://www.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, Artyom A. Trishkin"
#property link      "https://www.mql5.com/ru/users/artmedia70"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
   double a=140.20;
   double b=-123.32;
//----
   if(MathMod(a,1.0)==0) b=a; 
   Alert("140 = "+b);
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
artmedia70:



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

Благодарю. Кнопочки "спасибо" в углу нет, пришлось флудить.

Ночью переворил посты evillive. Спасибо


С уважением,

 
Shum_sp:

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

Просмотрев все страницы советников, обращаясь к кодам советников на основе отложенных ордеров,

а так же, полистав страницы Форума, перечитав еще раз учебник по MQL и Документацию, я не нашел ответа.

Возможно плохо смотрел. Решил спросить тут.

Пишу советник на основе выставления отложенных ордеров. Ранее, с критерием открытия позиции на основе данных индикатора не было проблем (<,>,= и т.д.).

Но, в настоящий момент, система безиндикаторная. Критерием открытия позиции является ЦЕНА.

А именно, при Биде равном уровню ЦЕНЫ, допустим ХХХ.00 или ХХХ.50 (для йеновых пар), блок критериев говорит, что

есть критерий на покупку (продажу) и отправляет в блок открытия ордеров.

Приблизительный пример на рис. 1, когда уровень фиксирован и задается, например пользователем.

Вопрос в том, как прописать условие, что бы текущий БИД сравнивать с заранее не установленными, но ровными уровнями,

например 140.00, 141.00, 142.00 .... а именно с ХХХ.00

Первая часть условия понятна, например

Во второй части с Level, как быть.

Заранее всем благодарен,

С уважением,


P.S. Если это уже обсуждалось и я проглядел, ткните меня пож.


если я правильно понял вопрос,хождение цены по круглым уровням

для eur/usd

//+------------------------------------------------------------------+
//|                                                        level.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   double level=NormalizeDouble(Bid,2);
   if(Bid == level)
   {
    Alert(" ну вот  Bid равен level ");
   }
   
   
   Alert("level   " ,level);
   Alert("bid   ",Bid);
//----
   return(0);
  }
//+------------------------------------------------------------------+
 

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

#property indicator_chart_window
#property indicator_color1 Aqua
#property indicator_width1 1
#property indicator_color2 Red
#property indicator_width2 1

int otstup = 50;//отступ стрелки от свечи pips
double buy[],sell[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators

   IndicatorBuffers(2);
   SetIndexBuffer(0,buy);
   SetIndexBuffer(1,sell);
   
   SetIndexArrow(0,233);//buy
   SetIndexArrow(1,234);//sell
   
   SetIndexStyle(0,DRAW_ARROW,EMPTY,1,Aqua);
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(1,DRAW_ARROW,EMPTY,1,Red);
   SetIndexEmptyValue(1,0.0);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {

//----
        sell[1]= High[1]+otstup*Point;
    
        buy[1] = Low[1]-otstup*Point;
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
khorosh:

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

Попробуйте
#property indicator_buffers 2
а не 
 IndicatorBuffers(2);
 хотя у меня рисует обе стрелки и так, и эдак
 
pako:


если я правильно понял вопрос,хождение цены по круглым уровням

для eur/usd

Насколько я его понял, ему нужно, чтобы советник сам видел "круглую цену". Например:

140.42 - не то

139.54 - не то

140.00 - нужная цена

139.00 - нужная цена

Т.е., чтобы в дробной части цены были нули. Я ему привёл пример скрипта, но, как я понял, думать некоторым не свойственно...

Тогда так:

if(MathMod(Bid,1.0)==0) Alert("Нашли круглую цену : "+DoubleToStr(Bid,Digits));
 
artmedia70:

Насколько я его понял, ему нужно, чтобы советник сам видел "круглую цену". Например:

140.42 - не то

139.54 - не то

140.00 - нужная цена

139.00 - нужная цена

Т.е., чтобы в дробной части цены были нули. Я ему привёл пример скрипта, но, как я понял, думать некоторым не свойственно...

Тогда так:



Не, он потом подумал и решил что 140.15 или 140.35 тоже круглая цена и могут понадобиться. Клиент ещё не решил что ему надо просто )))
 
evillive:
Не, он потом подумал и решил что 140.15 или 140.35 тоже круглая цена и могут понадобиться. Клиент ещё не решил что ему надо просто )))

Ну... тогда как наконец решит, чего хочет, тогда пусть и думать начинает ...