Советники: Dematus

 

Dematus:

Принцип работы

Если есть позиция, и цена отошла от цены открытия последней (хранится во внутренней переменной m_last_deal_price_IN) позиции на расстояние Distance, и индикатор iDeMarker (DeMarker, DeM) дает разрешение - открываем позицию объемом Coefficient Lots positions * объем последней открытой позиции (который хранится во внутренней переменной m_lot). Если позиций на данный момент нет, тогда ожидаем разрешения от индикатора и открываемся объемом Lots.

Стоп Лосс (параметр Stop Loss) по умолчанию стоит 999 пунктов, он почти никогда не сработает :), Тейк Профита в настройках нет. Когда есть позиции, к ним может применяться обычный трейлинг (Trailing Stop - трейлинг и Trailing Step - шаг трейлинга).

Трейлинг по средствам управляется переменными Trailing Equity, Virtual Stop Equity и Trailing Start Equity.


Цикличность работы

Когда закрывается последняя позиция, цена открытия позиции (внутренняя переменная m_last_deal_price_IN) обнуляется, а внутренняя переменная m_lot сбрасывается на Lots. Стоит упомянуть параметр Reset "last price IN" after deal OUT - по умолчанию он выставлен в false. Если установить его в true, тогда ПОСЛЕ КАЖДОГО ЗАКРЫТИЯ внутренняя переменная m_last_deal_price_IN обнуляется.

Автор: Vladimir Karputov

 

Здравствуйте, Владимир:

Отличный советник, спасибо, что поделились.

У меня есть вопрос по поводу переменной m_lot. В условиях реальной торговли сервис VPS может перезагрузиться и снова загрузить советник, если вы не хотите этого делать.

Если есть открытый ордер и уже добавлена сделка, то m_lot уже будет отличаться от начального значения Inplot, но перезагрузка или перегрузка советника снова вернет m_lot к начальному значению Inplot.

Есть ли способ изменить код, чтобы советник мог запомнить, где находилась переменная m_lot до перезагрузки? Есть ли у вас другой советник, который может делать что-то подобное, то есть запоминать значения переменных?

Заранее спасибо

 
Eduardo Linares :

Здравствуйте, Владимир:

Отличный советник, спасибо, что поделились.

У меня вопрос по поводу переменной m_lot. В условиях реальной торговли сервис VPS может перезагрузиться и снова загрузить советник, а вы этого не хотите.

Если есть открытый ордер и уже добавлена сделка, то m_lot уже будет отличаться от начального значения Inplot, но перезагрузка или повторная загрузка советника вернет m_lot к начальному значению Inplot.

Есть ли способ изменить код, чтобы советник мог запомнить, где находилась переменная m_lot до перезагрузки? Есть ли у вас другой советник, который может делать что-то подобное, то есть запоминать значения переменных?

Заранее спасибо

Вы можете добавить любую защиту. Это открытый исходный код.

 

Да, конечно, но я только начинаю изучать кодирование MT5.

Можете ли вы указать мне на код, чтобы добавить эту защиту или подобную?

Кстати, я не продавец, просто хочу изучить MT5 и поэкспериментировать с кодом.

спасибо

 
Eduardo Linares :

Да, конечно, но я только начинаю изучать кодирование MT5.

Можете ли вы указать мне на код для добавления этой или подобной защиты?

Кстати, я не продавец, просто хочу изучить MT5 и поэкспериментировать с кодом.

спасибо

Вы можете применить два варианта:

  1. Запись в файл
  2. Глобальная переменная терминала
 

Отлично!!! спасибо

Я попробую что-нибудь с глобальными переменными терминала, чтобы посмотреть, что произойдет