[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 46
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Но получается немного не так. В результате получается что ищется максимумы в истории( находит например в прошлых сутках), а нужно чтоб это условие ждало своего выполнения после того как этой функции разрешат действие( например значение на 1м баре > 70) ... и при выполнении условия ( не в истории перед баром>70, а после) 1й маким ниже 2го - то закрытие покупок
Подскажите что изменить.
Спасибо
еще один вопрос - помогите плиз)
как определить после выделения ордера истории его тип (был ли закрыт ордер Buy или Sell)?
У тебя объявлена одна переменная, а потом пытается использовать другую.
АААААААААААААААААААААААААА......семён семёныч!!!!!!!!!!!!!!!!!!! Ну так БЫ сразу и сказали........... а то старость не радость - а молодость гадость.....
ССППААССИИББОО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
подскажите, пожалуйста
надо четкое понимание того, закрылся ордер по стопу или профиту
я сделал переменные priceprofitbuy и pricestopbuy
перед ordersend я делаю pricebuy = Ask, потом ордерсенд по pricebuy, если успешно, то алерт и запоминание priceprofitbuy и pricestopbuy, исходя из цены pricebuy
далее условием priceprofitbuy >= Bid и pricestopbuy <= Bid проверяю, как закрылся - по профиту или стопу
однако бывает что за время цикла Bid дошел до уровня тейкпрофита, ордер закрылся, но пока цикл дошел до priceprofitbuy >= Bid, Bid стал меньше и тогда дальше цикл работает неправильно
вопрос - можно ли както четко определять, что ордер закрылся по профиту???
пробовал присвоить переменной номер тикета ордера и потом в истории проверить профит, но ордерсенд по тикету из истории не выбирает - хистори работает только по пос.
я сделал переменные priceprofitbuy и pricestopbuy
перед ordersend я делаю pricebuy = Ask, потом ордерсенд по pricebuy, если успешно, то алерт и запоминание priceprofitbuy и pricestopbuy, исходя из цены pricebuy
далее условием priceprofitbuy >= Bid и pricestopbuy <= Bid проверяю, как закрылся - по профиту или стопу
однако бывает что за время цикла Bid дошел до уровня тейкпрофита, ордер закрылся, но пока цикл дошел до priceprofitbuy >= Bid, Bid стал меньше и тогда дальше цикл работает неправильно
вопрос - можно ли както четко определять, что ордер закрылся по профиту???
пробовал присвоить переменной номер тикета ордера и потом в истории проверить профит, но ордерсенд по тикету из истории не выбирает - хистори работает только по пос.
Не вполне корректно:
Позиция может открыться и не точно по заявленной цене, а с проскальзыванием (как правило, по худшей).
Правильнее будет определять цену открытого ордера с пом функции OrderOpenPrice(), предварительно выбрав его с пом OrderSelect(...)
А ещё проще после его закрытия вычислить разность цены открытия и закрытия. Последняя определяется функцией OrderClosePrice().
OrderType() вернёт Вам тип (buy/sell).
To xrust: огромное спасибо.
Только непонятно как в условиях торговли прописать, что если тип закрытого ордера был OP_BUY,то бла бла((
у меня идет так:
в условии я верно написал что Если тип ордера был OP_BUY тогда блаблабла?
if(ORDtype=1)&&....
в условии я верно написал что Если тип ордера был OP_BUY тогда блаблабла?
Должно быть:
if(ORDtype==1)&&....
Должно быть:
if(ORDtype==1)&&....
fа сли истории нет - в моем случае ORDtype будет ==0?
fа сли истории нет - в моем случае ORDtype будет ==0?
Он будет равен значению, указанному при объявлении переменной, т.е. в вашем случае 0, поскольку явного присвоения ей значения не было. Кстати, в предыдущем посте я не обратил внимание, что вы хотели выбрать ордер OP_BUY - этой константе соответствует как раз 0, а 1 - это OP_SELL. Поэтому лучше объявить переменную ORDtype со значением -1:
int ORDtype=-1;
А ещё, чтобы не путаться, какое значение какому типу операции соответствует, можете в условии так и указывать:
if (ORDtype==OP_BUY) ...
Он будет равен значению, указанному при объявлении переменной, т.е. в вашем случае 0, поскольку явного присвоения ей значения не было. Кстати, в предыдущем посте я не обратил внимание, что вы хотели выбрать ордер OP_BUY - этой константе соответствует как раз 0, а 1 - это OP_SELL. Поэтому лучше объявить переменную ORDtype со значением -1:
int ORDtype=-1;
А ещё, чтобы не путаться, какое значение какому типу операции соответствует, можете в условии так и указывать:
if (ORDtype==OP_BUY) ...
а если в истории был ордер Sell, а затем его эксперт закрыл (в типе истории он (его закрытие) отображается как t/p или s/l - не будет ли он считаться последним? не смог добиться нужного эффекта((