Стопы.

 
Вопрос по стопам назрел у меня уже давно. Везде (в советниках) вижу открытие сделок в процентном отношении от депо. Но нигде нет привязки к стоплоссу.  А как это рассчитываеться, если система предполагает динамичные стопы? Скажем по ATR, или по Боллинджеру. Ведь процентное отношение нам зачем? Чтобы ограничить убыток. Значит необходима завязка на стоплосс (какой угодно, хоть виртуальный). Чтобы по достижении стопа потеря не превышала заранее заданного % или суммы. А нигде по этой теме ничего не нашел (может плохо искал ;) ). Странно. Высказывайтесь.
 
locol91 >>:
Вопрос по стопам назрел у меня уже давно. Везде (в советниках) вижу открытие сделок в процентном отношении от депо. Но нигде нет привязки к стоплоссу. А как это рассчитываеться, если система предполагает динамичные стопы? Скажем по ATR, или по Боллинджеру. Ведь процентное отношение нам зачем? Чтобы ограничить убыток. Значит необходима завязка на стоплосс (какой угодно, хоть виртуальный). Чтобы по достижении стопа потеря не превышала заранее заданного % или суммы. А нигде по этой теме ничего не нашел. Странно. Высказывайтесь.

Я думаю что МТС с привязкой размера лота к стопам есть, просто их очень мало. А мало их потому что сложно правильно расчитать стоп. Чаще берут стоп с потолка а после его оптимизируют. Другое дело баланс, на него можно опираться железобетонно, чем меньше баланс тем меньше лот, всё просто.

 

Не совсем понятен вопрос.

Стопы ставяться в пунктах. Вот здесь и привязка. ММ просто следит что бы это количество пунктов не превышало некоторый процент от депо.

 
C-4 >>:

Не совсем понятен вопрос...

Я так понял вопрос "почему лот не расчитывают от стопов".(если я не правильно понял пусть автор поправит.)

 
C-4 >>:

Не совсем понятен вопрос.

Стопы ставяться в пунктах. Вот здесь и привязка. ММ просто следит что бы это количество пунктов не превышало некоторый процент от депо.

Где следит? И как? Просмотрел несколько методов расчета лота. Нигде нет привязки к стопу. Или есть но не явная? Вот например

double getLots()  //+ функция расчета лота
{    
 int round = MathAbs(MathLog(minlot) / MathLog(10.0)) + 0.5;
 double lot = minlot;
//---- select lot size
 lot = NormalizeDouble(AccountFreeMargin() * MaximumRisk / 1000.0, round);
if (AccountFreeMargin() < lot * MarketInfo(Symbol(), MODE_MARGINREQUIRED))  
   {
    lot = NormalizeDouble(AccountFreeMargin() / MarketInfo(Symbol(), MODE_MARGINREQUIRED), round);
   }
  if(lot < minlot) lot = minlot;
  double maxlot = MarketInfo(Symbol(), MODE_MAXLOT);
  if(lot > maxlot) lot = maxlot;
//---- return lot size
   return(lot);
}
Где здесь привязка к стоплоссу? Ткните меня носом.
 
Urain >>:

Я так понял вопрос "почему лот не расчитывают от стопов".(если я не правильно понял пусть автор поправит.)

Да, примерно так. Допустим оптимизировали советник. Стоп 30 пипс. А лот рассчитываеться так же, как и для 100 пипс. Я имею в виду не методику рассчета, а цифровые значения (проверял).

 

Считаю что лот нужно расчитывать от некой виртуальной единицы "RISK" которая изменяется от нескольких факторов.

А то если просто брать от стопа получится что по уровням торговать не выйдет.

 
Urain >>:

Считаю что лот нужно расчитывать от некой виртуальной единицы "RISK" которая изменяется от нескольких факторов.

А то если просто брать от стопа получится что по уровням торговать не выйдет.

Почему не выйдет? Очень даже выйдет. Ведь получается, чем короче стоп, тем больше лот.

 
locol91 >>:

Почему не выйдет? Очень даже выйдет. Ведь получается, чем короче стоп, тем больше лот.

А по моиму   чем короче стоп тем меньше лот. (Ведь если вы обосновали маленький стоп значит вы не уверены в правильности направления и хотите уменьшить убыток если рынок пойдёт против вас.   ИМХО)

 
Urain >>:

А по моиму   чем короче стоп тем меньше лот. (Ведь если вы обосновали маленький стоп значит вы не уверены в правильности направления и хотите уменьшить убыток если рынок пойдёт против вас.   ИМХО)

С точностью до наоборот. Если я ставлю короткий стоп значит я более уверен в направлении будущего движения. А стоп - на критические случаи (поломка компа, исчезновение связи и т.п.) И наоборот, если допускаю возможность волны в направлении противоположном выставляемому ордеру (а также по сигналам старших таймов) я выставлю стоп побольше.

 

Я пользуюсь вот такой функцией:

//Расчет оптимального лота, исходя из риска и уровня стопа
double LotCalculate(int Risk1, int stopSL1)
{
   double LotOpt=0;
   if(Lot>0){LotOpt=Lot;return(LotOpt);}
   double Balance=AccountBalance();
   double st1point=MarketInfo(Symbol(), MODE_TICKVALUE);
   double StepLot=MarketInfo(Symbol(),MODE_LOTSTEP);
   double LotMin=MarketInfo(Symbol(),MODE_MINLOT);
   double LotMax=MarketInfo(Symbol(),MODE_MAXLOT);
   if(StepLot==0.01){int step=2;}else{step=1;}
   if(Risk1<0){Risk1=0;}
   if(Risk1>100){Risk1=100;}
   LotOpt=NormalizeDouble((Balance*Risk1/100)/(st1point*stopSL1),step)/3;
   if(LotOpt>LotMax){LotOpt=LotMax;}
   if(LotOpt<LotMin){LotOpt=LotMin;}
   if(LotOpt>0){return(LotOpt);}
   Print("Ошибка вычисления лота");
   return(0);
}
Причина обращения: