[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 289

 
artmedia70:

А не пробовали сделать отдельной функцией поиск наличия/отсутствия позиций?

Например:

Magic - магическое число советника (задаётся в настройках, либо генерируется советником автоматически). Тогда для проверки отсутствия позиции Бай по текущему символу нужно написать:

Заметьте - не просто команда на открытие ордера Бай, а полноценная функция с обработкой всех параметров открытия ордера и ошибок, возвращаемых сервером.

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



Не могли бы Вы полностью показать эту функцию в виде готового рабочего кода с функцией старт и всеми описаниями? И лучше, чтобы Magic генерировался советником автоматически, т.е. как я понимаю, это случай, который в самом низу.

bool ExistPositions(string sy="", int op=-1, int mn=-1) {
   if (sy=="") sy=Symbol();
   for (int i=0; i<OrdersTotal(); i++) {
      if (OrderSelect(i, SELECT_BY_POS)) {
         if (OrderMagicNumber()!=mn)   continue;
         if (OrderSymbol()!=sy)        continue;
         if (OrderType()>1)            continue;
         if (op<0 || OrderType()==op)  
            return(True);
         }
      }
   return(False);
}

if (!ExistPositions(Symbol(), OP_BUY, Magic)) {
   // ... Тут код для вызова функции открытия позиций ... 
   }
 
kolyango:


Не могли бы Вы полностью показать эту функцию в виде готового рабочего кода с функцией старт и всеми описаниями? И лучше, чтобы Magic генерировался советником автоматически, т.е. как я понимаю, это случай, который в самом низу.


Магик генерировать нельзя, если Ваш комп зависнет (пропадет питание, кошка на ступит на клаву, ...), при новом старте советник потеряет управление ордерами (если он магики не записывает в файл).
 
icas:

Магик генерировать нельзя, если Ваш комп зависнет (пропадет питание, кошка на ступит на клаву, ...), при новом старте советник потеряет управление ордерами (если он магики не записывает в файл).
Смотря как генерировать. Мои генерируются используя символ, тф, и никуда не деваются а нормально подхватываются при рестарте. Подсмотрел однажды где-то и с тех пор использую.
 
snail09:
Смотря как генерировать. Мои генерируются используя символ, тф, и никуда не деваются а нормально подхватываются при рестарте. Подсмотрел однажды где-то и с тех пор использую.

Можно посмотреть на примере как это...
 
snail09:
Смотря как генерировать. Мои генерируются используя символ, тф, и никуда не деваются а нормально подхватываются при рестарте. Подсмотрел однажды где-то и с тех пор использую.

Интересно, приведите код, пожалуйста.
 

Привет всем, еще раз...)

Как сделать что бы объекты (любые) показывались на графике на переднем плане, а НЕ за свечками...? есть функция для этого?

 
OvA:

Привет всем, еще раз...)

Как сделать что бы объекты (любые) показывались на графике на переднем плане, а НЕ за свечками...? есть функция для этого?


На графике нет слоев (имхо), я переключаю на показ баров, но не свечей, со временем привыкнуть можно.
 
icas:

На графике нет слоев (имхо), я переключаю на показ баров, но не свечей, со временем привыкнуть можно.

Ясно, спасибо..

 
Еще, как удалить скрипт с графика?
 

Ну вот примерно. Брал из советника ikatsko. Может автор он, может нет, по стилю на KimIV похоже... Не знаю, но мне понравилось, использую теперь.

MagicNumber=1000+func_Symbol2Val(Symbol())*100+func_TimeFrame_Const2Val(Period());

//+------------------------------------------------------------------+
//| Numeric value for symbol name
//+------------------------------------------------------------------+
int func_Symbol2Val(string symbol) {
     if(symbol=="AUDCAD") {
        return(1);
     } else if(symbol=="AUDJPY") {
        return(2);
     } else if(symbol=="AUDNZD") {
        return(3);
     } else if(symbol=="AUDUSD") {
        return(4);
     } else if(symbol=="CHFJPY") {
        return(5);
     } else if(symbol=="EURAUD") {
        return(6);
     } else if(symbol=="EURCAD") {
        return(7);
     } else if(symbol=="EURCHF") {
        return(8);
     } else if(symbol=="EURGBP") {
        return(9);
     } else if(symbol=="EURJPY") {
        return(10);
     } else if(symbol=="EURUSD") {
        return(11);
     } else if(symbol=="GBPCHF") {
        return(12);
     } else if(symbol=="GBPJPY") {
        return(13);
     } else if(symbol=="GBPUSD") {
        return(14);
     } else if(symbol=="NZDUSD") {
        return(15);
     } else if(symbol=="USDCAD") {
        return(16);
     } else if(symbol=="USDCHF") {
        return(17);
     } else if(symbol=="USDJPY") {
        return(18);
     } else if(symbol=="XAUUSD") {
        return(19);
     } else if(symbol=="XAGUSD") {
        return(20);
     } else if(symbol=="XAUEUR") {
        return(21);
     } else if(symbol=="XAGEUR") {
        return(22);
     } else {
        Comment("unexpected Symbol");
        return(0);
     }
}

//+------------------------------------------------------------------+
//| Time frame interval appropriation function                      |
//+------------------------------------------------------------------+
int func_TimeFrame_Const2Val(int Constant) {
     switch(Constant) {
         case     1: return(1);
         case     5: return(2);
         case    15: return(3);
         case    30: return(4);
         case    60: return(5);
         case   240: return(6);
         case  1440: return(7);
         case 10080: return(8);
         case 43200: return(9);
     }
}
Причина обращения: