Вопросы и Ответы Прграммистам по MQL 4

 

Кто знает код или ссылку - пожалуйста поделитесь.
Код состоит в следующем: Нужно чтобы Советник выставлял заданное количество пунктов прибыли - Stop Loss-ом при достижении ценой заданного
количества пунктов прибыли.

 
Обычный трейлингстоп - по достижении икс пунктов прибыли стоп-лосс устанавливается на уровень, отстоящий от текущей цены на указанное количество пунктов.
 
drknn >>:
Обычный трейлингстоп - по достижении икс пунктов прибыли стоп-лосс устанавливается на уровень, отстоящий от текущей цены на указанное количество пунктов.

Да это понятно-мне нужен код прграммы MQL4 - чтобы наглядно понять последовательность и какие значения используются.

И нужен мне не следящий Трэйлингстоп,а единожды выставленный на неизменяемый уровень.

 

Ищи по поиску "безубыток".

 
Roger >>:

Ищи по поиску "безубыток".

Только сейчас закончил просмотор тем по запросу в поиске - Безубыточность.

Результат - ни одного конкретного мне нужного кода я не нашел.

 
alex12 >>:

Только сейчас закончил просмотор тем по запросу в поиске - Безубыточность.

Результат - ни одного конкретного мне нужного кода я не нашел.

Тогда сделай поиск по слову "безубыток", как тебе и советовали.

 
alex12 >>:

Да это понятно-мне нужен код прграммы MQL4 - чтобы наглядно понять последовательность и какие значения используются.

И нужен мне не следящий Трэйлингстоп,а единожды выставленный на неизменяемый уровень.


Ну тогда вообще просто - встраиваем в советника обычный программерский трал, но так, чтоб он шёл последним в функции start(). Перед ним пишем конструкцию, работающую примерно по следуюущему алгортиму
 - Объявляем булеву переменную и присваиваем ей значение "Ложь".
 - Отыскиваем наш ордер. Проверяем, если у него стоп-лосс ниже точки его открытия, то нашей булевой переменной присваиваем значение "Истина" - ну, типа, трал разрешён. В противном случае выполняем команду return(0);
  В трал же передаём признак, по которому должен тралиться именно этот ордер, а ни какой-то другой, ну и нашу переменную как выключатель.

Что произойдёт в этом случае? Пока цена ни достигла уровня заранее заданного профита, трал не сработает по определению. Как только она достигнет его, стоп будет подтянут. На следующем тике советник обнаружит что у нужного ордера стоп = точке его открытия и не позволит тралу работать - переменная-выключатель примет значение лжи.

Это не самый простой способ, но при наличии уже готового кода трала, проще будет поступить именно так, чем переписывать код, отлаживать, тестировать, выверять....

 
drknn писал(а) >>


Ну тогда вообще просто - встраиваем в советника обычный программерский трал, но так, чтоб он шёл последним в функции start(). Перед ним пишем конструкцию, работающую примерно по следуюущему алгортиму
- Объявляем булеву переменную и присваиваем ей значение "Ложь".
- Отыскиваем наш ордер. Проверяем, если у него стоп-лосс ниже точки его открытия, то нашей булевой переменной присваиваем значение "Истина" - ну, типа, трал разрешён. В противном случае выполняем команду return(0);
В трал же передаём признак, по которому должен тралиться именно этот ордер, а ни какой-то другой, ну и нашу переменную как выключатель.

Что произойдёт в этом случае? Пока цена ни достигла уровня заранее заданного профита, трал не сработает по определению. Как только она достигнет его, стоп будет подтянут. На следующем тике советник обнаружит что у нужного ордера стоп = точке его открытия и не позволит тралу работать - переменная-выключатель примет значение лжи.

Это не самый простой способ, но при наличии уже готового кода трала, проще будет поступить именно так, чем переписывать код, отлаживать, тестировать, выверять....


Большое Вам спасибо за комментарий.Но я еще только учусь программировать и пока что не написал ни одного простого советника.
На досуге обязательно воспользуюсь Вашей подсказкой - готовый код трала у меня есть.
 
alex12 >>:


Большое Вам спасибо за комментарий.Но я еще только учусь программировать и пока что не написал ни одного простого советника.
На досуге обязательно воспользуюсь Вашей подсказкой - готовый код трала у меня есть.


Создаём в редакторе нового советника. В функции start() пишем следующее:
Alert("Bid = ",Bid);
Компилируем, кидаем на график. В результате на каждом тике выскакивает окно с сообщением текущего бида.
Простейший советник создан. Главное, что он нам показывает - так это то, что код советника запускается на каждом тике заново.
Для открытия ордеров используется функция OrderSend(). Как правило, перед её использованием человек задействует код, который анализирует поток последних свеч и выявляет куда нужно открывать ордер.
Чтоб иметь возможность быстро отыскивать параметры работы функций, встроенных в язык, нужно поставить курсор мыши где-нибудь между букв имени функции и нажать F1 или Ctrl+F1 - внизу окна кода откроется контекстная справка по  функции языка.
 
drknn писал(а) >>

Создаём в редакторе нового советника. В функции start() пишем следующее:
Компилируем, кидаем на график. В результате на каждом тике выскакивает окно с сообщением текущего бида.
Простейший советник создан. Главное, что он нам показывает - так это то, что код советника запускается на каждом тике заново.
Для открытия ордеров используется функция OrderSend(). Как правило, перед её использованием человек задействует код, который анализирует поток последних свеч и выявляет куда нужно открывать ордер.
Чтоб иметь возможность быстро отыскивать параметры работы функций, встроенных в язык, нужно поставить курсор мыши где-нибудь между букв имени функции и нажать F1 или Ctrl+F1 - внизу окна кода откроется контекстная справка по функции языка.
Спасибо Вам - давно хотел написать хоть что-то простое из советников без ошибок и чтобы работало.
 

Здравствуйте !

У меня вопрос ко всем форумчанам и к Ответственным за материлы содержащимся на этом сайте.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

По этой ссылке https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/envelopes

в самом низу страницы есть надпись Предупреждающая:

Предупреждение:все права на данные материалы принадлежат MetaQuotes Software corp.Полная

или частичная перепечатка запрщена.

Сам Вопрос:Мне надо в моем советнике на заказ использовать этот индикатор - Envelopes но после прочтения Предупреждения

я не знаю точно что мне делать.В принципе там же дается скачать бесплатно этот индикатор.

На сайте Meta Quotes Software corp. для Контактов есть только телефон,Почтового адреса нет - поэтому связаться мне с ними будет проблематично -

- поэтому я задал вопрос здесь.

Для кого конкретно и при каких условиях - действует вышеописанное Предупреждение ?

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