Проверка минимального стопа в советниках, публикуемых в маркете. - страница 2

 
Vladislav Andruschenko:

согласен - не давать управление, но Вы же знаете как этого требуют по типу: хочу задать свой стоп. сделайте настройку. 

а насчет вывод сообщения - спасибо подумаю.  

Я во всех советниках применяю оба варианта. Если стоп лосс в параметрах задан равным нулю то вычисляю в эксперте, если задан больше нуля то проверяю на корректность и устанавливаю уже заданный. Исключение можно сделать для советников где стоп лосс вообще не используется.
 
Vitalii Ananev:
Я во всех советниках применяю оба варианта. Если стоп лосс в параметрах задан равным нулю то вычисляю в эксперте, если задан больше нуля то проверяю на корректность и устанавливаю уже заданный. Исключение можно сделать для советников где стоп лосс вообще не используется.

да , но в макрете не проходит такая фишка с коректностью если стопмин на сервере = 0. 

раньше такого не было - у меня стояла эта проверка.

теперь модераторы в маркете специально ставят стоплосс 1 - при минстопе = 0 и выходит ошибка 130 - продукт не принят в маркет. ... 

 
Vladislav Andruschenko:

нда, это только для маркета - а вот универсальности тут нет для люого брокера

получается чтобы в маркете приняли - нужно сделать мин стоп на 3 спреда,

но по сути это неправильно - так как если у брокера минстоп = 1 спреду - то пользователь не сможет поставить меньше 3 спредов.

Засада.  

А какой смысл ставить такой мелкий стоп. Его заберут случайным шумовым движением.
 
Vitalii Ananev:
А какой смысл ставить такой мелкий стоп. Его заберут случайным шумовым движением.
дело не в том что ставят пользователи, понятно что стоплосс не 1 пункт - дело в проверке в маркете, там специально ставят стоплосс = 1. 
 
Vladislav Andruschenko:

да , но в макрете не проходит такая фишка с коректностью если стопмин на сервере = 0. 

раньше такого не было - у меня стояла эта проверка.

теперь модераторы в маркете специально ставят стоплосс 1 - при минстопе = 0 и выходит ошибка 130 - продукт не принят в маркет. ... 

Под проверкой на корректность я имел ввиду то, что сказал выше про первый вариант. Установить свое значение минимального расстояния стопа.
 
Vladislav Andruschenko:

нда, это только для маркета - а вот универсальности тут нет для люого брокера

получается чтобы в маркете приняли - нужно сделать мин стоп на 3 спреда,

но по сути это неправильно - так как если у брокера минстоп = 1 спреду - то пользователь не сможет поставить меньше 3 спредов.

Засада.  

проверять, если стоп-левел вернул не ноль то пользоваться им, а если вернул ноль то Ask-Bid 

 
Alexander Bereznyak:

проверять, если стоп-левел вернул не ноль то пользоваться им, а если вернул ноль то Ask-Bid 

но не всегда мин стоп = спреду, 

понятное дело что проверять. :-)  я и проверяю, 

 
Vitalii Ananev:
Под проверкой на корректность я имел ввиду то, что сказал выше про первый вариант. Установить свое значение минимального расстояния стопа.
это пальцем в небо тыкать или тщательно проверять торговые условия по инструменту, я написал выше как
 
Vladislav Andruschenko:

Спасибо. но у Вас та же конструкция что и у меня,

Прошу прощения, но не увидел, где в Вашем коде речь идет о значении переменной StopLevel? В том коде, который Вы привели, нет изменения значения такой переменной. Есть изменение значений стопа и профита. В итоге, один раз увеличив их, невозможно будет привести эти величины к начальным показателям. Так и будете гонять большие стопы, профиты в то время, как Stop Level уже давно уменьшился.

 только Вы умножили при мин стопе = 0 просто на спред*2, но как известно на многих брокерах мин стоп = 3 спреда, почему Вы сделали 2? 

Не владею информацией по множеству брокеров (десятки, сотни). С теми брокерами, с которыми приходится иметь дело (т. к. у клиентов там счета), вижу цифру 2 спреда. Возможно, где-то есть другая величина.

На мой взгляд, это принципиально неправильный подход брокера по предоставлению информации. Есть стандартный механизм получения ограничений о стоплевеле. Будьте добры его и используйте. А то по запросу получаем 0, а на самом деле не ноль. Меняйте его тогда уже на каждом тике, в зависимости от величины спреда так, как нужно. Поэтому реал-счета завожу только у тех брокеров, которые правильно отображают значение Stop Level.

 проверку на мин стоп проверяю на каждом тике.  

Сделал вывод на основании названии функции - OnInitLevels. Ассоциируется с однократным действием. 
 
Vladislav Andruschenko:
дело не в том что ставят пользователи, понятно что стоплосс не 1 пункт - дело в проверке в маркете, там специально ставят стоплосс = 1. 

Я делал так

   if ((StopLimit<10 && StopLimit!=0)  || (StopLoss<10 && StopLoss!=0))
   {
      Alert("Error in parameters. Too small size of a parametr of 'Stop loss' or 'Stop Loss limit'");
      return(INIT_PARAMETERS_INCORRECT);
   }

 В советнике есть возможность регулировать стоп 3-мя способами. Вручную задать размер стопа (StopLoss) или установить его равным нулю.

Если StopLoss равен нулю то его размер вычисляется исходя из рыночных условий но ограничивается переменной StopLimit.

А в OnInit() проверяются эти параметры на корректность, так как менее 10 пунктов ставить стоп нет смысла. 

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