Fed77
Гуру форума
Успокойся выключи марнин вообще будем ММ делать по другому как Ларри Вильямса учили5-ти знак?
фиксировано-пропорциональный Райан Джонса : Например, если у нас есть депо в $300 и мы работаем 1 минилотом, определив дельту равной, допустим, тем же $300, то мы перейдем на 2 минилота, когда наберем (имеющимся 1 минилотом) $300, а увеличение количества лотов до 3 произойдет только когда теперь уже 2 минилота заработают – каждый – по дельте ($300) (т.е. переход с 2 минилотов на 3 будет, когда мы к имеющимся $600 добавим ещё 2 х $300 = $600, т.е. при $1200), с 3 на 4 минилота – при депо в $1200 + ($300 х 3) = $1200 + $900 = $2100 и т.д. Таким образом, "по мере роста числа контрактов сумма, необходимая для приобретения очередного кол-ва контрактов, увеличивается пропорционально", откуда и название метода.
Таким образом имеем формулу:
Капитал предыдущего уровня + (число контрактов х дельта) = капитал следующего уровня
Или так % риска от депоза современным методом
extern double LotsFor10000 = 0.1;
extern double Risk = 1;
double GetLots()
{
double clots= AccountBalance () / 10000 * LotsFor10000;
clots = MathMax(clots,MarketInfo(Symbol(),MODE_MINLOT));
clots = MathMin(clots,MarketInfo(Symbol(),MODE_MAXLOT));
clots = NormalizeDouble(clots,2);
return(clots);
}
//+------------------------------------------------------------------+
double LotsByRisk(int op_type, double risk, int sl)
{
double lot_min = MarketInfo(Symbol(), MODE_MINLOT);
double lot_max = MarketInfo(Symbol(), MODE_MAXLOT);
double lot_step = MarketInfo(Symbol(), MODE_LOTSTEP);
double lot_cost = MarketInfo(Symbol(), MODE_TICKVALUE);
double lot = 0;
double UsdPerPip = 0;
lot = AccountBalance() * risk/100;
UsdPerPip = lot/sl;
lot = NormalizeDouble(UsdPerPip/lot_cost,2);
lot = NormalizeDouble(lot/lot_step,0) * lot_step;
if (lot < lot_min) lot = lot_min;
if (lot > lot_max) lot = lot_max;
if (AccountFreeMarginCheck(Symbol(), op_type, lot) < 10 || GetLastError() == ERR_NOT_ENOUGH_MONEY)
{
Alert("Невозможно открыть позицию с объёмом = " + DoubleToStr(lot,2), "Недостаточно средств!");
return(-1);
}
return(lot);
}
Последнее редактирование: