Форум трейдеров » Торговые роботы, советники, индикаторы » Расчет ММ для открываемой позиции на графике в МТ4
+ Подписаться
Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
  1. 610
    Комментарии
    64
    Темы
    611
    Репутация Pro
     
    В начале пути

    4 Медалей
    Цитата Сообщение от Алексей Кияница Посмотреть сообщение
    Теперь мне, как человеку иногда программирующему всякие вещи в MQL, все понятно, и я, в принципе, смогу все переписать, как мне нужно.
    А вот, кто не знаком с этими вещами - это темный лес с кучей партизанов :)
    Имхо, по последнему бару будет проще и понятнее.

    Но это все придирки, а так - все здорово :thumbsup_002:
    Вот и хорошо.

    А вообще можно базовую скользящую среднюю установить PeriodBaseInit = 2, тогда у вас всегда уровни Open, SL, TP будут в пределах видимости.

    У каждого своя система торговли. И одинаковые уровни открытия и закрытия для всех не сделаешь.

    А так, я выложил индикатор, чтобы помочь людям с определением размера позиции до её открытия.
  2. 1,156
    Комментарии
    4
    Темы
    1189
    Репутация Pro
    Аватар для zerkmax  
    Мастер форумных наук

    4 Медалей
    Я обычно вставляю в советник такое:

    переменные
    extern double RiskPercentage = 10; // риск в процентах
    extern double Lots = 0; // лот, если 0, то динамический

    тело
    double Lot = Lots;

    if (Lots==0)
    {
    double margin = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
    double minLot = MarketInfo(Symbol(), MODE_MINLOT);
    double maxLot = MarketInfo(Symbol(), MODE_MAXLOT);
    double step = MarketInfo(Symbol(), MODE_LOTSTEP);
    double account = AccountFreeMargin();

    double percentage = account*RiskPercentage/100;

    Lot = MathRound(percentage/margin/step)*step;

    if(Lot < minLot)
    {
    Lot = minLot;
    }

    if(Lot > maxLot)
    {
    Lot = maxLot;
    }
    }

    И дальше использую переменную Lot (она никогда не будет меньше минимально разрешенного, или больше максимально разрешенного)
  3. 610
    Комментарии
    64
    Темы
    611
    Репутация Pro
     
    В начале пути

    4 Медалей
    Цитата Сообщение от zerkmax Посмотреть сообщение
    Я обычно вставляю в советник такое:

    переменные
    extern double RiskPercentage = 10; // риск в процентах
    extern double Lots = 0; // лот, если 0, то динамический

    тело
    double Lot = Lots;

    if (Lots==0)
    {
    double margin = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
    double minLot = MarketInfo(Symbol(), MODE_MINLOT);
    double maxLot = MarketInfo(Symbol(), MODE_MAXLOT);
    double step = MarketInfo(Symbol(), MODE_LOTSTEP);
    double account = AccountFreeMargin();

    double percentage = account*RiskPercentage/100;

    Lot = MathRound(percentage/margin/step)*step;

    if(Lot < minLot)
    {
    Lot = minLot;
    }

    if(Lot > maxLot)
    {
    Lot = maxLot;
    }
    }

    И дальше использую переменную Lot (она никогда не будет меньше минимально разрешенного, или больше максимально разрешенного)
    Вы закладываете в сделку риск 10% от свободной маржи.
    Я же закладываю риск 10% от изменения баланса по инструменту - это разные вещи.

    Например по нефти, залоговая маржа может быть 600 (QM) или 3600 (CL), а при изменении цены инструмента на 1$ стандартный 1 лот изменит ваши средства для QM на 500$, для CL на 1000$. Разницу понимаете?

    600 - 500
    3600 - 1000

    При использовании одинаковой части от свободной маржи, например 600$ на QM и 600$ на CL ваш баланс будет изменяться на 500$(для QM) и 166.6$(для CL) соответсвенно. То есть разница баланса будет отличаться в 3 раза.

    Получается что привязываться к используемой марже нет смысла.
  4. 1,156
    Комментарии
    4
    Темы
    1189
    Репутация Pro
    Аватар для zerkmax  
    Мастер форумных наук

    4 Медалей
    Цитата Сообщение от sokol Посмотреть сообщение
    Вы закладываете в сделку риск 10% от свободной маржи.
    Я же закладываю риск 10% от изменения баланса по инструменту - это разные вещи.

    Например по нефти, залоговая маржа может быть 600 (QM) или 3600 (CL), а при изменении цены инструмента на 1$ стандартный 1 лот изменит ваши средства для QM на 500$, для CL на 1000$. Разницу понимаете?

    600 - 500
    3600 - 1000

    При использовании одинаковой части от свободной маржи, например 600$ на QM и 600$ на CL ваш баланс будет изменяться на 500$(для QM) и 166.6$(для CL) соответсвенно. То есть разница баланса будет отличаться в 3 раза.

    Получается что привязываться к используемой марже нет смысла.
    если на счете работает несколько советников, то размер открываемого ордера как раз нужно учитывать от свободной маржи, так как я не контролирую открываемые ордера и вообще могу находиться далеко от кмпьютера.
  5. 610
    Комментарии
    64
    Темы
    611
    Репутация Pro
     
    В начале пути

    4 Медалей
    Цитата Сообщение от zerkmax Посмотреть сообщение
    если на счете работает несколько советников, то размер открываемого ордера как раз нужно учитывать от свободной маржи, так как я не контролирую открываемые ордера и вообще могу находиться далеко от кмпьютера.
    Конечно нужно :). Позволит нам брокер открыть 2-5 или 15-30 позиций по разным инструментам. Это уже дело каждого трейдера, следить за этим.
  6. 1,156
    Комментарии
    4
    Темы
    1189
    Репутация Pro
    Аватар для zerkmax  
    Мастер форумных наук

    4 Медалей
    Цитата Сообщение от sokol Посмотреть сообщение
    Конечно нужно :). Позволит нам брокер открыть 2-5 или 15-30 позиций по разным инструментам. Это уже дело каждого трейдера, следить за этим.
    поэтому и считаю от маржи, а не от баланса ;)
  7. 610
    Комментарии
    64
    Темы
    611
    Репутация Pro
     
    В начале пути

    4 Медалей
    Здесь нет ничего необычного.

    В прикрепленном архиве первого поста есть два индикатора:

    MA Fast Trend1.mq4 – трендовая линия, где показывается смена направления
    MM Level.mq4 – установка уровней с расчетом ММ

    Работает на текущем таймфрейме, то есть на нулевом. При инициализации индикатора (в начале) линия Open устанавливается на МА как в параметре PeriodBaseInit. У меня по умолчанию = 13.

    Если dRangeInitOpen = 0.00, то Open будет ровно на МА13. Если dRangeInitOpen = 0.50, то Open отклонится от МА на 0.5(ATR PeriodATR) назад. Если МА направлена вниз, то отступит вверх, если МА направлена вверх, то отступит вниз.

    Данный рисунок на периоде h1 показывает МА13, MM Level с параметром dRangeInitOpen = 0.00. Уровни Open и их направление с течением времени меняются как МА13.



    Также приложу файл Инструкция для индикатора MM Level.doc, где описал некоторые моменты

    Скоро выберу время и введу слежение по открытым позициям.
  8. 610
    Комментарии
    64
    Темы
    611
    Репутация Pro
     
    В начале пути

    4 Медалей
    Сделал привязку к текущим открытым позициям.

    Только вот стоп аут для всех открытых позиций не получилось посчитать. Вычисляю только как для одной открытой позиции.
    Когда позиции открыты в разных направлениях по несколько штук, да ещё на разных инструментах с разной залоговой маржой и стоимостью тиков – это довольно муторное дело.
    Так что пока так – для одной позиции по инструменту.
  9. 959
    Комментарии
    25
    Темы
    967
    Репутация Pro
     
    В начале пути

    4 Медалей
    А приводимые в ветке коды работать будут так же, если депозит не в долларах, а в рублях например.
  10. 610
    Комментарии
    64
    Темы
    611
    Репутация Pro
     
    В начале пути

    4 Медалей
    Цитата Сообщение от yuripk Посмотреть сообщение
    А приводимые в ветке коды работать будут так же, если депозит не в долларах, а в рублях например.
    Да. Работает на лубой валюте счета.
    Вот, например, счет в рублях 5000, то есть около $160


    Или в евро 5000

Вверх
РегистрацияX

чтобы писать, читать, комментировать