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

 

(предыдущая часть тут)


Здравствуйте! Подскажите функцию на mql4, которая среди нескольких открытых поз бай, начиная с самой низкой цены, отсчитывает заданное количество лотов ( сумма) и на выходе выдает цену, ниже которой находится данное количество лотов. Ордера рыночные. И то же самое, но для селл. 

Уточню- все ордера с разным количеством лотов. Функция суммирует ордера по возрастанию OrderOpenPrice, до тех пор пока условие" сумма лотов <=сумма" верное. 

 
pechenuga:

(предыдущая часть тут)


Здравствуйте! Подскажите функцию на mql4, которая среди нескольких открытых поз бай, начиная с самой низкой цены, отсчитывает заданное количество лотов ( сумма) и на выходе выдает цену, ниже которой находится данное количество лотов. Ордера рыночные. И то же самое, но для селл. 

Уточню- все ордера с разным количеством лотов. Функция суммирует ордера по возрастанию OrderOpenPrice, до тех пор пока условие" сумма лотов <=сумма" верное. 


Что должна возвращать функция, общее количество лотов, разницу между общим и заданным количеством лотов или false --true в зависимости от того больше или меньше фактическое значение, чем заданное?

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

 

все...мой котелок закипел.... 

если из этого кода убрать проверку на СРЕДНИЕ - то линии начинают четко рисоваться.

если вернуть как есть...советник НИЧЕГО не рисует ВООБЩЕ!  

 

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

компилятор ошибок не показывает 

Ma_1=iMA(NULL,PERIOD_H1,30,0,MODE_SMA,PRICE_CLOSE,1) ; 
Ma_2=iMA(NULL,PERIOD_H1,60,0,MODE_SMA,PRICE_CLOSE,1);

if ( Hour()>=10 && Hour()<20) 
   {  
      if 
        ( Ma_1>Ma_2)         
              
 { SetVLine(Blue, "", 0, 0, 1);} 

}
 
Подскажите какой  из советников лучше использовать для визуализации торговли. Опять же желательно чтобы можно было использовать одновременно разные ТФ. Спасибо!
 
lottamer:

все...мой котелок закипел.... 

если из этого кода убрать проверку на СРЕДНИЕ - то линии начинают четко рисоваться.

если вернуть как есть...советник НИЧЕГО не рисует ВООБЩЕ!  

 

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

компилятор ошибок не показывает 


Покажите SetVLine();
 
rigonich:

Покажите SetVLine();

//==========================
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 02.07.2008                                                     |
//|  Описание : Установка объекта OBJ_VLINE вертикальная линия                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    cl - цвет линии                                                         |
//|    nm - наименование               ("" - время открытия текущего бара)     |
//|    t1 - время                      (0  - время открытия текущего бара)     |
//|    st - стиль линии                (0  - простая линия)                    |
//|    wd - ширина линии               (1  - по умолчанию)                     |
//+----------------------------------------------------------------------------+
void SetVLine(color cl, string nm="", datetime t1=0, int st=0, int wd=1) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (t1<=0) t1=Time[0];
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_VLINE, 0, 0,0);
  ObjectSet(nm, OBJPROP_TIME1, t1);
  ObjectSet(nm, OBJPROP_COLOR, cl);
  ObjectSet(nm, OBJPROP_STYLE, st);
  ObjectSet(nm, OBJPROP_WIDTH, wd);
}
 
rigonich:


Что должна возвращать функция, общее количество лотов, разницу между общим и заданным количеством лотов или false --true в зависимости от того больше или меньше фактическое значение, чем заданное?

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

Функция должна возвращать цену, ниже которой находятся ордера с нужным мне количеством лотов. Т.е как только количество лотов становится больше "сумма", функция возвращает цену этого последнего ордера
 
lottamer:

Ma_1=iMA(NULL,PERIOD_H1,30,0,MODE_SMA,PRICE_CLOSE,1) ; 
Ma_2=iMA(NULL,PERIOD_H1,60,0,MODE_SMA,PRICE_CLOSE,1);
if(TimeHour(iTime(Symbol(),0,0))>10&&TimeHour(iTime(Symbol(),0,0))<20)
   {
   if(Ma_1>Ma_2)SetVLine(Blue, "", 0, 0, 1);
}  
 
rigonich:



ваш код не работает!!! :)))))))))))))))) линии не рисуются

и время тут совсем ни при чем. Время верно дано. я выводил его на print... 

А если вместо сравнения на средние, поставить сравнение на стохастики - все четко прорисовывается.

 

 

Stoch_1=iStochastic(NULL,PERIOD_M5,5,3,3,MODE_SMA,0,MODE_MAIN,1); 
Stoch_2=iStochastic(NULL,PERIOD_M5,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);


if ( Hour()>=10 && Hour()<20)  
// if ( Ma_1>Ma_2)          // убрал средние
//    {
                      
         if (Stoch_1>Stoch_2)
 { SetVLine(Blue, "", 0, 0, 1);}   
 

похоже rigonich тоже закипел :)))) 

для пущей уверенности скопировал все составляющие из другого, РАБОТАЮЩЕГО советника...

НЕ РИСУЕТ!

поменял "рисовать" на "купить-продать".

НЕ РАБОТАЕТ!

 

похоже МАГИЧЕСКИЙ ПИПЕЦ!  

 

вывел средние на печать обе показывают 134 , при том что период их различается в 20 (!) раз!

 
lottamer:

похоже rigonich тоже закипел :)))) 

для пущей уверенности скопировал все составляющие из другого, РАБОТАЮЩЕГО советника...

НЕ РИСУЕТ!

поменял "рисовать" на "купить-продать".

НЕ РАБОТАЕТ!

 

похоже МАГИЧЕСКИЙ ПИПЕЦ!  


А где вы проверяете, на демке или в тестере?
Причина обращения: