Библиотеки: lot lib

 

lot lib:

Библиотека выбора размера лота. 29 вариантов управления капиталом.

Итак, решаем - чем мы можем рискнуть в каждой сделке? Вариантов много, а выбрать правильный не всегда просто. Для решения этой проблемы я и сделал библиотеку lot_lib.mqh

Author: Andrey Khatimlianskii

 
Вопрос, по второму варианту. как посмотреть не только последнюю сделку, но и предыдущию, точнее как она закрылась с плюсом или с минусом, для расчета лота. Мне вот нужно не последнюю сделку в истории смотреть, а предыдущию.
 
HIDDEN wrote:
Вопрос, по второму варианту. как посмотреть не только последнюю сделку, но и предыдущию, точнее как она закрылась с плюсом или с минусом, для расчета лота. Мне вот нужно не последнюю сделку в истории смотреть, а предыдущию.
Прибыль/убыток предыдущей сделки - lotlib_PrevProfit. Именно для этого этой переменной и присваевается последнее значение профита открытой позиции.
Для того, чтоб использовать не последнюю позицию, а какую-либо другую, перебирайте в цикле закрытые позиции, выбирайте нужную и присваивайте значение её порфита переменной lotlib_PrevProfit.
Пример ф-ции, находящей профит _последней_закрытой_ позиции:
datetime lastclose = -1;
double PrevProfit( int magicnumber )
  {
    int _GetLastError;
 
    double lastprofit = 0;
    lastclose = -1;
    int _OrdersTotal = HistoryTotal();
    for ( int z = _OrdersTotal - 1; z >= 0; z -- )
      {
        if ( !OrderSelect( z, SELECT_BY_POS, MODE_HISTORY ) )
          {
            _GetLastError = GetLastError();
            Print("OrderSelect( ", z, ", SELECT_BY_POS, MODE_HISTORY ) - Error #",
                  _GetLastError );
            continue;
          }
        if ( OrderMagicNumber() == magicnumber ) { if ( OrderCloseTime() > lastclose ) 
          { 
           lastclose = OrderCloseTime(); lastprofit = OrderProfit(); 
          } 
     }
   }
  return(lastprofit);
 }

Для её использования, перед вызовом ф-ции Lot() (перед открытием позиции), напишите
lotlib_PrevProfit = PrevProfit( _MagicNumber );
 
Больше тысячи скачиваний. Поздравляю, komposter!
 
Rosh wrote:
Больше тысячи скачиваний. Поздравляю, komposter!
спасибо =)
и за рейтинг тоже =)))
 
странно, но у меня другие картинки :)
Закачанные изображения:

 
Xaoc wrote:
странно, но у меня другие картинки :)
Зависит от качества моделирования и параметров советника. Да и от символа с периодом ;)
И ещё от оччень многого ;)
 
<< 6 - размер лота выбирается как процент от баланса и управляется переменной MaxRisk. Например, для eurusd при Балансе 1000 и MaxRisk=10 откроется 0.1 лот, а при балансе 15000 и MaxRisk=5 откроется 0,8 лота);>>

Так ли это?
При балансе 1000 и MaxRisk=10 откроется 0.1 лот, но 0,1 лота на евре это привлечение КУРС * 100 = 1,3*100 = 130 долларов.
130 долларов от 1000 на счете это 13% риска, а мы хотели 10%.
Для валют USD... Ваш алгоритм правильный, а для валют ...USD, и акций - нет.
Можно ли поправить?
 
Gorillych:
При балансе 1000 и MaxRisk=10 откроется 0.1 лот, но 0,1 лота на евре это привлечение КУРС * 100 = 1,3*100 = 130 долларов.
130 долларов от 1000 на счете это 13% риска, а мы хотели 10%.
Для валют USD... Ваш алгоритм правильный, а для валют ...USD, и акций - нет.
Можно ли поправить?
Исправлено ;)
Код будет доступен после проверки модератором.
 
komposter, подскажи, пожалуйста, какой вариант лучше выбрать. Если известно, что при фиксированном лоте = 1, максимальная просадка составляет N пунктов (например, 100), т.е. если баланс = 100, то мы можем торговать лотом в 1, при балансе в 200, можем торговать 2 лотами.
 
lsv:
komposter, подскажи, пожалуйста, какой вариант лучше выбрать. Если известно, что при фиксированном лоте = 1, максимальная просадка составляет N пунктов (например, 100), т.е. если баланс = 100, то мы можем торговать лотом в 1, при балансе в 200, можем торговать 2 лотами.
Воспользуйся оптимизацией по параметру ЛотСайзВариант от 100 до 128, и посмотри сам ;)
Причина обращения: