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

 
Igor Makanu:

я видел, сомневаюсь, что сумеет все сам распринтовать, поэтому и предложил использовать проверенное закрытие  выделенного ордера  через OrderSelect() с помощью ClosePosBySelect() - это он умеет, п о крайней мере видел как он конструктором себе коды собирает )))

ЗЫ: есть еще подозрение, что он один ордер два раза закрывает, но Кимовская ф-ция принты в журнал напишет        , нет вроде раздельные циклы на закрытия по 2-му условию

:-) Ага.

Artyom Trishkin:

Да понятно, что функции Игоря всё сделают за юзера сами (и то некоторые умудряются и с ними накосячить). Но он тогда сам так ничего и не научится делать. Хотя конечно - их выбор.

Господа - вечером сюда напишу...

Там похоже время жизни счета истекло. Просто ошибка не привычная...

Скрин экрана -  как раз тот.

П.С.    Программировать умею и обучен, если что! :-) это к вопросу сбора кода конструктором!!!!!!!!!!!!!!! :-) 

ППС не поднимайте во мне зверя, плиззззз, тушканчика... :-) 

Я ШАРЮ В КОДЕ И НЕ ТОЛЬКО, В ТОРГАХ - ТОЖЕ!

 
Roman Shiredchenko:

:-) Ага.

Господа - вечером сюда напишу...

Там похоже время жизни счета истекло. Просто ошибка не привычная...

Скрин экрана -  как раз тот.

П.С.    Программировать умею и обучен, если что! :-) это к вопросу сбора кода конструктором!!!!!!!!!!!!!!! :-) 

ППС не поднимайте во мне зверя, плиззззз, тушканчика... :-) 

Я ШАРЮ В КОДЕ И НЕ ТОЛЬКО, В ТОРГАХ - ТОЖЕ!

Много букв. А по делу что? Проверки получения цены нету. И ошибки закрытия позиций по нулевым ценам.

Это к слову об "умею и обучен"

 
Artyom Trishkin:

У него там закрытие по нулевой цене.

Соответственно, нужно контролировать что вернула MarketInfo-функция, а контроля-то нет. Впрочем, как обычно на четвёрке некоторые люди привыкли писать - что-то получил, что - не проверил, но отправил аргументом.

ДА. Я это видел. 

Там похоже, время жизни счета истекло... 

При попытке закрыть вручную - возвращал на экране в окошке - "ОБЩАЯ ОШИБКА".

Раньше - то, похоже ф-ия работала, просто как? проверить не успел. 

Ф-ия написана - грамотно. Да - слипадж в спредах, и чего? 

Вечером сюда выложу ИТОГИ. 

Перезарядил торги на новый счет.

 
Roman Shiredchenko:

Господа - вечером сюда напишу...

Там похоже время жизни счета истекло. Просто ошибка не привычная...

не тот! зачем мне гадать, что за ошибка если Вы в принты это распечатали? - или вопрос изначально был к телепатам?...нет, к тушканчикам? )))


Roman Shiredchenko:

При попытке закрыть вручную - возвращал на экране в окошке - "ОБЩАЯ ОШИБКА".

да может торговый поток быть занят, может Вас реквотят, вот и гадайте - общая ошибка вообще что хошь может значить - на инсте в том году такая же "шляпа" была, ордера ровно по 5 минут закрывал - а код как положено со всеми проверками и принтами ;)

 
Artyom Trishkin:

Много букв. А по делу что? Проверки получения цены нету. И ошибки закрытия позиций по нулевым ценам.

Это к слову об "умею и обучен"

да потому что уже пишу с листа в ворде - гуд. сразу. НАБЕЛО.

Доступа к терминалу - нет. Вечером по мск будет - сюда напишу.

 
Igor Makanu:

не тот! зачем мне гадать что за ошибка если Вы в принты это распечатали? - или вопрос изначально был к телепатам?...нет, к тушканчикам? )))

О! Это уже лучше - улыбочек больше... :-) 

Да. Принты не распечатал с вкладки "ЭКСПЕРТЫ"... точно. Там просто много всего было... не успел. 

 
Igor Makanu:

не тот! зачем мне гадать, что за ошибка если Вы в принты это распечатали? - или вопрос изначально был к телепатам?...нет, к тушканчикам? )))


да может торговый поток быть занят, может Вас реквотят, вот и гадайте - общая ошибка вообще что хошь может значить - на инсте в том году такая же "шляпа" была, ордера ровно по 5 минут закрывал - а код как положено со всеми проверками и принтами ;)

ясно.  :-)

ПС Вечером сюда выложу - результат.

 
 #property  indicator_chart_window
#property  indicator_buffers 1
#property  indicator_plots 1
#include  "Includes//Symbol.mqh"
enum price_types
  {
   Bid,
   Ask
  };
input datetime start_date = D'2019.10.07 00:00:00' ;
input int Chops = 10 ;
input price_types applied_price= 0 ; //Price
int data_filled = 0 ;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string symbol_custom= StringFormat ( "%s_%dsec" , _Symbol ,Chops);
long chart_id = 0 ;
datetime start;
void OnInit ()
  {
//CustomSymbolDelete(symbol_custom);
   start=start_date- 60 ;
   Print ( "Ticks History Deleted : " , CustomTicksDelete (symbol_custom, 0 , LONG_MAX ));
   data_filled = 0 ;

   const SYMBOL SYMB(symbol_custom);
   SYMB.CloneProperties( _Symbol );
   SYMB.On();
   MqlTick ticks_add[];
   int len = CopyTicksRange ( _Symbol ,ticks_add, COPY_TICKS_INFO , ulong (start_date)* 1000 , ulong ( TimeCurrent ())* 1000 );
   Print ( "Ticks: " ,len);
   start = start - (len* 60 );
   Print ( "Start Date : " ,start);
   for ( int i= 0 ; i<len && ! IsStopped (); i++)
     {
       if (data_filled%Chops== 0 )
        {
         start = start+ 60 ;
         start = datetime ( TimeToString (start, TIME_DATE )+ " " + TimeToString (start, TIME_MINUTES )+ ":00" );
        }
       else
        {
         start++;
        }
      ticks_add[i].time = start;
      ticks_add[i].time_msc = long (ticks_add[i].time)* 1000 ;
      data_filled++;
     }
//Print(SYMB.CloneTicks(ticks_add));
   Print ( CustomTicksAdd (symbol_custom,ticks_add));
   chart_id = ChartOpen (symbol_custom, _Period );
   Print ( GetLastError ());
  }
void OnDeinit ( const int r)
  {
   if (chart_id != 0 )
     {
       ChartClose (chart_id);
     }
   return ;
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
   if (rates_total <= 0 )
       return 0 ;
   MqlTick ticks[ 1 ];
   CopyTicks ( _Symbol ,ticks, COPY_TICKS_INFO , ulong ( TimeCurrent ())* 1000 , 1 );
   if (data_filled%Chops== 0 )
     {
      start = start+ 60 ;
      start = datetime ( TimeToString (start, TIME_DATE )+ " " + TimeToString (start, TIME_MINUTES )+ ":00" );
     }
   else
     {
      start++;
     }
   Print (start);
   ticks[ 0 ].time = start;
   ticks[ 0 ].time_msc = long (start)* 1000 ;
   data_filled++;

   Print ( CustomTicksAdd (symbol_custom,ticks));
   Print ( GetLastError ());

   return (rates_total);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

Почему галочки не добавляются в мой пользовательский персонаж?

Файлы:
Symbol.mqh  7 kb
 
Igor Makanu:

ошибка какая? скрин не тот

в теории должно работать, но не встречал такого изощренного закрытия с учетом спреда и прикручивать это в качестве проскальзывания - имхо, если решили закрывать, то проскальзование не самое важное за чем следить, ошибки закрытия важнее, то реквоты, то вообще связь пропадает


уберите OrderClose(....) и вместо него  Кимовскую ClosePosBySelect() https://www.mql5.com/ru/forum/131859/page2#comment_3359664

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

Artyom Trishkin:

У него там закрытие по нулевой цене. Соответственно, нужно контролировать что вернула MarketInfo-функция, а контроля-то нет. Впрочем, как обычно на четвёрке некоторые люди привыкли писать - что-то получил, что - не проверил, но отправил аргументом.

Коллеги, от души Вас благодарю за своевременную помощь в коде, тут без шуток, всегда мне ранее помогали и помогаете.

Все ф-ии с прошлой странице по закрытию сделок работают исправно. Тут была проблема в завершении периода демо-счета, поэтому и не было закрытия по условиям, включая нулевые цены...

Счет обновил, тесты продолжаю.

 
jaffer wilson :

Почему галочки не добавляются в мой пользовательский персонаж?

@ Артём Тришкин

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

Причина обращения: