Рассчитать stoploss исходя из допустимой суммы

kirillvlasov

Новичок форума
Здравствуйте

Я понимаю, что тот вопрос, который я задам, ламерский. Но я элементарно запутался во всем этом хозяйстве. Поиск мне тоже не помог, потому что я видимо не то ищу или не верно ставлю вопрос.

Суть вопроса вот в чем. Нужно открыть позицию с определенным stoploss. Stoploss расчитывается исходя из определенной суммы, которой я готов пожертвовать. Но как конкретно? Я не прошу даже решение готовое. Просто направьте в правильном направлении.

Спасибо
 

strannik-ps

VIP-участник
Здравствуйте

Я понимаю, что тот вопрос, который я задам, ламерский. Но я элементарно запутался во всем этом хозяйстве. Поиск мне тоже не помог, потому что я видимо не то ищу или не верно ставлю вопрос.

Суть вопроса вот в чем. Нужно открыть позицию с определенным stoploss. Stoploss расчитывается исходя из определенной суммы, которой я готов пожертвовать. Но как конкретно? Я не прошу даже решение готовое. Просто направьте в правильном направлении.

Спасибо

Приветствую!
Вопрос не ламерский, а весьма актуальный.
От правильного расчета столов зависит Ваша прибыль по отношению к убыткам.
Ознакомьтесь с некоторыми правилами может, что полезное найдете.
 
Последнее редактирование:

wersuk

Почетный гражданин
Могу предложить такой метод, он же ММ Лари Вильямса.
Допустим депо у вас 10000$. Вы рискуете 2%, увидели потенциальную возможность совершить сделку, где стоп составит 20 пунктов (это все определяете самоcтоятельно исходя из собственной системы торговли) Считаем: (10000*0,02)/20=10. далее ведете расчет лота по торгуемой валюте таким образом, чтобы стоимость пункта была максимально приближена к 10$. Т.е. если торгуете EUR/USD, то берите 1 лот, т.к. 1пункт=10$ на данной паре при размере позиции в 1 лот.
 

Ugar

Гуру форума
Направляю _http://docs.mql4.com/ru/constants/marketinfo
MODE_TICKVALUE
 

kirillvlasov

Новичок форума
Ugar, спасибо ) Вы меня верно поняли, но я читал уже про это. Мозайка все равно не собирается во едино.

Я мыслю так:
У меня есть сумма выраженная в валюте депозита
Я делю ее на Point
Что такое Point?
Это стоимость одного пункта в валюте депозита
Следовательно я в качестве частного получаю количество пунктов, которое должно быть пройдено
Именно это значение нужно отнять или добавить (в зависимости от позиции) от Ask или Bid
Но дело в том, что Ask/Bid указаны не в пунктах...

И вот здесь все ломается :)
 

AlexeyVik

Программист mql4 mql5
А если ты возьмёшь разницу Ask\Bid и StopLoss то получишь нужные тебе пункты.

A вот
double Point
Размер пункта текущего инструмента в валюте котировки.
Но никак не стоимость одного пункта в валюте депозита
 
Последнее редактирование:

kirillvlasov

Новичок форума
Но никак не стоимость одного пункта в валюте депозита
Действительно. Но это только запутывает ситуацию. Завтра на свежую голову предприму еще один штурм
 

Pyyx

Местный знаток
Ugar, спасибо ) Вы меня верно поняли, но я читал уже про это. Мозайка все равно не собирается во едино.

Я мыслю так:
У меня есть сумма выраженная в валюте депозита
Я делю ее на Point
Что такое Point?
Это стоимость одного пункта в валюте депозита
Следовательно я в качестве частного получаю количество пунктов, которое должно быть пройдено
Именно это значение нужно отнять или добавить (в зависимости от позиции) от Ask или Bid
Но дело в том, что Ask/Bid указаны не в пунктах...

И вот здесь все ломается :)

Для расчета StopLoss от валюты депозита (доллары) я применяю следующую схему:

point=Point – Размер пункта текущего инструмента в валюте котировки;
Lotsize=MarketInfo(Symbol(),MODE_LOTSIZE) – стоимости одного лота;
Lot – лот на позицию;
StopLoss – стоплос в пунктах на позицию;
$ - количество средств для риска;

$/( Lotsize*point*Lot) = StopLoss – Но это подходит только для прямых пар XXX/USD (EUR/USD, GBP/USD и т.д.).

Для обратных USD/XXX (USD/JPY, USD/CHF и т.д.) формула меняется на:

$*(Bid или Ask)/( Lotsize*point*Lot) = StopLoss

Для кроссовых пар XXX/YYY (EUR/GBP, GBP/JPY и т.д.):

$*(Bid или Ask)/( Lotsize*point*Lot) = StopLoss

Bid или Ask берётся от текущей котировки по паре USD/XXX.

:)
 

kirillvlasov

Новичок форума
А если речь идет о торговле акциями Газпрома, то это кроссовая пара?
 

Pyyx

Местный знаток
А если речь идет о торговле акциями Газпрома, то это кроссовая пара?

Нет, в этом случаи расчет идёт по первой формуле. Так как котировка XXX/USD подразумевает, что за одну единицу товара вы отдаёте какое-то количество долларов.
:)
 

kirillvlasov

Новичок форума
Я предлагаю проверить ваши вычисления на практике. Несколько дней назад я открыл короткую позицию по Газпрому. Размер лота состовлял 10. Позция открывалась по 153.20, а закрыл я ее по 151.72. Итого, пройдено было 148 пунктов. Прибыль составила 0.50 (без вычета комисси). Давайте подставим этим данные и проверим вашу формулу. Я пишу такой скрипт:
PHP:
Alert(0.50 / (MarketInfo(CurrentSymbol, MODE_LOTSIZE) * Point * 10));

Сохраняюсь, компилируюсь, выполняюсь. Результат: 4.8.

Либо я чего-то не понимаю или делаю не верно (это, конечно, более вероятно), либо ваша формула ошибочна.
 

Pyyx

Местный знаток
Я предлагаю проверить ваши вычисления на практике. Несколько дней назад я открыл короткую позицию по Газпрому. Размер лота состовлял 10. Позция открывалась по 153.20, а закрыл я ее по 151.72. Итого, пройдено было 148 пунктов. Прибыль составила 0.50 (без вычета комисси). Давайте подставим этим данные и проверим вашу формулу. Я пишу такой скрипт:
PHP:
Alert(0.50 / (MarketInfo(CurrentSymbol, MODE_LOTSIZE) * Point * 10));

Сохраняюсь, компилируюсь, выполняюсь. Результат: 4.8.

Либо я чего-то не понимаю или делаю не верно (это, конечно, более вероятно), либо ваша формула ошибочна.

Давайте разбираться.
Параметр CurrentSymbol, насколько я понимаю, вы задаете сами, и какую стоимость позиции выводит функция MarketInfo(CurrentSymbol, MODE_LOTSIZE)?
Укажите, пожалуйста, размер комиссии.
 

kirillvlasov

Новичок форума
CurrentSymbol у меня содержит значение Symbol()
MarketInfo(CurrentSymbol, MODE_LOTSIZE) возвращает 1
Комиссия по той самой сделке была 0.02
 

Pyyx

Местный знаток
CurrentSymbol у меня содержит значение Symbol()
MarketInfo(CurrentSymbol, MODE_LOTSIZE) возвращает 1
Комиссия по той самой сделке была 0.02

Тогда ваш брокер не правильно предоставляет информацию в функцию MarketInfo(CurrentSymbol, MODE_LOTSIZE), вот элементарный подсчёт:

Код:
Alert((0.50+0,02) / 148 * 0,01 * 10));

Т.к. комиссия на фондовом рынке равна, по смыслу, спреду на форексе,
и вывод равен 0,0351 этот результат ни как не равен полученному вами, и равному 1.

Нужно точно знать стоимость одного лота!!!!!!!!!!!!!!!!!
:confused::confused::confused:
 
Верх