Вопрос по коду

 
      if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))// Выбираем открытый ордер
        {
         double OpenPrice=OrderOpenPrice(); //Эта цена будет извлекаться из рыночного ордера? Или другая какая-то функция
         if(MathAbs(OpenPrice-Close[1])>=(Point*X))//Условие удаления "шума" маленьких свечей

Доброго времени суток! Посмотрите все ли правильно? Заранее спасибо.
 
Александр:
Доброго времени суток! Посмотрите все ли правильно? Заранее спасибо.

вот эта строчка не верная

if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))// Выбираем открытый ордер

а если будет открыто несколько ордеров что тогда, да еще по разным инструментам. а в данном случае вы запрашиваете самый старый открытый ордер

 
Sergey Gritsay:

вот эта строчка не верная

а если будет открыто несколько ордеров что тогда, да еще по разным инструментам. а в данном случае вы запрашиваете самый старый открытый ордер

Спасибо что ответили, Сергей! У меня по условиям покупки может быть всего один открытый ордер, т.е. я его и выберу.А проверка по магику и символу дальше в условиях. A дальше все ок? OrderOpenPrice()- будет извлекать Цену открытого ордера? 
 
Sergey Gritsay:

вот эта строчка не верная

а если будет открыто несколько ордеров что тогда, да еще по разным инструментам. а в данном случае вы запрашиваете самый старый открытый ордер

И еще неясно, зачем извлекать цену открытия ордера и как-то с ней манипулировать? Ну открылся он день назад по какой-то цене, как это удаляет шум маленьких свечей? Вы лучше напишите, что хотите сделать, может поможем )
 
Александр:
Спасибо что ответили, Сергей! У меня по условиям покупки может быть всего один открытый ордер, т.е. я его и выберу. A дальше все ок? OrderOpenPrice()- будет извлекать Цену открытого ордера?
Это цена открытия ордера, то есть цена, по которой он был открыт
 
Alexey Volchanskiy:
Это цена открытия ордера, то есть цена, по которой он был открыт

Т.е.  это условие работает и для открытых(рыночных ордеров), просто в комментариях к OrderOpenPrice() -Возвращаемое значение(Цена открытия выбранного ордера.), а какого не уточняется, рыночного, отложенного или исполненного, отсюда и вопрос))) 

 
Александр:

Т.е.  это условие работает и для открытых(рыночных ордеров), просто в комментариях к OrderOpenPrice() -Возвращаемое значение(Цена открытия выбранного ордера.), а какого не уточняется, рыночного, отложенного или исполненного, отсюда и вопрос))) 

Да, это работает для открытых рыночных и уже закрытых рыночных ордеров
 
Alexey Volchanskiy:
И еще неясно, зачем извлекать цену открытия ордера и как-то с ней манипулировать? Ну открылся он день назад по какой-то цене, как это удаляет шум маленьких свечей? Вы лучше напишите, что хотите сделать, может поможем )
У меня ордера в советнике каждый бар пытаются закрыться, и на закрытии стоит это условие, только там сейчас if(MathAbs(Open[1]-Close[1])>=(Point*X))-что не совсем соответствует задумке, т.к может возникнуть ситуация когда маленькие свечи идут в одну сторону и сумма их движения может быть больше Х
 
Alexey Volchanskiy:
Да, это работает для открытых рыночных и уже закрытых рыночных ордеров
Огромное спасибо, Алексей! А то я столько всего пересмотрел и ноль информации...
 
Может у кого используется такая штука, как Максимальная просадка ордера за день в валюте депозита или в процентах от депозита, с выводом данных в окно торговли?
 
Александр:
У меня ордера в советнике каждый бар пытаются закрыться, и на закрытии стоит это условие, только там сейчас if(MathAbs(Open[1]-Close[1])>=(Point*X))-что не совсем соответствует задумке, т.к может возникнуть ситуация когда маленькие свечи идут в одну сторону и сумма их движения может быть больше Х

Можно еще прибыль ордера смотреть. Проходить по ордерам в цикле. Но не все ордера будут прибыльные, нужно еще закрытие при убытке. 

Проверка бара подразумевает, что закрываешься на движении. Ест прибыль - хорошо, а если нет, то закрытие на наименьшем убытке.

Вообще вариантов много.