Ошибки, баги, вопросы - страница 796

 
marketeer:
Хорошо. Возможно перед началом оптимизации увидеть в МТ примерную стоимость агентов? Сейчас получается, что запускаешь оптимизацию - и понятия не имеешь, сколько денег снимут.

Посмотрите вопросы и ответы по оплате, можно оценить примерную стоимость:

Какова стоимость одной единицы PR в единицу времени?

Стоимость работы агента тестирования с PR=100 в течение часа установлена в размере 0,01 кредита. За единицу работы принимается один квант, который определен как работа агента с PR=1 в течение 1 ms (1 миллисекунды). Таким образом, стоимость одного кванта составляет:

   QuantPrice=0,01 кредит/(100PR*3 600 000 ms)=2,77778E-11  [кредиты/(PR*ms)]

В таблице представлены стоимость непрерывной работы в течение 1 часа и в течение 1 месяца одноядерного агента тестирования с PR=100.

 Интервал QuantPrice, кредит/(PR*ms)PR агента
 Time, ms Сумма, кредиты
1 час
2,77778E-11100
3 600 000
0.01
1 месяц
2,77778E-11100
2 592 000 0007.20


Оптимальное количество агентов тестирования равно количеству ядер. Если компьютер имеет процессор с 4 ядрами, то по умолчанию установится 4 агента, соответственно стоимость будет в 4 раза больше.


Аренда 100 агентов с PR рейтингом 100 в течение часа обойдется в 1.00 кредит/доллар.

Вопросы по оплате в сети распределенных вычислений MQL5 Cloud Network
Вопросы по оплате в сети распределенных вычислений MQL5 Cloud Network
  • cloud.mql5.com
Вопросы по оплате за участие в сети распределенных вычислений MQL5 Cloud Network.
 
Renat:

Посмотрите вопросы и ответы по оплате, можно оценить примерную стоимость:

Какова стоимость одной единицы PR в единицу времени?


Могу я видеть PR моих локальных агентов, чтобы оценить быстродействие одного прохода тестирования при PR100? Может ли МТ5 сам сделать такой проход и оценить затраты?
 
marketeer:
Могу я видеть PR моих локальных агентов, чтобы оценить быстродействие одного прохода тестирования при PR100? Может ли МТ5 сам сделать такой проход и оценить затраты?
Оценку сделать можно, мы подумаем над этим.
 

Рябята - гляньте индикатор. Не рисует. Перевожу код с 4-ки на 5-ку. Уже чемп на носу - боюсь не успеть...

Вроде всё грамотно делаю. На 4-ке всё рисует, как надо.

Ставлю на график валютной  пары EURUSD на Н1.

Индикаторы в прицепе. Описание на этой и следующей странице.

Свежие мои  правки кода в прицепе.

Благодарю.

Файлы:
 

Не смог через поиск по форуму найти ответ на следующий вопрос.

Есть ли возможность отладки в режиме тестирования? Т.е. я в тестере стратегий запускаю советника на тестирование, расставляю точки останова и пошагово могу отлаживать советник через тестер стратегий.

Если есть, то как этим пользоваться?

Если нет то стоит ли в планах реализовать эту возможность?

 
BZSP:
Как возможна отладка с точками останова см. в этой статье.
 
BZSP:

Не смог через поиск по форуму найти ответ на следующий вопрос.

Есть ли возможность отладки в режиме тестирования? Т.е. я в тестере стратегий запускаю советника на тестирование, расставляю точки останова и пошагово могу отлаживать советник через тестер стратегий.

В тестере отладка недоступна
 

Периодически (редко) возникает ошибка

2012.08.04 16:23:13     Core 1  tester agent synchronization error
Хотя  оба локальных агента в ready
 
R0MAN:

Рябята - гляньте индикатор. Не рисует. Перевожу код с 4-ки на 5-ку. Уже чемп на носу - боюсь не успеть...


Это оно?


У меня два вопроса

- зачем вы изменили в коде расчет от четверошного

- Что показывает этот индикатор?  как по нем торговать?

 
sergeev:

Это оно?


У меня два вопроса

- зачем вы изменили в коде расчет от четверошного

- Что показывает этот индикатор?  как по нем торговать?

Оно.

- я не менял. Всё переносил один в один. Там вместо ф-ий в коде четвёрки использую сразу значения ранее расчитанных массивов МА от медленной и быстрой скользящей средней по ОПЕН, КЛОЗЕ, ХАЙ, ЛОУ в пятёрке, опять же домножая на соответствующие коэффициенты инструментов.

Например, ИТОГОВЫЙ  код четвёрки:

if (Symbol() == "EURUSD"){
               OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-USD(Mode,PRICE_OPEN,i,per1,per2);
               HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-USD(Mode,PRICE_HIGH,i,per1,per2);
               LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-USD(Mode,PRICE_LOW,i,per1,per2);
               CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-USD(Mode,PRICE_CLOSE,i,per1,per2);
...
 pair[i]=(OPEN+HIGH+LOW+CLOSE)/4;

Вот одна из ф-ий EUR, я вместо неё использую в пятёрке (см. ниже) - сразу расчёт по формулам внутри неё. Всё бьёт один в один:

double EUR(int Mode, int Price, int i, int per1, int per2){
   return(
            (iMA("EURUSD",0,per2,0,Mode,Price,i)-
            iMA("EURUSD",0,per1,0,Mode,Price,i))*10000*kUSD
            +
            (iMA("EURGBP",0,per2,0,Mode,Price,i)-
            iMA("EURGBP",0,per1,0,Mode,Price,i))*10000*kGBP
            +
            (iMA("EURJPY",0,per2,0,Mode,Price,i)-
            iMA("EURJPY",0,per1,0,Mode,Price,i))*100*kJPY
          ); 

 

 

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

if (Symbol() == "EURUSD")
        {     
// ----  OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-USD(Mode,PRICE_OPEN,i,per1,per2);          
         OPEN=((OPEN_F_EURUSD[i]-OPEN_S_EURUSD[i])*10000*kUSD+(OPEN_F_EURGBP[i]-OPEN_S_EURGBP[i])*10000*kGBP+(OPEN_F_EURJPY[i]-OPEN_S_EURJPY[i])*100*kJPY -
               (OPEN_S_EURUSD[i]-OPEN_F_EURUSD[i])*10000*kEUR+(OPEN_S_GBPUSD[i]-OPEN_F_GBPUSD[i])*10000*kGBP+(OPEN_F_USDJPY[i]-OPEN_S_USDJPY[i])*100*kJPY);
               
// ----  HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-USD(Mode,PRICE_HIGH,i,per1,per2);              
         HIGH=((HIGH_F_EURUSD[i]-HIGH_S_EURUSD[i])*10000*kUSD+(HIGH_F_EURGBP[i]-HIGH_S_EURGBP[i])*10000*kGBP+(HIGH_F_EURJPY[i]-HIGH_S_EURJPY[i])*100*kJPY -
               (HIGH_S_EURUSD[i]-HIGH_F_EURUSD[i])*10000*kEUR+(HIGH_S_GBPUSD[i]-HIGH_F_GBPUSD[i])*10000*kGBP+(HIGH_F_USDJPY[i]-HIGH_S_USDJPY[i])*100*kJPY);
               
// ----  LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-USD(Mode,PRICE_LOW,i,per1,per2);
         LOW=((LOW_F_EURUSD[i]-LOW_S_EURUSD[i])*10000*kUSD+(LOW_F_EURGBP[i]-LOW_S_EURGBP[i])*10000*kGBP+(LOW_F_EURJPY[i]-LOW_S_EURJPY[i])*100*kJPY -
               (LOW_S_EURUSD[i]-LOW_F_EURUSD[i])*10000*kEUR+(LOW_S_GBPUSD[i]-LOW_F_GBPUSD[i])*10000*kGBP+(LOW_F_USDJPY[i]-LOW_S_USDJPY[i])*100*kJPY);
               
// ---   CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-USD(Mode,PRICE_CLOSE,i,per1,per2);
         CLOSE=((CLOSE_F_EURUSD[i]-CLOSE_S_EURUSD[i])*10000*kUSD+(CLOSE_F_EURGBP[i]-CLOSE_S_EURGBP[i])*10000*kGBP+(CLOSE_F_EURJPY[i]-CLOSE_S_EURJPY[i])*100*kJPY -
               (CLOSE_S_EURUSD[i]-CLOSE_F_EURUSD[i])*10000*kEUR+(CLOSE_S_GBPUSD[i]-CLOSE_F_GBPUSD[i])*10000*kGBP+(CLOSE_F_USDJPY[i]-CLOSE_S_USDJPY[i])*100*kJPY);
         }
      
      pair[i]=(OPEN+HIGH+LOW+CLOSE)/4;    

 

 

 

- Кумулятивный (совокупный) эффект от движения нескольких инструментов, берутся разности  быстрой и медленной МА инструментов от OPEN,  HIGH, LOW, CLOSE. Суммируются между собой и делятся на четыре с учётом коэффициентов множителей разностей быстрой и медленной МА  инструментов, также подляжащих оптимизации.

Торговать: 1.  по пересечению линии нуля + Different (расстояние от нуля для фильтрации ложных входов) снизу вверх, то бай, сверху вниз, то в селл. См. эксперт в прицепе. 

                 2. по перегибам линии: если ниже нуля перегиб,  то в бай, если выше нуля перегиб этой совокупной линии разностей МА инструментов, то в селл (этого варианта в сове пока нет).  

Хочу или первый или второй вариант задействовать на чемпионате.

Файлы: