Вопросы от "чайника" - страница 149

 
alph:
Спасибо! А в остальном код правильный?


 Честное слово, не смотрел. Если бы Yedelkin на функцию не обратил внимание я бы кодом не заинтересовался.

Как я понял из описания ситуации там еще есть проблемы с обработкой ошибок.  

 
Interesting:


 Честное слово, не смотрел. Если бы Yedelkin на функцию не обратил внимание я бы кодом не заинтересовался.

Как я понял из описания ситуации там еще есть проблемы с обработкой ошибок.  

Покумекую, вы не против если завтра обращусь с тем что получится?
 
alph:
Покумекую, вы не против если завтра обращусь с тем что получится?
Обращайтесь, если ни я то все равно кто-то поможет
 
Interesting:
Обращайтесь, если ни я то все равно кто-то поможет
СПС!
 

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

Не подскажете код как привязать StopLoss к локальному минимуму(максимуму)?

 

Не подскажите как удалить объекты относящиеся только к владельцу?

Пробовал так:

#define def_ID "LPS_1M"

void OnDeinit(const int reason)
{
   s_indy.S_DeleteObjects(0, 0, -1, def_ID);
}

void S_Indy::S_DeleteObjects(int i_chart_id, int i_nwin, int i_type, string s_ID_Objects)
{
string s_ObjectName;

   Print(ObjectsTotal(i_chart_id,i_nwin,i_type));
   for (int i = 0; i < ObjectsTotal(i_chart_id,i_nwin,i_type);i++){
      //s_ObjectName = ObjectName(i_chart_id,i,i_nwin,i_type);
      s_ObjectName = ObjectName(i_chart_id,0,i_nwin,i_type);
      Print("s_ObjectName: "  + s_ObjectName);
      if (StringFind(s_ObjectName, s_ID_Objects) != -1){
         ObjectDelete(i_chart_id,s_ObjectName);
      }
   }
}

Но удаляются не все объекты 5 из 9:

2012.05.16 13:26:34    i_Find_Line_M_02 (EURUSD,H1)    s_ObjectName: LPS_1M_Line_Max_4_
2012.05.16 13:26:34    i_Find_Line_M_02 (EURUSD,H1)    s_ObjectName: LPS_1M_Line_Max_3_
2012.05.16 13:26:34    i_Find_Line_M_02 (EURUSD,H1)    s_ObjectName: LPS_1M_Line_Max_2_
2012.05.16 13:26:34    i_Find_Line_M_02 (EURUSD,H1)    s_ObjectName: LPS_1M_Line_Max_1_
2012.05.16 13:26:34    i_Find_Line_M_02 (EURUSD,H1)    s_ObjectName: LPS_1M_Line_Max_0_

2012.05.16 13:26:34    i_Find_Line_M_02 (EURUSD,H1)    9

Что я не так делаю??????

 
pusheax:
   for (int i = 0; i < ObjectsTotal(i_chart_id,i_nwin,i_type);i++){
При удалении список изменяется. Тоже самое с ордерами.

В другую сторону над)

   for (int i = ObjectsTotal(i_chart_id,i_nwin,i_type)-1; i >= 0 ;i--){
 
for (int i = 0; i < ObjectsTotal(i_chart_id,i_nwin,i_type);i++)

этот цикл неверный.

ObjectsTotal

  у вас берется на каждой итерации. она будет уменьшаться.

 

pusheax:

Но удаляются не все объекты 5 из 9:

По вашей технологии ровно столько и должно удалиться. :)
Swan:
При удалении список изменяется. Тоже самое с ордерами.

В другую сторону над)

   for (int i = ObjectsTotal(i_chart_id,i_nwin,i_type); i >= 0 ;i--){

Маленькая поправка:

   for (int i = ObjectsTotal(i_chart_id,i_nwin,i_type) - 1 ; i >= 0 ;i--){
 
Swan:
При удалении список изменяется. Тоже самое с ордерами.

В другую сторону над)

Спасибо все заработало!

А как он изменяется?

Как там внутри все происходит не подскажите?
Причина обращения: