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

 
mr_Johns:

if((b_mod) && (priceB > Ask)) OrderModify(b_ticket,priceB,priceS,0,0,Brown);
if((s_mod) && (priceS < Bid)) OrderModify(s_ticket,priceS,priceB,0,0,Brown);


 Здесь надо учитывать стоплевел  MarketInfo(Symbol(),MODE_STOPLEVEL) т.е. 

 priceB >= Ask+ MarketInfo(Symbol(),MODE_STOPLEVEL)*Point

 priceS < =Bid- MarketInfo(Symbol(),MODE_STOPLEVEL)*Point




Нет. Этот вопрос выше уже решили. Просто функция при тесте на каждом тике работала, и новая цена не получалась так быстро. Вот когда цена не менялась, то ошибка выскакивала.
 
hoz:

 Ну так если в функцию типа double или int передать элементы, то она тоже может проделать те же операции, тока уже без извращений. Зачем усложнять жизнь?

 

Если у функции есть тип, то подразумевается, что функция возвращает значение этого типа.

 

int test() {
  int res;
  
  // какие-то действия
  
  return(res);
}

 

Ваша же функция не возвращает ничего. 

 
hoz:

Нет. Этот вопрос выше уже решили. Просто функция при тесте на каждом тике работала, и новая цена не получалась так быстро. Вот когда цена не менялась, то ошибка выскакивала.

Что значит нет? если условие

priceB >= Ask+ MarketInfo(Symbol(),MODE_STOPLEVEL)*Point

не будет выполнено, а   priceB >Ask (как в коде)

получите ошибку. 

Для того чтобы не модифицировать ордер, когда цена не успела измениться надо вводить условие  priceB!=OrderOpenPrice() 

 
MikeM:
Я бы написал Hour()>=18, а минуты вообще выбросил.
И это правильно. Я использовал функцию для других целей и механически перенес сюда.
//---не давать коду советника работать в пятницу с 18-00 по серверному времени 
   if(DayOfWeek()==5 && Hour()>=18){
      
      return(0);  
   } 
 
подскажите пожалуйста, можно ли написать индикатор в котором линии будут рисоваться в одном таймфрйме, а данные для его прорисовки будут браться с другого таймфрейма? цель: визуализировать перерисовку последнего бара. как это сделать? 
 
lottamer:
подскажите пожалуйста, можно ли написать индикатор в котором линии будут рисоваться в одном таймфрйме, а данные для его прорисовки будут браться с другого таймфрейма? цель: визуализировать перерисовку последнего бара. как это сделать? 

Элементарно Ватсон...  В каждом случае вместо Period() используйте скажем PERIOD_M15 (тот таймфрейм откуда хотите взять данные)... А сам индикатор ставите на текущий график. Т.е. принудительно укажите тот период откуда берете данные.
 
Sepulca:

Элементарно Ватсон...  В каждом случае вместо Period() используйте скажем PERIOD_M15 (тот таймфрейм откуда хотите взять данные)... А сам индикатор ставите на текущий график. Т.е. принудительно укажите тот период откуда берете данные.


это было бы просто, если бы я писал советник.

но тут индикатор. я их раньше еще не писал.

рассмотрел для примера стандартный стохастик. Почитал УЧЕБНИК по индикаторам.

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

отсюда и возник мой вопрос.... 

 
lottamer:


это было бы просто, если бы я писал советник.

но тут индикатор. я их раньше еще не писал.

рассмотрел для примера стандартный стохастик. Почитал УЧЕБНИК по индикаторам.

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

отсюда и возник мой вопрос.... 


В стандартном стохастике:

double iStochastic(    string symbol,  int timeframe, int %Kperiod, int %Dperiod, int slowing, int method, int price_field, int mode, int shift) 

Если пишите свой уникальный индикатор вместо Bars используйте int iBars(    string symbol, int timeframe) 

https://docs.mql4.com/ru/series/iBars 

 
Sepulca:


В стандартном стохастике:

double iStochastic(    string symbol,  int timeframe, int %Kperiod, int %Dperiod, int slowing, int method, int price_field, int mode, int shift) 

Если пишите свой уникальный индикатор вместо Bars используйте int iBars(    string symbol, int timeframe) 

https://docs.mql4.com/ru/series/iBars 

 


казалось проблема легко решена.

заменил все  Bars  на iBars  (через  int iB;   iB=iBars("EUROUSD",PERIOD_M5);)  ошибок нет.

но и графика нет.  появляется пустое окно.

явно чего-то не хватает.

А вообще может ли индикатор на одном баре нарисовать 12 линий? ибо в 1 часу 12 пятиминуток и каждая нарисует свою линию.

 
lottamer:


казалось проблема легко решена.

заменил все  Bars  на iBars  (через  int iB;   iB=iBars("EUROUSD",PERIOD_M5);)  ошибок нет.

но и графика нет.  появляется пустое окно.

явно чего-то не хватает.

А вообще может ли индикатор на одном баре нарисовать 12 линий? ибо в 1 часу 12 пятиминуток и каждая нарисует свою линию.


Тоже самое относится и Close - iClose, Open - iOpen, Time - iTime Volume - iVolume  и т.д.

А индикатор может рисовать до 8 линий от 0 до 7 https://docs.mql4.com/ru/customind/indicatorbuffers 

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