Доброго времени суток - страница 2

 
Pavel Boronin:
тему  Вами предложенную я просмотрел но не наел в каком из шагов это описано 

Заготовка для работы со списком позиций:

#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>  
CPositionInfo  m_position;                   // trade position object
CSymbolInfo    m_symbol;                     // symbol info object
.

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
.
//---
   m_symbol.Name(Symbol());                  // sets symbol name
.
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int total=0;
   for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of open positions
      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()==m_magic)
            total++;


В OnTick() подсчитывается количество позиций по символу и с указанным Magic. 

Далее уже Ваш код - хотите открывайте ещё позицию, хотите не открывайте.
 

 
спасибо 
 
Pavel Boronin:
спасибо 
Если не получится - обращайтесь.
 
вставил Ваш код выдает ошибки при компиляции как их устранить?
 
Pavel Boronin:
вставил Ваш код выдает ошибки при компиляции как их устранить?

Это куски с функционалом. Так как Вы не рассказали толком, что нужно, я дал Вам общие шаблоны. 

Вот это нужно вставить в "шапку" советника:

#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>  
CPositionInfo  m_position;                   // trade position object
CSymbolInfo    m_symbol;                     // symbol info object
//---
ulong          m_magic=15489;                // magic number

 

Это в OnInit():

  m_symbol.Name(Symbol());                  // sets symbol name

 

Это в OnTick():

   int total=0;
   for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of open positions
      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()==m_magic)
            total++;


 

 

ошибку выдает в строке  total++; и }

я понял то это куски  т.к  между кодами были точки вставил именно так как вы описали 

 
Pavel Boronin:

ошибку выдает в строке  total++; и }

я понял то это куски  т.к  между кодами были точки вставил именно так как вы описали 

Это не забыли?

ulong          m_magic=15489;                // magic number
 
за все Вам спасибо может я что то не правильно делаю почитаю еще темы если Вас не затруднит то снова со временем задам этот вопрос если не разберусь с данной подсказкой, еще раз спасибо
 
У меня прописано было   ulong                Expert_MagicNumber           =11089;       //   у Вас другие цифры а где можно почитать что они означают они меняются с каждой комбинацией  а в слепую не понятно что они обозначают за ранее благодарен
 
Pavel Boronin:
У меня прописано было   ulong                Expert_MagicNumber           =11089;       //   у Вас другие цифры а где можно почитать что они означают они меняются с каждой комбинацией  а в слепую не понятно что они обозначают за ранее благодарен
Сами цифры - это номер. Главное - это у меня "m_magic", а у Вас "Expert_MagicNumber". Нужно, чтобы везде было или "m_magic" или "Expert_MagicNumber".
Причина обращения: