0
Да, это уже рабочий вариант, но с огрехами.
Советник перетянул на график, на котором уже были размещены 10 линий.
Четыре из них советник не переименовал.


У некоторых линий подписи при добавлении/удалении линий не удаляются, а новые ставятся поверх


Соответственно, после удаления линии остаётся какая-то текстовка.
Но это самое безобидное, ерунда.

Вот то, что не все линии переименовываются, это печально.
avatar

ShamanHand

  • 29 августа 2019, 19:32
0
Андрей, при помещении на график терминал наглухо виснет.
От слова «совсем».
Если есть хоть одна линия — терминал виснет при перетаскивании на график индикатора.
Если закинуть на график без линий, всё нормально, но если затем хоть одну линию добавить — терминал виснет.
Что-то где-то пошло не так…
Кроме того, я просил это в советнике сделать, не в индикаторе.
avatar

ShamanHand

  • 28 августа 2019, 23:01
0
Отлично!
Только обратите внимание на небольшое изменение в ТЗ.
avatar

ShamanHand

  • 27 августа 2019, 19:16
0
вот такой алгоритм я представляю как сделать: над ценой пишем хай + пункты до текущей цены. также с лоу.

Прекрасно! Если возможно такое реализовать — замечательно, очень даже подходит.
Но важно, чтобы не только над линией была надпись, а и сама линия аналогично именовалась.

C расстоянием до текущей цены действительно даже интересней выходит. Как-то я сам не подумал, спасибо.

Но хотел бы тогда внести небольшое изменение в техзадание.
Не надо переименовывать при каждом тике.
По сути-то нужно вообще выполнять функцию переименования только при добавлении/удалении объектов.
Надо считать объекты — линии, их количество через ObjectsTotal (Вызываем тотал и сверяем с глобальной), и, если оно изменится, то вызывать функцию переименования.
Т.е. пишем в глобальную переменную крайнее значение количества обьектов, при каждом тике вызываем тотал и сверяем с глобальной, и, если значение отличается, то переименовываем линии и обновляем значение глобальной переменной.
avatar

ShamanHand

  • 27 августа 2019, 18:22
0
*shock* Это чё в натуре за подстава блудняковая?*pontorez* 
Нашёл на кого косяк скинуть, если вдруг чё не выгорит?
Ну так-то это не по-пацаноффски…
avatar

ShamanHand

  • 5 августа 2019, 13:21
0
Всё верно. Именно это и имелось в виду.
А вообще, летом на рынке в большинстве случаев затишье, так что к концу лета как раз возвращать конкурс.
На вялотекущей гонорее без движняков сему конкурсу делать нечего.
avatar

ShamanHand

  • 5 августа 2019, 12:25
0
Не в деньгах дело, а в азарте, ажиотаже, спортивном интересе.
*za* 
avatar

ShamanHand

  • 5 августа 2019, 10:42
0
Ну вообще-то это действительно не так. Поэтому доказывать не нужно. Ибо бесссссмыссссленннно.
Вот волновой анализ — это чушь на постном масле, потому и 50/50.
А смысл есть очень даже много где.
Вам надо пруфов? Их есть у нас.
Пруф самый надёжный — статистика.
Вот казалось бы, влияние лунных фаз на торговлю, что может быть глупее?
Ан нет, вот вам и суть, и статистика, никаких 50/50.
avatar

ShamanHand

  • 18 июля 2019, 20:08
0
Похоже, лучше всё же делать без дурных библиотек, а через простое создание объектов.
Кода меньше, всё понятней.
avatar

ShamanHand

  • 17 июля 2019, 19:23
0
Ха! Есть такое)))
Только что испытал)))
Вот как надо:

Вот как при переключении таймфреймов:


Всё работает, всё нормально, но при переключении ТФ реально рассыпается)))

Короче, беда с этой библиотекой, при перходе из ТФ в ТФ множит объекты как из пулемёта, в чём можно убедиться, посмотрев кол-во объектов на графике.
Увы, вот самый приемлемый вариант, через указатель:
CTradePanel *TradePanel;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
  TradePanel = new CTradePanel();

   if(!TradePanel.Create(ChartID(),"Put_LIne",0,20,20,150,200))
     return(INIT_FAILED);

   if(!TradePanel.Run())
     return(INIT_FAILED);

   return(INIT_SUCCEEDED); 
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  if(UninitializeReason()!=REASON_CHARTCHANGE)
  {
  delete(TradePanel);
   TradePanel.Destroy(reason);
   }
  
  }

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

ShamanHand

  • 17 июля 2019, 11:45
0
Тут вопрос о тестере стратегий, в котором данная настройка отсутствует.
Разрешение использования библиотек проставляется лишь при забрасывании советника на график.
avatar

ShamanHand

  • 2 июля 2019, 06:34
0
Так всё же «Keltner.dll» или «Kernel32.dll»?
«Kernel32.dll» — стандартная виндовская библиотека, в числе прочего резервирующая память под приложения.
Если приложение (в данном случае терминал) ругается на эту библиотеку, то либо винда «кривит», либо терминал можно попробовать переустановить, либо программисты брокера, переделывая терминал под себя, напортачили. Наверное. Исходя банально из Вашего заявления, что это только у этого брокера и не только у Вас.
Если бы это касалось вызываемой dll-ки, содержащей кусок кода, время от времени используемый советником, то это нереально, т.к. на работу кода внутри dll-ки терминал влиять никак не может.
avatar

ShamanHand

  • 1 июля 2019, 07:29
0
Во-первых, для конкретики скрин ошибки в студию<img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; '>&nbsp; '>&nbsp; '>&nbsp; '>&nbsp; 
Во-вторых, проверьте наличие указанной динамически подключаемой библиотеки «Keltner.dll » в подпапке установленного терминала MetaTrader\MQL4\Libraries.
Хотя вообще, конечно, странно, т.к. в коде советника указаны лишь пара стандартных виндовских библиотек.
avatar

ShamanHand

  • 29 июня 2019, 16:27
0
В первую очередь смотрите журнал.
Вот коды ошибок.
Одна из самых распространённых — 131 Неправильный объем, когда трейдер неверно лот рассчитывает.
Обратите внимание на тип счёта.
Кроме того, программист сего ресурса уже как-то писал топик по наиболее распространённым ошибкам: Разберем самые часто встречающиеся ошибки на MQL4
Но эта статья уже для программистов.
avatar

ShamanHand

  • 29 июня 2019, 10:46
0
Приветствую!
Можно поподробней? Как себя ведёт? Ордера не выставляет? В журнале ошибки какие-то есть?
avatar

ShamanHand

  • 29 июня 2019, 10:27
+1
*bildbody* Во мощь интеллекта!
Я даже понял половину*crazy* 
Тут Бишопа надо, он игруноведение изучал.*neo* 
avatar

ShamanHand

  • 27 июня 2019, 12:30
Начать торговлю с Альпари