Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Вся деятельность участников MQL5.community. Заходи в раздел Стена!
alex
812
alex 2010.05.02 12:26 

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

Владимир Тезис
4266
Владимир Тезис 2010.05.02 18:35  
Обычный трейлингстоп - по достижении икс пунктов прибыли стоп-лосс устанавливается на уровень, отстоящий от текущей цены на указанное количество пунктов.
alex
812
alex 2010.05.02 18:52  
drknn >>:
Обычный трейлингстоп - по достижении икс пунктов прибыли стоп-лосс устанавливается на уровень, отстоящий от текущей цены на указанное количество пунктов.

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

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

Alexander
2441
Alexander 2010.05.02 19:19  

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

alex
812
alex 2010.05.02 22:51  
Roger >>:

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

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

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

timbo
3139
timbo 2010.05.02 23:04  
alex12 >>:

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

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

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

Владимир Тезис
4266
Владимир Тезис 2010.05.03 07:56  
alex12 >>:

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

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


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

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

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

alex
812
alex 2010.05.06 14:06  
drknn писал(а) >>


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

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

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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

1234567
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий