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

 
tuner:

Индикатор рисует точки и стрелки (исходника нет) :


iCustom() Вам поможет
 
Vinin:
iCustom() Вам поможет

Ну вот мне нужно удалить на графике все графические объекты, созданные этим индикатором. А как это сделать если ObjectFind() возвращает 4202?

iCustom для этой цели не подходит, если я правильно понимаю 

[Удален]  

Здравствуйте, уважаемые специалисты этого форума. Задался целью создать индикатор, который показывает максимальную просадку по эквити. 

Расчет такой: 

double de;
double dw; 

if (AccountProfit() < 0)
{
de = (AccountProfit() * (-1) * 100) / AccountBalance();
} else de = 0;

if (de > dw)
dw = de; 

Выводим значение  dw. Все показывает правильно, но есть проблемы: 1 - при смене таймфрейма начинает расчет заново, при перезапуске терминала  обнуляет, при запуске индикатора на другом графике тоже обнуляет.

Что можно сделать, чтобы  показатель максимальной просадки по эквити обновлялся при достижении нового максимума и сохранял значение при вышеперечисленных условиях?

 
tuner:

Ну вот мне нужно удалить на графике все графические объекты, созданные этим индикатором. А как это сделать если ObjectFind() возвращает 4202?

iCustom для этой цели не подходит, если я правильно понимаю 

Нету объектов. Есть индикаторные буфера. Можно им назначить цвет фона
 
Можно ли поставить на график Индикатор AccountEquity(), работающий в реал.времени ? Где его взять?
 
Vinin:
Нету объектов. Есть индикаторные буфера. Можно им назначить цвет фона
Неожиданно. В принципе если стрелки есть на графике, но их нет в списке объектов, то логично что это означает что стрелки не являются объектами. А как такое возможно реализовать через индикаторные буферы?
 
tuner:
Неожиданно. В принципе если стрелки есть на графике, но их нет в списке объектов, то логично что это означает что стрелки не являются объектами. А как такое возможно реализовать через индикаторные буферы?

https://docs.mql4.com/ru/customind

https://docs.mql4.com/ru/customind/setindexarrow 

 
Vinin:
благодарю, теперь все понятно
 

Ребят,выдает 130 ошибку, подскажите если не трудно. Просьба не критиковать сильно, начинающий.

.
.
.
   double step = 0.0005;
   double val,c,r,res;
   string str;
   int i; //цикличесская
   int stp=5;
.
.
.
   c=(Ask+Bid)/2;
   r=(MathRound(c*1000))/1000;
   if((r-c)==0){
      res=r;
   }
   else{
      if((r-c)>0){
         res=r-step;
      }
      else {
         res=r+step;
      }
   }
.
.
.
      ResetLastError();
      OrderSend(Symbol(),OP_BUYLIMIT,0.01,res-stp*(i+1)*Point,3,res-(stp*(i+1)-100)*Point,res-(stp*(i+1)+5)*Point,"|",0,0,CLR_NONE);
      Print("98-",GetLastError());
.
.
...
 

Привет всем) подскажите пожалуйста - не могу сообразить как код написать (  Пример; работает 2 робота - у каждого свой магик  ) большая доля на покупку или продажу падает на историю ордеров, то есть если ордер был селл то следющая сделка будет бай  - проблема  заключается в том что не получается выбрать последний ордер и магик вместе  и соответственно определить тип ордера для определенного робота(работает только часть кода - если выбирать только последний ордер из истории - отлично работает когда робот один ,а второй код записанный через for перечисляет все ордера с магик номером выводит его число порядковое и пишет его тип но  почему то не возвращает значение последнего и я не могу понять почему ) помогите это соединить в одно целое  вот 1 и 2 код  ;

1) код для определения последнего ордера а точнее его типа

int orderBS;

int total1=OrdersHistoryTotal()-1;

if(OrderSelect(total1, SELECT_BY_POS, MODE_HISTORY) == true)  //  тип ордера

          { orderBS=OrderType();}

2) код считает все совершенные сделки смагиком записывает их порядковый номер и тип но не выводит последний ордер  

  int k ;

 int orderBS;

 

if(OrdersHistoryTotal()>0)

  { for(int O=OrdersHistoryTotal()-1; O>=0; O--)

     { if(OrderSelect(O,SELECT_BY_POS,MODE_HISTORY))

       {  if(OrderMagicNumber()!=136) continue; 

         if(OrderMagicNumber()==136)          

          k=OrderMagicNumber();

         orderBS=OrderType();

         Alert("последний ордер номера 136 = ","номер ордера в истории=",O,"магик номер=",k,"ордер сел бай=",orderBS);   }}}  

КАК ВЕРНУТЬ ПОСЛЕДНИЙ ОРДЕР ИЗ ИСТОРИИ С НУЖНЫМ МАГИК номером !!!   


help me pliz!!!!!