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

 
В архиве два индикатора и советник над которым работаю(test-cifr).Индикаторы сами по себе пашут,а в советник вставить не могу((.Цель советника только вывод значений.Помогите пожалуйста понять почему не вставляется и как вставить
Файлы:
 
Cпасибо и вам здравия желаю artmedia70
 
palomnik:
Cпасибо и вам здравия желаю artmedia70
Ну да... здоровье: оно - ресурс не возобновляемый. Спасибо :)
 
ed3sss:

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

Как можно вывести на графике надпись по текущему инструменту Прибыль/убыток открытых ордеров.

Сложно осуществлять проверку в эксперте, открывал ли он позиции или нет (включение/выключение терминала) и чтобы подхватывал последний объем лота до закрытия терминала.

Спасибо.


Драсти, нет знающих??
 

Если прошедших сделок то через функцию orderprofit и дальше суммировать всю историю сделок.А так в окне торговли вроде есть все.

Интересно ,а по моему вопросу есть у кого ответы? 

 
artmedia70:

В том коде есть один недочёт. Вот, выдернул из контекста:


Все дело в том, что выражение

Следовательно и значение лота округлится до одного знака после запятой.


Хотя, почитайте, мож поможет.



Очень надеюсь на это. Благодарю. Проштудирую указанную ветку, для закрепления данного момента. Не хочется оставлять пробелы.
 
ed3sss:

Драсти, нет знающих??


Ну как я понимаю всё элементарно. Достаточно элементарных знаний.

1. Делаете перебор ордеров.

2. Проверяете ордер открыт, т.е. время закрытия ордера отноительно нуля.

 3. Если ордер открыт выводите его данные нужны, прибыль, тип, и тд.. 

 
palomnik:

Если прошедших сделок то через функцию orderprofit и дальше суммировать всю историю сделок.А так в окне торговли вроде есть все.

Интересно ,а по моему вопросу есть у кого ответы? 

Копируй весь код в советник 

как-то так 

//+------------------------------------------------------------------+
//|                                                        Xrust.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


extern int    TimeFrame=0;//Если=0, то текуший
extern string FrApNam="Ap";//Имя линии соотв.Фракталу вверх
extern string FrDnNam="Dn";//Имя линии соотв.Фракталу вниз
extern color  ClAp=Blue;//Цвет линии соотв.Фракталу вверх
extern color  ClDn=Red;//Цвет линии соотв.Фракталу вниз
//-----------------------------------------------------------------------------+
double FrApPrise,FrDnPrise;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
  if(TimeFrame==0){TimeFrame=Period();}
  IndicatorShortName("Factal_Level_Xrust"+TimeFrame);
  FrApNam=StringConcatenate(FrApNam,TimeFrame);
  FrDnNam=StringConcatenate(FrDnNam,TimeFrame); 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
  ObjectDelete(FrDnNam);
  ObjectDelete(FrApNam);
  Comment(" ");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   LineAp();
   LineDn();
   
   int diap=MathRound((FrApPrise-FrDnPrise)/Point);
   
   Comment("\n"," LineDn  = ",FrDnPrise,
           "\n", " LineAp  = ",FrApPrise,
           "\n"," diap  = ",diap );

//----
   return(0);
  }
//+------------------------------------------------------------------+
//-----------------------------------------------------------------------------+
// Ищет горизонтальную линию по имени перерисовывает если изменилась цена      |   
//-----------------------------------------------------------------------------+
   void  LineDn(){
   FrDnPrise=0;
   double  FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS));
   FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
   //Comment(FrPrise);
   if(ObjectFind(FrDnNam)==0){
     if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}}
   FrDnPrise=FrPrise;  
   ObjectDelete(FrDnNam);
   SetHLine(ClDn,FrDnNam,FrDnPrise,0,1);
   WindowRedraw();
   return;} 
//-----------------------------------------------------------------------------+
// Ищет горизонтальную линию по имени перерисовывает если изменилась цена      | 
//-----------------------------------------------------------------------------+
   void  LineAp(){
   FrApPrise=0;
   double FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS));
   FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
   if(ObjectFind(FrApNam)==0){
     if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}}
   FrApPrise=FrPrise; 
   ObjectDelete(FrApNam); 
   SetHLine(ClAp,FrApNam,FrApPrise,0,1);
   WindowRedraw();
   return;}
//-----------------------------------------------------------------------------+   
//   Киму Респект и уважуха !!!                                                |       
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 07.10.2006                                                     |
//|  Описание : Поиск ближайшего фрактала. Возвращает ценовой уровень.         |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy   - наименование инструмента      ("" или NULL - текущий символ)     |
//|    tf   - таймфрейм                     (    0       - текущий ТФ)         |
//|    mode - тип фрактала                  (MODE_LOWER|MODE_UPPER)            |
//+----------------------------------------------------------------------------+
double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {
  if (sy=="" || sy=="0") sy=Symbol();
  double f=0;
  int    d=MarketInfo(sy, MODE_DIGITS), s;
  if (d==0) if (StringFind(sy, "JPY")<0) d=4; else d=2;

  for (s=2; s<100; s++) {
    f=iFractals(sy, tf, mode, s);
    if (f!=0) return(NormalizeDouble(f, d));
  }
  Print("FindNearFractal(): Фрактал не найден");
  return(0);
}
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.03.2008                                                     |
//|  Описание : Установка объекта OBJ_HLINE горизонтальная линия               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    cl - цвет линии                                                         |
//|    nm - наименование               ("" - время открытия текущего бара)     |
//|    p1 - ценовой уровень            (0  - Bid)                              |
//|    st - стиль линии                (0  - простая линия)                    |
//|    wd - ширина линии               (0  - по умолчанию)                     |
//+----------------------------------------------------------------------------+
void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (p1<=0) p1=Bid;
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_COLOR , cl);
  ObjectSet(nm, OBJPROP_STYLE , st);
  ObjectSet(nm, OBJPROP_WIDTH , wd);
}

или

с помощью функций

int ObjectFind( string name) //Поиск объекта с указанным именем

double ObjectGet( string name, int prop_id) //Функция возвращает значение указанного свойства объекта

ищем обьект . Иначе никак.
 
Да нет,он вставляется но значение выдает абсолютно с потолка
 
palomnik:
Да нет,он вставляется но значение выдает абсолютно с потолка


Попробуйте убрать настройки индикаторов в коде советника. Тогда настройки будут браться из кода прописанного в индикаторе.

У меня тоже были левые значения убрал настройки из кода и нормально.

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