Добрый День Владимир !
Возможно в этом коде - чуть подправить, что бы он закрывал на той паре, где прикреплён ?
не Вы , переделывать. я спрашиваю, возможно ли такое - что бы я не зря тыкал.
Добрый День Владимир !
Возможно в этом коде - чуть подправить, что бы он закрывал на той паре, где прикреплён ?
не Вы , переделывать. я спрашиваю, возможно ли такое - что бы я не зря тыкал.
Нужно чуть переписать
for(int i=PositionsTotal()-1; i>=0; i--) // returns the number of current positions if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
поставить
for(int i=PositionsTotal()-1; i>=0; i--) // returns the number of current positions if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties if(m_position.Symbol()==m_symbol.Name())
и вынести расчёт Стоп Лосс в OnInit() - тогда строка
if(!SymbolInfoDouble(m_position.Symbol(),SYMBOL_POINT,points)) continue;
окажется лишней
Нужно чуть переписать
поставить
Огромное Вам Спасибо!!!
Нужно чуть переписать
поставить
и вынести расчёт Стоп Лосс в OnInit() - тогда строка
окажется лишней
Вот так - вроде работает !
Спасибо! Здоровья и Всех Благ!!!
//+------------------------------------------------------------------+ //| Pips Close Multicurrency.mq5 | //| Copyright © 2019, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2019, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.000" /* barabashkakvn Trading engine 3.104 */ #include <Trade\PositionInfo.mqh> #include <Trade\Trade.mqh> #include <Trade\SymbolInfo.mqh> //--- CPositionInfo m_position; // object of CPositionInfo class CTrade m_trade; // object of CTrade class CSymbolInfo m_symbol; // object of CSymbolInfo class //--- input parameters input ushort InpStopLoss = 15; // Stop Loss, in pips (1.00045-1.00055=1 pips) input ushort InpTakeProfit = 46; // Take Profit, in pips (1.00045-1.00055=1 pips) input ulong InpDeviation = 10; // Deviation, in points (1.00045-1.00055=10 points) input ulong InpMagic = 56390818; // Magic number //--- double m_adjusted_point; // point value adjusted for 3 or 5 points double m_stop_loss = 0.0; // Stop Loss -> double double m_take_profit = 0.0; // Take Profit -> double //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- initialize common information m_symbol.Name(Symbol()); // symbol m_trade.SetExpertMagicNumber(InpMagic); m_trade.SetMarginMode(); m_trade.SetTypeFillingBySymbol(m_symbol.Name()); m_trade.SetDeviationInPoints(InpDeviation); //--- tuning for 3 or 5 digits int digits_adjust=1; if(m_symbol.Digits()==3 || m_symbol.Digits()==5) digits_adjust=10; m_adjusted_point=m_symbol.Point()*digits_adjust; m_stop_loss = InpStopLoss*m_adjusted_point; m_take_profit = InpTakeProfit*m_adjusted_point; //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { OnTicktake_profit(); OnTickstop_loss(); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTicktake_profit() { for(int i=PositionsTotal()-1; i>=0; i--) // returns the number of current positions if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties if(m_position.Symbol()==m_symbol.Name()) { double price_current = m_position.PriceOpen(); double price_open = m_position.PriceCurrent(); if(m_position.PositionType()==POSITION_TYPE_BUY) { if((price_open-price_current)>=m_take_profit) // if the loss m_trade.PositionClose(m_position.Ticket()); } else if(m_position.PositionType()==POSITION_TYPE_SELL) { if((price_current-price_open)>=m_take_profit) // if the loss m_trade.PositionClose(m_position.Ticket()); } } //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTickstop_loss() { for(int i=PositionsTotal()-1; i>=0; i--) // returns the number of current positions if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties if(m_position.Symbol()==m_symbol.Name()) { double price_current = m_position.PriceCurrent(); double price_open = m_position.PriceOpen(); if(m_position.PositionType()==POSITION_TYPE_BUY) { if((price_open-price_current)>=m_stop_loss) // if the loss m_trade.PositionClose(m_position.Ticket()); } else if(m_position.PositionType()==POSITION_TYPE_SELL) { if((price_current-price_open)>=m_stop_loss) // if the loss m_trade.PositionClose(m_position.Ticket()); } } //--- } //+------------------------------------------------------------------+

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Pips Close Multicurrency:
Советник-утилита: закрывает позицию по любому символу и с любым Magic number если эта позиция убыточна на N- points
Автор: Vladimir Karputov