Как я собираю себе советника методом тыка - страница 27

 
Алексей Тарабанов:

Понравилось? 

посмотреть в деле надо

не для меня, для него

 

думаю -не хватает отдельного, стоп лимита и таки профита -для горизонтальных линий , которые выставляются автоматически .

это плюс ещё 4 линии - а нет! 8

Снимок

 
Aleksandr Klapatyuk:

думаю -не хватает отдельного, стоп лимита и таки профита -для горизонтальных линий , которые выставляются автоматически .

это плюс ещё 4 линии - а нет! 8


#property version     "1.11"

выставляет горизонтальную линю StopLoss и если цена пошла в нужную сторону тралит позицию

жёлтые линии - это StopLoss и заодно трал 

trall 

input string   t1="------ TakeProfit    ----------";    // TakeProfit
input double   InTakeProfit            = 54;            // Take Profit, in pips (1.00045-1.00055=1 pips)

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

Снимок

Снимок1

так то - вроде есть результат. 

Файлы:
 
2019.10.28 10:21:58.667 Your intelligence (USDJPY,H1)   zero divide in 'Your intelligence.mq5' (1481,14)

выдаёт такую ошибку и эксперт удаляется - при открытии позиции . счёт 500 GLD. 

а на рублёвом счету - всё работает. пока не могу разобраться . 

 
Aleksandr Klapatyuk:

выдаёт такую ошибку и эксперт удаляется - при открытии позиции . счёт 500 GLD. 

а на рублёвом счету - всё работает. пока не могу разобраться . 

блин! и в поиске не какой информации .  может кто подскажет? что за ошибка? 

2019.10.28 10:21:58.667 Your intelligence (USDJPY,H1)   zero divide in 'Your intelligence.mq5' (1481,14)

Снимок

 
Aleksandr Klapatyuk:

выдаёт такую ошибку и эксперт удаляется - при открытии позиции . счёт 500 GLD. 

а на рублёвом счету - всё работает. пока не могу разобраться . 

В коде в строке 1481, позиция курсоса 14 - ищите ошибку. 

 
Vladimir Karputov:

В коде в строке 1481, позиция курсоса 14 - ищите ошибку. 

Большое Спасибо ! вроде разобрался, в чём причина . Спасибо за подсказку !!!

 
Vladimir Karputov:

В коде в строке 1481, позиция курсоса 14 - ищите ошибку. 

вот тут - я намудрил 

  {
//---
   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((PositionGetDouble(POSITION_PROFIT)/PositionGetDouble(POSITION_VOLUME)/
             SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE))/n<-InStopLoss)
            ClosePosition(m_position.Symbol());  // close a position by the specified symbo
        }
  }

исправил на так - только ещё не проверил эту функцию - но по идее должна работать 

  {
//---
   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.Commission()+m_position.Swap()+m_position.Profit()/n<-InStopLoss)
            ClosePosition(m_position.Symbol());  // close a position by the specified symbo
        }
  }

ещё раз - Огромное Спасибо! Здоровья ! и Всех Благ!

 

сейчас заметил - в терминале где - счёт GLD

открыв позицию прибыль не меняется - как показывает 8 пунктов и не меняется 

а на графике цена двигается - может и за этого выдавала ошибку 

InkedAlpari MT5_LI

 

вот тут - я намудрил 

  {
//---
   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((PositionGetDouble(POSITION_PROFIT)/PositionGetDouble(POSITION_VOLUME)/
             SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE))/n<-InStopLoss)
            ClosePosition(m_position.Symbol());  // close a position by the specified symbo
        }
  }

исправил на так - только ещё не проверил эту функцию - но по идее должна работать 

  {
//---
   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.Commission()+m_position.Swap()+m_position.Profit()/n<-InStopLoss)
            ClosePosition(m_position.Symbol());  // close a position by the specified symbo
        }
  }

надо оставлять - где я на мудрил . -- так работает! а так как хотел исправить, не работает и  /n и удалял и с ней . не работает

Вся причина - самого счёта GLD . открыл в том же терминале счёт USD и всё работает