Кто хорошо знаком с money management?

 
Есть описание вроде бы профитной стратегии в виде рассказа. Нужно перевести в алгоритм. Если это не художественный вымысел.
См. в прикрепленном файле.
По цифрам все сходится. Я пересчитывал. Проблема считать келли когда убытки и прибыль не равны.
Файлы:
art.zip  178 kb
 

Это 100% художественный вымысел!

 
usdjpy:
Есть описание вроде бы профитной стратегии в виде рассказа. Нужно перевести в алгоритм. Если это не художественный вымысел.
См. в прикрепленном файле.
По цифрам все сходится. Я пересчитывал. Проблема считать келли когда убытки и прибыль не равны.

Хоть ты и надоел мне своими сообщениями по аське, но облегчу твою участь. В прикрепленном файле архивированная электронная таблица Exel c формулами и комментариями по теме с учетом спредов и комиссионных. Формулы даны из расчета, что котировки в рэндже, т.е. вероятности закрыться по тейку и по лосю равны 0.5. Алгоритм линейный. Надеюсь, что формулы из Exel в MQL4 тебя не затруднит перевести? Сделай в виде отдельной функции расчет лотов и перед тем как открывать позицию проверяй, чтобы возвращаемое функцией значение не было отрицательным. Если оно отрицательно, то значит и Келли тоже отрицателен и матожидание будет меньше или равно 0. А значит либо денег на балансе недостаточно, либо уровни стопов малы, либо спреды и комиссионные слишком большие. По электронной таблице легче подобрать нужные значения, чем по тестированию эксперта, т.к. нагляднее и быстрее.

Примечание: все формулы даны из расчета того, что минимальный размер лота 0.1, залог по минимуму т.е. для 0.1 лота или цене 1 акции, стоимость пипса 1 на полный лот равна $1. Уровни стопов, спреды и комиссионные даны в $ для позиции объемом 0.1 лот. СтопЛоссы и ТейкПрофиты откладываются от Bid.

По аське пожалуйста ко мне больше не ломись. Если будут вопросы по этой теме, то здесь и задавай.
Файлы:
artexel.zip  3 kb
 
Reshetov:
usdjpy:
Есть описание вроде бы профитной стратегии в виде рассказа. Нужно перевести в алгоритм. Если это не художественный вымысел.
См. в прикрепленном файле.
По цифрам все сходится. Я пересчитывал. Проблема считать келли когда убытки и прибыль не равны.

Хоть ты и надоел мне своими сообщениями по аське, но облегчу твою участь. В прикрепленном файле архивированная электронная таблица Exel c формулами и комментариями по теме с учетом спредов и комиссионных. Формулы даны из расчета, что котировки в рэндже, т.е. вероятности закрыться по тейку и по лосю равны 0.5. Алгоритм линейный. Надеюсь, что формулы из Exel в MQL4 тебя не затруднит перевести? Сделай в виде отдельной функции расчет лотов и перед тем как открывать позицию проверяй, чтобы возвращаемое функцией значение не было отрицательным. Если оно отрицательно, то значит и Келли тоже отрицателен и матожидание будет меньше или равно 0. А значит либо денег на балансе недостаточно, либо уровни стопов малы, либо спреды и комиссионные слишком большие. По электронной таблице легче подобрать нужные значения, чем по тестированию эксперта, т.к. нагляднее и быстрее.

Примечание: все формулы даны из расчета того, что минимальный размер лота 0.1, залог по минимуму т.е. для 0.1 лота или цене 1 акции, стоимость пипса 1 на полный лот равна $1. Уровни стопов, спреды и комиссионные даны в $ для позиции объемом 0.1 лот. СтопЛоссы и ТейкПрофиты откладываются от Bid.

По аське пожалуйста ко мне больше не ломись. Если будут вопросы по этой теме, то здесь и задавай.

  double getLots(double TakeProfit) {
    double stopslevel = TakeProfit * Point / 10.0;
    double price = Bid;
    double balance = AccountBalance();
    double spread = MarketInfo(Symbol(), MODE_SPREAD) * Point / 10.0;
    double comission = price / 100.0;
    double mean = 0.5;
    double lots = balance / price;
    double profit = (balance + stopslevel - spread - comission) / (price - stopslevel / 10.0) - lots;
    double loss = (balance - stopslevel - spread - comission) / (price + stopslevel / 10.0) - lots;
    double b = -profit / loss;
    double kelly = ((b + 1.0) * mean - 1.0) / (b * (-loss));
    double result = kelly / 10.0;
    return result;
  }
Вот код функции. Только один ботаник сказал что теория правильная а реализация нет. Функция считает келли для 0.1 лота. А на выходе совсем другой результат. Ботаник посоветовал подставлять методом половинного деления takeprofit пока на выходе не получим 0.1. Этот тейк и будет точным уровнем стопов для позиции. Когда так сделал все заработало.