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

 
MaxZ:

А где Вы находите Наибольший_пройгрыш?? Ааа... Вы же его умышленно Сами задаёте.


Нет - наибольший проигрыш находится в отчете после тестирования включая форвард

После чего снова запускаем тест на этом же периоде с введенным значением переменной D во внешних переменных, считаем в де-ините f,

далее, зная f считаем объемы лотов и ставим на демо-счет.

 
Roman.:


Нет - наибольший проигрыш находится в отчете после тестирования включая форвард

После чего снова запускаем тест на этом же периоде с введенным значением переменной D во внешних переменных, считаем в де-ините f,

далее, зная f считаем объемы лотов и ставим на демо-счет.


Это ж обычная подгонка. И оно Вам надо?
 
Vinin:

Это ж обычная подгонка. И оно Вам надо?

Хотелось бы посмотреть на торги на демо сова с ММ в соответствии рекомендациям Р.Винса
 
Roman.:

Дык я и ищу Вы гляньте на 30-32 стр. прицепа - см. мой предыдущий пост, в де-ините - программно и ищу... Иначе - никак.

Даже в упор не вижу... Ведь массив

Mas_Outcome_of_transactions[]

содержит профит Qnt-ых сделок?

А судя из кода:

for (f = 0.01; f<=1.0; f=f+0.01)//цикл перебора переменной f для поиска оптимального ее значения,при котором TWR-максимально
     {  
          
          for ( orderIndex = 1;orderIndex<Qnt; orderIndex++) //при заданной f проходим по всем закрытым ордерам
            {                                                // и считаем относительный конечный капитал (TWR)
             TWR = TWR*(1+f*(-Mas_Outcome_of_transactions[orderIndex]/(D))); // 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                                  
      }      

Вы ищете TWR как произведение (1+f*(-Сделка)/(D))... А где Наибольший_проигрыш?

 
Roman.:


Нет - наибольший проигрыш находится в отчете после тестирования включая форвард

После чего снова запускаем тест на этом же периоде с введенным значением переменной D во внешних переменных, считаем в де-ините f,

далее, зная f считаем объемы лотов и ставим на демо-счет.

Вот Я и предлагаю искать Наибольший_проигрыш программно. Зачем проводить тест, извлекать значение, вставлять, пускай программа ищет.
 
MaxZ:

Даже в упор не вижу... Ведь массив

содержит профит Qnt-ых сделок?

А судя из кода:

Вы ищете TWR как произведение (1+f*(-Сделка)/(D))... А где Наибольший_проигрыш?


Массив содержит как профит, так и убыток по завершенным транзакциям. Т.е. как +, так и -. Там же цикл по истории сделок.

Там все верно.

Переменная D - это значение наибольшей убыточной сделки после первого тестирования.

 
Roman.:


Массив содержит как профит, так и убыток по завершенным транзакциям. Т.е. как +, так и -.

Там все верно.

Переменная D - это значение наибольшей убыточной сделки после первого тестирования.

Блин... Вот как всё устроенно.
 
MaxZ:

Даже в упор не вижу... Ведь массив

содержит профит Qnt-ых сделок?

А судя из кода:

Вы ищете TWR как произведение (1+f*(-Сделка)/(D))... А где Наибольший_проигрыш?


Заполняем массив в цикле этим

double lastProfit = OrderProfit() + OrderSwap(); 

А это как положительная, так и отрицательная величина...т.е. как профит, так и лосс.

 
Roman.:


Массив содержит как профит, так и убыток по завершенным транзакциям. Т.е. как +, так и -. Там же цикл по истории сделок.

Там все верно.

Переменная D - это значение наибольшей убыточной сделки после первого тестирования.


Переменная D - это значение наибольшей убыточной сделки за последние N сделок
 

Я вот про что Вам пытаюсь написать:

   for (orderIndex = 0; orderIndex<OrdersHistoryTotal(); orderIndex++)
   {
      ...

      double lastProfit = OrderProfit() + OrderSwap(); 
      if (orderIndex == 0 || lastProfit < D)
         D = lastProfit;
      Mas_Outcome_of_transactions[Qnt] = lastProfit; // Заполняем массив профитом/лоссом по всем закрытым позициям 

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