Добрый день. Есть несколько вопросов к профи. Подскажите как прописать в советники, чтоб был выбор например только на открытие ордеров на продажу или на покупку.
Что значит "чтоб был выбор"? Вы хотите выбирать позиции ТОЛЬКО ОДНОГО НАПРАВЛЕНИЯ? Или Вы хотите выбирать сигналы ОПРЕДЕЛЕННОГО НАПРАВЛЕНИЯ?
Что значит "чтоб был выбор"? Вы хотите выбирать позиции ТОЛЬКО ОДНОГО НАПРАВЛЕНИЯ? Или Вы хотите выбирать сигналы ОПРЕДЕЛЕННОГО НАПРАВЛЕНИЯЯ
Я хочу найти ордер самый дальний по пунктам от текущей цены и закрыть его. Не зависимо на какой валютной паре и в какую сторону он идет)
Я хочу найти ордер самый дальний по пунктам от текущей цены и закрыть его. Не зависимо на какой валютной паре и в какую сторону он идет)
Не ордера, а позиции.
Вот основа - на базе этого можно найти что угодно. Данная функция возвращает в переменную 'price_highest_buy' цену самой высокой позиции BUY, а в переменную 'price_lowest_sell' - самой низкой позиции SELL.
//+------------------------------------------------------------------+ //| Calculate all positions | //+------------------------------------------------------------------+ void CalculateAllPositions(double &price_highest_buy,double &price_lowest_sell) { //--- auxiliary variables double price_highest_buy = DBL_MIN; double price_lowest_sell = DBL_MAX; //--- for(int i=PositionsTotal()-1; i>=0; i--) if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==InpMagic) { if(m_position.PositionType()==POSITION_TYPE_BUY) { if(m_position.PriceOpen()>price_highest_buy) // the highest position of "BUY" is found price_highest_buy=m_position.PriceOpen(); continue; } else if(m_position.PositionType()==POSITION_TYPE_SELL) { if(m_position.PriceOpen()<price_lowest_sell) // the lowest position of "SELL" is found price_lowest_sell=m_position.PriceOpen(); } } }
ни в одном месте не спец в MQl5 , но найти тикет открытой позиции которая находится дальше от цены можно попробовать так:
void OnStart() { while(!IsStopped()) { ulong ticket = 0; int max_pips = INT_MIN; for(int i = PositionsTotal() - 1; i >= 0; i--) { ulong curr_ticket = PositionGetTicket(i); string pos_sym = PositionGetString(POSITION_SYMBOL); double pos_point = SymbolInfoDouble(pos_sym, SYMBOL_POINT); int pos_pip = fabs(PriceToInteger(PositionGetDouble(POSITION_PRICE_OPEN), pos_point) - PriceToInteger(PositionGetDouble(POSITION_PRICE_CURRENT), pos_point)); if(max_pips < pos_pip) { max_pips = pos_pip; ticket = curr_ticket; } } if(ticket > 0) Comment("Max pips in position = ", max_pips, " , ticket = ", ticket); else Comment(""); } Comment(""); } //+------------------------------------------------------------------+ int PriceToInteger( const double Price, const double point ) { return((int)(Price / point + 0.1)); }
Не ордера, а позиции.
Вот основа - на базе этого можно найти что угодно. Данная функция возвращает в переменную 'price_highest_buy' цену самой высокой позиции BUY, а в переменную 'price_lowest_sell' - самой низкой позиции SELL.
Спасибо. Попробую прикрутить, посмотрю, что выйдет.
И дурацкий вопрос: Какая разница, между Ордером и Позиции? Везде говорят Ордер, и в MQL везде OrderSend, OrderClose и т.д.
Спасибо. Попробую прикрутить, посмотрю, что выйдет.
И дурацкий вопрос: Какая разница, между Ордером и Позиции? Везде говорят Ордер, и в MQL везде OrderSend, OrderClose и т.д.
Ордер - это заявка на выполнение сделки или установку отложенного ордера, а также на модификацию отложенного ордера или позиции, и еще на удаление отложенного ордера.
В результате сделки может быть открыта позиция или закрыта (или изменен ее объем на неттинге). Это все становится понятно, если посмотреть историю в МТ5 - сначала ордер на выполнение рыночный сделки, потом сделка, после этого появляется позиция.
А в МТ4 было принято все называть ордерами. Рыночные ордера там сразу открывались.
Спасибо. Попробую прикрутить, посмотрю, что выйдет.
И дурацкий вопрос: Какая разница, между Ордером и Позиции? Везде говорят Ордер, и в MQL везде OrderSend, OrderClose и т.д.
Ордер это приказ, в 4ке упростили и сделали рыночный ордер это совершенный приказ на покупку / продажу. В 5ке приближено к понятиям биржи и ордер это приказ на покупку, продажу, модификацию и др. , а позиция это исполненный приказ на покупку / продажу, стоимость актива так сказать) В акциях это проще понимается, на валютном рынке сложнее)))
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день. Есть несколько вопросов к профи. Подскажите как прописать в советники, чтоб был выбор например только на открытие ордеров на продажу или на покупку. И да подскажите в какую тему дальше писать по разработке.