Расчет лота по Винсу - страница 5

 
MaxZ:
Либо Я неправильно опять же всё понял, либо результаты прогона советника в тестере первый и второй раз идентичны. С одним лишь "НО": во второй раз советник ещё считает оптимальный параметр f...


Все верно - этот параметр используется для последующего расчета объема лота в торгах. Метод-то - среднего геометрического. См. стр. 31 книжки и у себя в любом сове запустите и попробуйте посчитать.

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

 

Тогда зачем проводить тест ещё раз? Если Мы может в функции deinit() найти самую убыточную сделку, также и количество сделок, а не вбивать эти параметры вручную?? То есть посчитать оптимальное f после первого теста.

Или тестер этого не позволяет сделать?

 
MaxZ:

Тогда зачем проводить тест ещё раз? Если Мы может в функции deinit() найти самую убыточную сделку, также и количество сделок, а не вбивать эти параметры вручную?? То есть посчитать оптимальное f после первого теста.

Или тестер этого не позволяет сделать?


Теоретически позволяет, но ... Реализовать можно по разному. Но это же чистой воды подгонка будет. Нужен расчет не зная будущего
 
Vinin:

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


Дело в том, что это Р.Винс - см. в прицепе постами выше стр. 31-32. Тут уже никак это не обойти - просто взять репрезентативную выборку для любого случая и все, отсюда уже и плясать, причем окрулгять значения макс проигрыша в большую сторону, даже не округлять, а раза в 1,5 увеличивать и все... Здесь все нормально. Сделок - также под 500 и все... уже можно с необходимыми допусками вправо/влево считать оптимальную f.

Вопрос в другом - как избежать переполнения переменной TWR?


 
Roman.:


Дело в том, что это Р.Винс - см. в прицепе постами выше стр. 31-32. Тут уже никак это не обойти - просто взять репрезентативную выборку для любого случая и все, отсюда уже и плясать, причем окрулгять значения макс проигрыша в большую сторону, даже не округлять, а раза в 1,5 увеличивать и все... Здесь все наормально.

Вопрос в другом - как избежать перепелнения переменной TWR?



Ограничивать глубину вычислений
 
Vinin:

Ограничивать глубину вычислений

Это как?
 
Roman.:

Это как?

Я только про количество анализируемых сделок. Реальных или виртуальных
 

Кое что стало вырисовываться - т.к. не важны абсолютные значения переменных, но только их сравнение на больше, меньше при определенном значении f, я по рекомендации MaxZ: первой странички, в этом блоке, добавил корень третьей степени от TWR - считает исправно, без переполнения:

for (f = 0.01; f<=1.0; f=f+0.01)//цикл перебора переменной f для поиска оптимального ее значения,при котором TWR-максимально
     {  
          
          for ( orderIndex = 1;orderIndex<Qnt; orderIndex++) //при заданной f проходим по всем закрытым ордерам
            {                                                // и считаем относительный конечный капитал (TWR)
             TWR = MathPow(TWR*(1+f*(-Mas_Outcome_of_transactions[orderIndex]/(D))),0.33); // TWR - это произведение всех HPR                    
            }
          if (TWR>TWR_Rez) {
              TWR_Rez = TWR;
              G=MathPow (TWR_Rez, 0.001988); // 1/503 сделки по данной торговой системе, как в книжке: в степени 1/N 
              Print(" TWR = ",TWR_Rez," G = ",G, " при f = ", f);} // если текущий TWR > результирующего, 
              else break;    // то результирующий делаем равным текущему, иначе переходим на след итерацию цикла по f                                  
      }      
             
   Print("Закрытых позиций = ", Qnt, " Нетто Профит/лосс = ", SUMM, " У последней ",Qnt, " закрытой позы профит/лосс = ", 
        Mas_Outcome_of_transactions[Qnt]);     
  

В журнале:

 
Vinin:

Я только про количество анализируемых сделок. Реальных или виртуальных


Я делаю все расчеты в тестере по ценам открытия, сделок с 2002 по наст. вр. 2011 - 503, наиб. уб. сделка = -628.

Результаты выше. Сейчас проверяю на других вариантах советников.

Вот текст подхода к решению этой задачи из первоисточника - стр. 31.

Мы увидели, что лучшей торговой системой является система с наивыс­шим средним геометрическим. Для расчета среднего геометрического необ­ходимо знать f. Итак, давайте поэтапно опишем наши действия.

1. Возьмите историю сделок в данной рыночной системе.

2. Найдите оптимальное f, просмотрев различные значения f от 0 до 1. Опти­мальное f соответствует наивысшему значению TWR.

3. После того, как вы найдете f, возьмите корень N-й степени TWR (N — общее ко­личество сделок). Это и есть ваше среднее геометрическое для данной рыночной системы. Теперь можно использовать полученное среднее геометрическое, что­бы сравнивать эту систему с другими. Значение f подскажет вам, сколькими кон­трактами торговать в данной рыночной системе. После того, как найдено f, его можно перевести в денежный эквивалент, разделив наибольший проигрыш на отрицательное оптимальное/. Например, если наиболь­ший проигрыш равен 100 долларам, а оптимальное f = 0,25, тогда -100 долла­ров / -0,25 = 400 долларов. Другими словами, следует ставить 1 единицу на каж­дые 400 долларов счета. Для простоты можно все рассчитывать на основе единиц (например одна 5-долларовая фишка или один фьючерсный контракт, или 100 акций). Количество долларов, которое следует отвести под каждую единицу, мож­но рассчитать, разделив ваш наибольший убыток на отрицательное оптимальное f. Оптимальное f — это результат равновесия прибыльности системы (на основе 1 единицы) и ее риска (на основе 1 единицы). Многие думают, что оптимальная фиксированная доля — это процент счета, который отводится

 
Roman.:

Кое что стало вырисовываться - т.к. не важны абсолютные значения переменных, но только их сравнение на больше, меньше при определенном значении f, я по рекомендации MaxZ: первой странички, в этом блоке, добавил корень третьей степени от TWR - считает исправно, без переполнения:

В журнале:

Я не совсем такие давал рекомендации. Это уже больше Ваш подход. Главное, чтобы он также оказался верным.
Причина обращения: