Мой подход. Ядро - Движок. - страница 89

 
Реter Konow:

Продемонстрируй рабочий пример. 

Чтобы через union можно было перевести ВСЕ типы (в том числе и string) в uint .

Иначе, это пустые слова.

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

А изучить самому и сделать не можется?

Вам всё разжевали, дали, показали.

Выделенное мною со стороны выглядит как - действительно сказал Николай - детский сад: "А слабо..., а мой папа твоему наваляет, а моя мама мамее твоей..."

 
Реter Konow:

Значит покажите свой пример. Как множество данных различных типов, в обход перевода в строку, превратить в uint через union чтобы сохранить в ресурсе?

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

 
Artyom Trishkin:


Это спор. 

Я предложил решение. Его все охаили, а свое не показали. Мол, "иди смотри код fxsaber, иди справку читай...".

Аууу. Ребята.)))

 
Реter Konow:

Это спор. 

Я предложил решение. Его все охаили, а свое не показали. Мол, "иди смотри код fxsaber, иди справку читай...".

Аууу. Ребята.)))

Это не спор. Это разнос вашего интуитивного решения.

Не спорю, можно посадить дерево в горшке вверх-тормашками, выдумать систему его полива, систему накапливания дождевой воды и разбрызгивания её в перевёрнутый горшок, систему удержания земли в этом перевёрнутом горшке, систему освещения снизу-вверх, и утверждать, что такое интуитивное решение самое правильное и наиболее эффективное, а когда люди вам говорят - гляньте в окно, и не компостируйте всем мозг - там - за окном - есть живые примеры как лучше, вы, раскуривая трубку на атласных подушках, вещаете что-то из области "поднимите мне веки - не вижу, покажите, а то всё это пустые слова"... Простите, выглядит забавно.

Пойду за попкорном сгоняю

 

Главный вопрос остался без их ответа:

Как множество данных различных типов, в обход перевода в строку, превратить в uint через union, чтобы сохранить в ресурсе?


Уважаемые Оппоненты. Вы охаили мое решение, ссылаясь именно на использование UNION для перевода ВСЕХ данных в UINT.


ПРИМЕР НЕ БЫЛ ПРЕДОСТАВЛЕН. ПОКА ВСЕ ГОЛОСЛОВНО.


Следовательно, пока остается один вывод: Мое решение было охаено, по предубеждениям, которые присущи программистам.  

Если решение будет продемонстрировано, значит, оно несомненно лучше. Я это сразу признаю.

 
Реter Konow:

Это спор. 

Я предложил решение. Его все охаили, а свое не показали. Мол, "иди смотри код fxsaber, иди справку читай...".

Аууу. Ребята.)))

Петер, а я тебе уже не раз говорил - проблема твоего подхода в крайней узости целевой аудитории. У тебя даже не "нишевый" продукт, а просто "щелевой" - люди, которые неплохо разбираются в программировании, но предпочитающие торговать "руками".

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

А тебе нужны другие - реальные трейдеры, которые торгуют руками. При этом - неплохо разбирающиеся в программировании. Способные написать простого советника, но которым трудно разобраться в работе с графическими объектами.  И пока я таких как-то не наблюдаю. Потому-то твои наработки не пользуются успехом, а постоянно подвергаются критике. Не та аудитория !  

Ты говорил, что-то вроде того, что "надо их воспитать" - но тогда тебе точно надо демонстрировать достижения в трейдинге - как минимум, демо-счет с постоянным ростом Эквити, который получается путем этой самой "ручной" торговли с применением визуальных объектов из твоей библиотеки.
 

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

Параметры ВСЕХ типов. И стринг тоже. Значений которые нужно передать - целые массивы. 

  1. Либо переводить все в строку и записывать в описании объектов.
  2. Либо переводить все в строку, разбивать и частями передавать через OnChartEvent().
  3. Либо переводить все в строку и переводить в char и сохранять в ресурсе.
  4. Либо все переводить через union в uint и сохранять в ресурсе.

Вопрос:

  1. Что из этого быстрее всего работает?
  2. Что из этого вообще не работает?

ЗЫ. Есть подозрение, что пункт 4 не работает вообще.

 
Georgiy Merts:

Петер, а я тебе уже не раз говорил - проблема твоего подхода в крайней узости целевой аудитории. У тебя даже не "нишевый" продукт, а просто "щелевой" - люди, которые неплохо разбираются в программировании, но предпочитающие торговать "руками".

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

А тебе нужны другие - реальные трейдеры, которые торгуют руками. При этом - неплохо разбирающиеся в программировании. Способные написать простого советника, но которым трудно разобраться в работе с графическими объектами.  И пока я таких как-то не наблюдаю. Потому-то твои наработки не пользуются успехом, а постоянно подвергаются критике. Не та аудитория !  

Его аудитория есть. Только на других сайтах. Видел один сайт, вернее мне его подсказал один из моих заказчиков - так там с щенячьим восторгом разбирали код одного из моих экспертов, который я писал на заказ, и заказчик (не тот, который мне подсказал адрес этого обсуждения) потом его там выложил с просьбой дописать бесплатно новые хотелки. Люди от стандартных подходов просто офигевали. Вот там - среди той школьной аудитории - Петр сможет почесать своё эго - там он богом будет.

 
Реter Konow:

Как множество данных различных типов, в обход перевода в строку, превратить в uint через union чтобы сохранить в ресурсе?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: TradeTransactions

fxsaber, 2018.12.17 23:48

Можно обмениваться чем угодно через Ресурсы.

// Пример обмена любыми данными (включая строковые массивы).

#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/ru/code/22166

#define PRINT(A) Print(#A + " = " + (string)(A));

void OnStart()
{    
  // Произвольные данные для примера
  string Str[] = {"123", "Hello World!"};
  double Num = 5;
  MqlTick Tick = {0};
  Tick.bid = 1.23456;

  const RESOURCEDATA<uint> Resource; // Ресурс для обмена данными
  CONTAINER<uint> Container;         // Создаем контейнер - все будет храниться в массиве простого типа (в примере выбран uint)
  
  // Заполняем контейнер разными данными
  Container[0] = Str;
  Container[1] = Num;
  Container[2] = Tick;
    
  // Распечатаем типы хранимых в контейнере данных
  for (int i = 0; i < Container.GetAmount(); i++)
    PRINT(Container[i].GetType())

  Resource = Container.Data;  // Отправили данные на обмен
  
  CONTAINER<uint> Container2; // Сюда будем получать данные
  
  Resource.Get(Container2.Data); // Получили данные
      
  // Получим данные в исходном виде
  string Str2[];
  Container[0].Get(Str2);                // Получили массив
  ArrayPrint(Str2);

  PRINT(Container[1].Get<double>())      // Получили число
  PRINT(Container[2].Get<MqlTick>().bid) // Получили структуру  
}
 
Реter Konow:

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

Параметры ВСЕХ типов. И стринг тоже. Значений которые нужно передать - целые массивы. 

  1. Либо переводить все в строку и записывать в описании объектов.
  2. Либо переводить все в строку, разбивать и частями передавать через OnChartEvent().
  3. Либо переводить все в строку и переводить в char и сохранять в ресурсе.
  4. Либо все переводить через union в uint и сохранять в ресурсе.

Вопрос:

  1. Что из этого быстрее всего работает?
  2. Что из этого вообще не работает?

ЗЫ. Есть подозрение, что пункт 4 не работает вообще.

Штатно для обмена данными между советниками, индикаторами, скриптами есть только и исключительно GlobalVariables и файлы

все приведённых 4 пункта это местные "хаки" от безрыбья. Все приведённые 4 пункта используют механизмы не предназначенные для обмена произвольными данными, а тем более массивами данных.

п1. 100% приводит к временному локированию интерфейсного потока (ога, объекты живут там и их "описания" тоже) и не работает в оптимизаторе. Описания объектов служат для human-readable описания объектов, 

п2. не работает в тестере и оптимизаторе и служит для оповещения о событиях

п3. п4. ресурсы (даже по имени) предназначены для долговременного хранения а не "обмена побыстрому". Про работоспобность в тестере/оптимизаторе нчего не скажу :-) Использую ресурсы как read-only

говорить о быстродействии кривых решений не имеет смысла.

ps/ кстати можете использовать файлы, а точнее pipes