Еще раз, прошу помощи!
Подозреваю, что тут все просто, но не доходит.
Не оставайтесь в стороне, Спасибо!
double HistoryProfitOrder(string sy="", int op=-1, int mn=-1,int n=0)OrderType()==op)
Что за OrderType со значением -1 ? Вроде тайпы положительное значение имеют от нуля и выше.
Я сам то такие блоки не придумывал ещё, сложная задача для меня. Ждите, подтянутся специалисты.
В чём прикол то, объясните, для чего требуется находить конкретный закрытый ордер и смотреть его профит?
OrderType
Возвращает тип операции текущего выбранного ордера.
int OrderType(); |
Возвращаемое значение
Тип операции текущего выбранного ордера. Mожет быть одной из следующих величин:
- OP_BUY - ордер на покупку,
- OP_SELL - ордер на продажу,
- OP_BUYLIMIT - отложенный ордер на покупку по достижении заданного уровня, текущая цена выше уровня,
- OP_BUYSTOP - отложенный ордер на покупку по достижении заданного уровня, текущая цена ниже уровня,
- OP_SELLLIMIT - отложенный ордер на продажу по достижении заданного уровня, текущая цена ниже уровня,
- OP_SELLSTOP - отложенный ордер на продажу по достижении заданного уровня, текущая цена выше уровня.
Примечание
Ордер должен быть предварительно выбран с помощью функции OrderSelect().
Пример:
int order_type; |
OrderProfit
Возвращает значение чистой прибыли выбранного ордера.
double OrderProfit(); |
Возвращаемое значение
Значение чистой прибыли (без учета свопов и комиссий) выбранного ордера. Для открытых ордеров это текущая нереализованная прибыль, для закрытых ордеров - зафиксированная прибыль.
Примечание
Ордер должен быть предварительно выбран с помощью функции OrderSelect().
Пример:
if(OrderSelect(10, SELECT_BY_POS)==true) |
Вы справку mql юзаете?
ВОт у меня блок есть кода где поиск всех закрытых ордеров и сумма профита по ним. Может если как-то модернизировать, то что-то получится. Но слабоват я))
//+------------------------------------------------------------------+ //| Profit / loss of closed OP_BUY and OP_SELL | //+------------------------------------------------------------------+ double CalculateProfitHistory() { double profithistory=0; for(int i=OrdersHistoryTotal()-1; i>=0; i--) { if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue; if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic) if(OrderType()<=OP_SELL && SwapAndComissions==true) profithistory+=OrderProfit()+OrderSwap()+OrderCommission(); else if(OrderType()<=OP_SELL && SwapAndComissions==false) profithistory+=OrderProfit(); } return (profithistory); }
Что за OrderType со значением -1 ? Вроде тайпы положительное значение имеют от нуля и выше.
внимательно смотрим код:
if (op<0 || OrderType()==op)
внимательно смотрим код:
Да я понял, но разве тип ордера может быть отрицательным?
не может -- просто когда задан "-1" на входе, то согласно коду -- тип не проверяется (т.е. любой тип подходит)
не может -- просто когда задан "-1" на входе, то согласно коду -- тип не проверяется (т.е. любой тип подходит)
То есть все ордера и отложки и баи и селы, да? Понятно. Ну короче он больше моего знает))
Я сам то такие блоки не придумывал ещё, сложная задача для меня. Ждите, подтянутся специалисты.
В чём прикол то, объясните, для чего требуется находить конкретный закрытый ордер и смотреть его профит?
Прикола нет.
Функция универсальна
примеры использования
HistoryProfitOrder(); // получаем профит по всем закрытым позициям
HistoryProfitOrder(Symbol(),OP_BUY ); //Только по текущему символу, и только покупки
HistoryProfitOrder(Symbol(),OP_BUY,123 ); //Только по текущему символу, и только покупки с магиком 123
Как то так.
Всем привет!
Не судите пожалуйста строго.
Нужен блок,который возвращает профит нужного ордера из истории , но ордер который открывал именно этот советник.
...
поясните точно, что вы хотите найти -- что значит "нужный ордер" -- как вы понимаете, что это именно "нужный ордер"

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет!
Не судите пожалуйста строго.
Нужен блок,который возвращает профит нужного ордера из истории , но ордер который открывал именно этот советник.
Из своих закрытых смотрел бы ордера в истории и возвращал нужный на N назад.
Накидал вот такой блок, но не работает.
Возвращает , но по всем ордерам, без привязки к магическим числам.
Зашел в тупик,помогите пожалуйста определить ошибку!