Мы запускаем облачный сервис MQL5 Cloud Network! - страница 83

 
Urain:

ЗЫ опять же к моему посту выше, к вопросу калибровочного запуска, на самом деле такой калибровочный запуск можно делать на стадии компиляции и прописывать эту инфу прямо в байт код, ведь компилер всё равно делает оптимизацию кода, вот пусть за одно и посчитает необходимое количество затрат процессора, тем самым сам ex5 файл будет хранить инфу сколько он стоит процессору. А дальше дело техники, пересчитать стоимость на количество проходов.

А средняя с периодом 200 и с периодом 1500 считается за одинаковое время или нет? А если период средней является параметром оптимизации? А если это не средняя, а что-то потяжелее? 

Но введение какого-то лимита трат (например, перед запуском оптимизации)  поддерживаю.

 
notused:

А средняя с периодом 200 и с периодом 1500 считается за одинаковое время или нет? А если период средней является параметром оптимизации? А если это не средняя, а что-то потяжелее? 

Но введение какого-то лимита трат (например, перед запуском оптимизации)  поддерживаю.

Компилятор делает работу по оптимизации кода,

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

Или вы думаете что весь ваш объектный код так и подаётся процессору как объектный?

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

Такая задача сложна лишь когда нет доступа к низкоуровневому языку (как у конечного программиста), разработчики из MQ тут имеют преимущество.

 
Urain:

Компилятор делает работу по оптимизации кода,

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

Или вы думаете что весь ваш объектный код так и подаётся процессору как объектный?

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

Такая задача сложна лишь когда нет доступа к низкоуровневому языку (как у конечного программиста), разработчики из MQ тут имеют преимущество.

зачем определять стоимость проходки техническими методами (анализ кода, параметры прогонов,...) когда можно предоставить это рынку?


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


Если человек указал что ему нужна полная загрузка и он за это готов в 3 раза скинуть цену, люди могли бы "тестироваться" у него...

Цена может быть определеная статистически по данным за неделю/месяц и текущей обстановке ... Формулу по которой ее расчитывать может написать даже студент...  

 

 

Посмотрите на Маркет на этом же сайте.. Цену определяют по принципу кто меньше запросит.. А ведь тут же еще и качество работы имеет значение... Опыт и репутация програмиста.

А когда речь идет об агентах, качество гарантированo, и цена должна понижаться в зависимости от степени голодности (или зажиточности) людей которые расшаривают агенты :)


Я вообще готов отдать свои агенты почти бесплатно с полной загрузкой, мне не жалко - в часы когда я на работе... :) 

 
speedy:

зачем определять стоимость проходки техническими методами (анализ кода, параметры прогонов,...) когда можно предоставить это рынку?


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


Если человек указал что ему нужна полная загрузка и он за это готов в 3 раза скинуть цену, люди могли бы "тестироваться" у него...

Цена может быть определеная статистически по данным за неделю/месяц и текущей обстановке ... Формулу по которой ее расчитывать может написать даже студент...  

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

Я же говорил о том чтоб пользователь ресурсов мог до начала иметь ориентировочное представление во сколько ему обойдётся оптимизация конкретного советника.

 
Urain:

Компилятор делает работу по оптимизации кода,

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

Да, считаю, и считаю, что это невозможно в общем случае.

 Интересно, как должен компилятор оценить трудозатраты следующего кода:

int x, y, z, t, t1, t2;
int _= 0;
int __= (int)(1.0 / mult) + 1;

if (pr_count != -1) {
         for (x= 0; x <__; x++) {
            for (y = 0; y <__; y++) {
               for (z = 0; z <__; z++) {
                  for (t1 = 0; t1 <__; t1++) {
                    for (t2 = 0; t2 <__; t2++) {
                        if (t2 + x + y + z + t1 == __-1) {
                            _++;
                            if (pr_count == _)                         
                                 break;
                        }
                     }
                     if (pr_count == _) break;
                  }
                  if (pr_count == _) break;
               }
               if (pr_count == _) break; 
            }
            if (pr_count == _) break;
         } 
   }        
mult  и pr_count - входные параметры. При этом компилятор даже не догадывается, какой диапазон этих параметров

 

 
notused:

Да, считаю, и считаю, что это невозможно в общем случае.

 Интересно, как должен компилятор оценить трудозатраты следующего кода:

mult  и pr_count - входные параметры. При этом компилятор даже не догадывается, какой диапазон этих параметров

 

ну и что стоит их оставить переменными и вычислять налету при запросе?
 

Господа теоретики забывают, что один проход ничего не определяет. Очень многое зависит от входных параметров. Один набор параметров - эксперт быстренько слил и закончился стоп аутом. Другой набор параметров - эксперт нисколько не торговал. Третий набор параметров - эксперт торговал долго и вдумчиво.

Как выбрать эталонный набор параметров?

Как выбрать эталонного агента для замера времени выполнения?

Предсказание цены на основе одного-двух-трёх проходов даст такую погрешность, что мама не горюй.

Поэтому я и говорю, что сравнение с магазином неуместно. Предсказание цены возможно только на основе репрезентативной выборки. Кто-нибудь может сказать, когда эта самая репрезентативность наступает? На 10 процентах, на 20 процентах выполнения, на скольки? А если параметр, сильно влияющий на время выполнения, перебирается последним среди десятков? "Извините, после 90 процентов выполнения оптимизации мы выяснили, что наш прогноз оказался неточным, вы должны заплатить в два раза больше"

 

Это не отмазки, а попытка диалога. Я задал 2 конкретных вопроса, чтобы обсудить. Не хотите, не надо.

А о сложностях реализации я не сказал ни слова.

 
Urain:
ну и что стоит их оставить переменными и вычислять налету при запросе?

Приведённый выше код решает задачу x + y + z + t1 + t2 = 1, c кратностью переменных mult. И этот код был приведён не зря. В зависимости от входных переменных, код исполняется от нескольких милисекунд до нескольких минут (а то и больше). Знать стоимость заранее невозможно, оценить затраты также невозможно, а заниматься хиромантией разработчикам не нужно - у них итак много интересных задач, решения которых мы ждём. 

Но какую-то информацию всё-таки хотелось бы получить, поэтому было-бы не плохо реализовать две вещи:

1) ограничение суммы на оптимизацию (например, хочу потратить не более $1) со стороны клиента;

2) прогноз затрат на основе уже произведённых (аналогично прогнозу времени) + большими буквами "ПРОГНОЗ", чтобы небыло вопросов. 

 

И ещё вопрос ко всем заинтересованным. А сколько вы уже потратили денег на оптимизацию, что вас взволновал вопрос "сколько будет стоить очередная оптимизация"?

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