Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2576

 
Roman Shiredchenko #:

пока все равно пишет 10  11   12


input string smb = "GBPUSD";
int indHandle=INVALID_HANDLE;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   indHandle=iCustom(_Symbol,_Period,"spreads",1,smb,true,1);
   if(indHandle == INVALID_HANDLE)
     {
      Print("Can't load indicator.");
      return INIT_FAILED;
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   double a=GetData(indHandle,0);
   double b=GetData(indHandle,1);
   double c=GetData(indHandle,2);
   Comment(a,"\n",b,"\n",c);
  }
//+------------------------------------------------------------------+
double GetData(const int handle,const int i)
  {
   double res[1];
   if(CopyBuffer(handle,0,i,1,res)<=0) return(0);
   return(res[0]);
  }
//+------------------------------------------------------------------+
 
Tretyakov Rostyslav #:

О! Спасибо огромное - понял. Вечером выкачаю к себе код! 

 

Теоретический вопрос. 

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

Сам вопрос: можно ли сделать чтоб такой робот без сохранения данных в файл или др способом, понимал какие позиции уже были частично закрыты, а какие нет? Даже при деините и ините, к примеру, после переключения тф, на графике где робот.

 
Andrei Sokolov #:
понимал какие позиции уже были частично закрыты, а какие нет?

можно сделать.

а зачем это условие? 

"понимал какие позиции уже были частично закрыты, а какие нет? "

у меня это реализовано при переводе СЛ через модификацию в безубыток.

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

У тех позиций у которых СЛ не переведен в безубыток - те не закрываются частично. Или у каких позиций СЛ = 0;

те тоже не закрываются частично.

 
Andrei Sokolov #:

Теоретический вопрос. 

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

Сам вопрос: можно ли сделать чтоб такой робот без сохранения данных в файл или др способом, понимал какие позиции уже были частично закрыты, а какие нет? Даже при деините и ините, к примеру, после переключения тф, на графике где робот.

можно конечно.

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

остаётся при старте такого советника - просмотреть позиции на тему кто из них частично закрыт.

 
Roman Shiredchenko #:

можно сделать.

а зачем это условие? 

"понимал какие позиции уже были частично закрыты, а какие нет? "

Чтоб не закрыть частично их снова на указанных уровнях.

И по какой логике такое можно сделать?

 
Maxim Kuznetsov #:

можно конечно.

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

остаётся при старте такого советника - просмотреть позиции на тему кто из них частично закрыт.

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

 

Подскажите, почему в функции :

void M(double aaa_1111, double 22222)
(
if.............
)

У меня компилятор ругается на строку оператора if, где указан параметр функции  " 'aaa_1111' - some operator expected "

 
Andrei Sokolov #:

Чтоб не закрыть частично их снова.

И по какой логике такое можно сделать?

посмотрите на такое условие не подойдет? 

закрываете позиции частично на процент и всё при сработке вашего критерия на закрытие. Всё. Как только он сработал - закрываете частично. потом опять сработал - опять эту же ранее закрытую позицию частично - опять закрываете частично.

Потом переходите к следующей  позиции для ее частичного закрытия.

 
Andrei Sokolov #:

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

сложнее, но можно..даже для 4-ки

даже для 3-х закрытий можно

есть-же полная история - её надо просто аккуратно анализировать