Расчет величины лота в зависимости от размера СЛ

Программирование прибыли: от азов к секретам мастерства. Читайте, спрашивайте, делитесь опытом.
Бонус за сообщение 0.5$
Ответственный Модератор - Haos

Расчет величины лота в зависимости от размера СЛ

Сообщение mfcoder » 07 июл 2015, 06:57

Kalkin писал(а):Придумал сам, но вдохновили труды Райана Джонса и Курта Вирта :-):

Тут ведь какая интересная штука получается: когда стоп "далекий" - работает система РМ, ограничивая риски при срабатывании стопа. А когда стоп очень близкий - уже система ММ не дает установить заоблачный лот.


много слов - мало понятного...
чтож такого близкого в стопе 1000 пунктов на пятизнаке при 50к денег ?

получается, что такой расчет при 10000, 1000, 100, 10 выдаст лоты 0.1, 1.5, 10, 10, соответственно, особенно прикольно в последнем случае
а должен выдавать что-то вроде 0.69, 6.32, 33.39, 58.37
Аватар пользователя
mfcoder
 
Сообщений: 1531
Зарегистрирован: 29 июл 2013, 11:55
Средств на руках: 26.85 Доллар
Группа: Базовая
Благодарил (а): 78 раз.
Поблагодарили: 423 раз.

Расчет величины лота в зависимости от размера СЛ

Сообщение Kalkin » 07 июл 2015, 08:41

mfcoder писал(а):много слов - мало понятного...

Тогда предлагаю еще раз прочитать всё, что я написал, только внимательно. Если, конечно, есть желание разобраться. Иначе так и будем ходить по кругу.
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive

Расчет величины лота в зависимости от размера СЛ

Сообщение Haos » 16 июл 2015, 16:11

Выкладываю скрипт в окончательном варианте (написанный мною) как и планировалось с учетом величины СЛ в сделке.
Прим. для акций не будет работать, для 5-ти знака - должен (честно говоря, не успел проверить наверняка, но в чем проблема? Для МТ 4, для МТ 5 позднее сделаю. :hi_hi_hi: )
Вложения
SC-Trade&MM.ex4
(17.8 KB) Скачиваний: 41
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Расчет величины лота в зависимости от размера СЛ

Сообщение Kalkin » 08 сен 2015, 11:41

Haos писал(а):Выкладываю скрипт в окончательном варианте (написанный мною) как и планировалось с учетом величины СЛ в сделке.
Прим. для акций не будет работать, для 5-ти знака - должен (честно говоря, не успел проверить наверняка, но в чем проблема? Для МТ 4, для МТ 5 позднее сделаю. :hi_hi_hi: )

Всё замечательно считает, только есть вопрос по установке стопа. Я когда в параметрах задаю стоп 1000 пунктов, то между ценой открытия и стопом я предполагаю иметь как раз 1000, а не 1000+спред. Я думаю, лучше было бы убрать лишние пункты:
QIP Shot - Screen 871.jpg


И, к сожалению, на Даксе считает неверно. С математическим аппаратом для индексов надо будет разобраться, иначе как скальпировать? :-):
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive

Расчет величины лота в зависимости от размера СЛ

Сообщение Haos » 08 сен 2015, 12:21

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

Это индекс? Да, я указывал, что для акций и т.п. не делал еще... всё время не доходило, но, видимо, пора уже ему дойти. :hi_hi_hi:
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Расчет величины лота в зависимости от размера СЛ

Сообщение Kalkin » 16 сен 2015, 12:25

mfcoder писал(а):
Kalkin писал(а):
Haos писал(а):Не понятно зачем в коде сначала делить на Step, а потом умножать на Step - если это ничего не меняет?
Человек всё правильно сделал - это изящный способ нормализации лота, так как деление выполняется внутри функции MathFloor(), а последующее умножение - вне её.


это частный случай.. я всегда явно нормализую лот к числу знаков после зяпятой, которое получаю так
Код: выделить все
int getLotDigits()
  {
   int digits=0;
   double l=MarketInfo(Symbol(),MODE_LOTSTEP);
   if(l!=0)
     {
      while(l<1)
        {
         l*=10.0; digits++;
        }
     }
   return(digits);
  }


Есть ещё вариант, чисто математический без использования циклов.
LotGigits=lg(1/lotstep)/lg(10)
Отношение логарифма обратного числа шага лота к логарифму десяти покажет число десятичных знаков, что и нужно:
Код: выделить все
int getLotDigits()
  {
   return(MathLog(1/MarketInfo(Symbol(),MODE_LOTSTEP))/MathLog(10));
  }
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive

Расчет величины лота в зависимости от размера СЛ

Сообщение Haos » 16 сен 2015, 13:10

Интересно что может дать деление на десятичный логарифм 10, если он равен 1? :hi_hi_hi:
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Расчет величины лота в зависимости от размера СЛ

Сообщение Kalkin » 16 сен 2015, 13:27

Haos писал(а):Интересно что может дать деление на десятичный логарифм 10, если он равен 1? :hi_hi_hi:

В MQL4 нет десятичного логарифма, но есть натуральный. А результат соотношения логарифмов остается прежний :-): Потому - надо логарифм от 10 брать, надо :hi_hi_hi:
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive

Расчет величины лота в зависимости от размера СЛ

Сообщение Haos » 16 сен 2015, 16:50

Kalkin писал(а):
Haos писал(а):Интересно что может дать деление на десятичный логарифм 10, если он равен 1? :hi_hi_hi:

В MQL4 нет десятичного логарифма, но есть натуральный. А результат соотношения логарифмов остается прежний :-): Потому - надо логарифм от 10 брать, надо :hi_hi_hi:

:ne_ne_ne:
В MQL4 есть десятичный логарифм.
MathLog10 - посмотри внимательно в мат. функциях.
Поэтому приведенная тобою формула преобразуется в:
Y = lg(1 / LotStep),
где Y - некая искомая величина, зависящая от LotStep. :hi_hi_hi:
И эта величина будет цифрой, которая является кол-во знаков после запятой, т.е. то, что и нужно. :-):
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Расчет величины лота в зависимости от размера СЛ

Сообщение Kalkin » 16 сен 2015, 20:11

Haos писал(а):
Kalkin писал(а):
Haos писал(а):Интересно что может дать деление на десятичный логарифм 10, если он равен 1? :hi_hi_hi:

В MQL4 нет десятичного логарифма, но есть натуральный. А результат соотношения логарифмов остается прежний :-): Потому - надо логарифм от 10 брать, надо :hi_hi_hi:

:ne_ne_ne:
В MQL4 есть десятичный логарифм.
MathLog10 - посмотри внимательно в мат. функциях.
Поэтому приведенная тобою формула преобразуется в:
Y = lg(1 / LotStep),
где Y - некая искомая величина, зависящая от LotStep. :hi_hi_hi:
И эта величина будет цифрой, которая является кол-во знаков после запятой, т.е. то, что и нужно. :-):

Супер! Согласен. Вот так всеобщими усилиями достигли идеального решения :bra_vo: А то поднял старые совы свои, у меня там количество десятичных знаков в лоте вынесена в настройки.
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive


Вернуться в MQL – теория и практика

Кто сейчас на форуме?

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 53

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения