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

 
dyxaa:

ну точно. гениально просто))) 

я прошу вас помоч) вот выставлю ордер отложенный ну пусть  buy stop к примеру мне нужно чтобы если цена прошла 100 пунктов в низ он удалился можно такое сделать?

 

Вы выставляете его программно или руками?

Если руками, то и закрывайте (лучше) руками - не парьтесь.

Если же программно (через советник), то делаете перебор по ордерам, находите нужный Вам. Затем:

if (Bid < OrderOpenPrice()-100*Point) OrderDelete(OrderTicket());   // Это для Вашего типа ордера - Бай-Стоп

Если Вы не знаете как перебор сделать и другие наипростейшие действия, то начните с прочтения учебника по МКЛ. Потому что в этом случае, Вы с кодом вряд ли справитесь.

 
hoz:

Появилась мысль, но как для реала это сделать и как оно будет в реале работать надёжно, я не особо представляю.

Суть такая. Войти в рынок нужно, после помещения совы на график сразу после закрытия бара т.е. на открытии нового. Именно для первого ордера. Дальше, когда ордер закроется по ТП или Стопу, так же открываться ордер на открытии нового бара мгновенно. Как это разумнее сделать?

Я так понимаю, нужно завести переменную. В нём поместить цену открытия текущего бара. И сравнивать это значение с  ценой открытия текущего бара. Если значение переменной не равно значение цены открытия текущего бара с индексом нуль, то открываем ордер.

Это самый оптимальный вариант? 

Вот, по ходу решения своих дел встретил функцию для определения Нового Бара:

//+------------------------------------------------------------------+
//|  Проверка на появление нового бара                               |
//+------------------------------------------------------------------+
bool isNewBar()
   {  static datetime TimeBar=0;
      bool flag=false;
      if(TimeBar!=Time[0])
         {
          TimeBar=Time[0];
          flag=true;
         } 
      return (flag);
   }
//+------------------------------------------------------------------+
Теперь осталось только ордер открыть... : )))
 
dyxaa:

ну точно. гениально просто))) 

я прошу вас помоч) вот выставлю ордер отложенный ну пусть  buy stop к примеру мне нужно чтобы если цена прошла 100 пунктов в низ он удалился можно такое сделать?

 

И тут есть свой крестик, а 100 пунктов считайте по разнице между ценой и ценой установки отложки!
 

вообще не вдуплю, в чем ошибка, помогите разобраться, выдает ошибку 'start' - variable not defined, нужно найти максимум от значений RSI за определенный период

 (RSIBuffer3[i]) // массив со значениями RSI

      // определяем размер массива

        

      int count=ArraySize(RSIBuffer3[i]);

        

      // ищем максимальное значение массива         

        

      int RSI_max=ArrayMiximum (RSIBuffer3[i], count-1, int start=0); 

 
Chiripaha:

Если реализовать, то в реале будет работать также надежно, как и на демо. Но не факт, что доходно.

Реализовывать через появление нового бара. Но Вы не сформулировали в какую сторону открывать и при каких условиях эта сторона определяется.

Вам ничего сравнивать не надо - просто при появлении нового бара (исходя из данной Вами вводной) нужно открывать ордер и все.

Если не представляете:

"И опыт - сын ошибок трудных
 И гений - парадоксов друг"         (Александр Сергеевич Вам в помощь)

Нужно делать (писать) сову и экспериментальным методом проверять. - За Вас вряд ли кто-то будет сову писать (бесплатно). Подсказать - одно дело. Но идеи реализовывать (мысли) - это уже не помощь, а работа.


Всё я представляю. Суть в том, что первый ордер, если воспользоваться той или иной функцией определения нового бара откроется спонтанно, когда эксперт прикрепится к графику т.к. в момент помещения эксперта на график переменная, хранящая время открытия бара точно не будет равно времени открытия текущего бара. Вот я и подумал, что нужно сразу присвоить ещё в ините время открытия текущего бара переменной, а дальше если данной переменная равно времени открытия текущего бара ничего не делать , а как не равно то запуск функции открытия. Думал это самый адекватный вариант или может можно без инита обойтись. 

 
Merincool:

вообще не вдуплю, в чем ошибка, помогите разобраться, выдает ошибку 'start' - variable not defined, нужно найти максимум от значений RSI за определенный период

 (RSIBuffer3[i]) // массив со значениями RSI

      // определяем размер массива

        

      int count=ArraySize(RSIBuffer3[i]);

        

      // ищем максимальное значение массива         

        

      int RSI_max=ArrayMiximum (RSIBuffer3[i], count-1, int start=0); 

// определяем размер массива

        

      int count=ArraySize(RSIBuffer3);

        

      // ищем максимальное значение массива         

        

      int RSI_max=ArrayMiximum (RSIBuffer3, count-1, int start=0);

 

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

 
Доброго времени суток.Есть 4 пользоватльских индикатора и попытка написать советник по нему.Вопрос в том что нужно прописывать чтобы получить значение цены по каждому конкретному индикатору чтобы не 0 выводился,а все таки число.Нужно просто граммотно прописать в icustom,прописываю но что то не получается,вот сам "комплект".
Файлы:
 
Elektronik,так вроде и открывает с последним с каким работали.Во всяком случае по другому не видел.
 
palomnik:
Elektronik,так вроде и открывает с последним с каким работали.Во всяком случае по другому не видел.

НЕ С ПОСЛЕДНИМ, А ОПРЕДЕЛЕННЫМ!!! заканчиваю на тестере, а начинаю на реале.

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