Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1126

 

Всем привет! Подскажите, пожалуйста, вот я хочу ставить стоп за лоу конкретной свечки, но не более заранее заданного числа пунктов. как это сделать?

Я делаю так: Я от клоуз последней закрытой свечи отнимаю лоу 4 свечи, если это значение меньше 200 пунктов например, тогда стоп за лоу-15 пунктов, а если больше, тогда просто 200 пунктов стоп. На графике не выходит, стопы ставятся вообще непонятно как, если они меньше 200 пунктов. Язык изучаю совсем недавно. Заменял клоуз последней свечи на Аск, все равно 

if(Close[1]-Low[4]>=NormalizeDouble(StopLoss*Point,5))
   sl = (Close[1] - NormalizeDouble(StopLoss*Point, 5));  //Рассчет стопа для покупок
else
   sl = Low[4]-NormalizeDouble(15*Point,5);
tp = NormalizeDouble(Ask + TakeProfit*Point, 5);  //Рассчет тейка для покупок);
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, sl, tp, "С1 БАЙ", Magic, 0, clrBlue);
return;
 
Nikolai_korzhok:

Всем привет! Подскажите, пожалуйста, вот я хочу ставить стоп за лоу конкретной свечки, но не более заранее заданного числа пунктов. как это сделать?

Я делаю так: Я от клоуз последней закрытой свечи отнимаю лоу 4 свечи, если это значение меньше 200 пунктов например, тогда стоп за лоу-15 пунктов, а если больше, тогда просто 200 пунктов стоп. На графике не выходит, стопы ставятся вообще непонятно как, если они меньше 200 пунктов. Язык изучаю совсем недавно. Заменял клоуз последней свечи на Аск, все равно такой же бред выходит. Где у меня ошибки?

...

Вставляйте пожалуйста правильно код:


 
Artyom Trishkin:

Вставляйте пожалуйста правильно код:



Сделал, первое сообщение на форуме мое) сорри

 
Nikolai_korzhok:

Сделал, первое сообщение на форуме мое) сорри

Ещё повредничаю (не потому, что я такой, а для того, чтобы людям читать ваш код было удобно - вам же помощь нужна, а не им):

в редакторе есть стилизатор кода. Нажмите Ctrl+<, и ваш код станет читаемым.

Стилизатор - Разработка программ - Справка по MetaEditor
Стилизатор - Разработка программ - Справка по MetaEditor
  • www.metatrader5.com
Стилизатор позволяет быстро привести оформление исходного кода к рекомендуемому стандарту. Это делает код легко читаемым, выглядящем профессионально. Грамотно оформленный код гораздо проще читать и анализировать в последующем как его автору, так и другим пользователям. Чтобы запустить стилизатор, нажмите " Стилизатор" в меню "Сервис" или...
 
Artyom Trishkin:

Ещё повредничаю (не потому, что я такой, а для того, чтобы людям читать ваш код было удобно - вам же помощь нужна, а не им):

в редакторе есть стилизатор кода. Нажмите Ctrl+<, и ваш код станет читаемым.

Сделал, надеюсь, все норм...
 
Artyom Trishkin:

В MQL5 массивы в функцию передаются только по ссылке - нужен апперсанд. А уж где он там расположен - не суть важно.

Спасибо понятно. А в  MQL4 массивы в функцию передаются?

правка.

Что то подумал и совсем потерялся. Где прочитать про объявление переменных и массивов и ссылки на них.

Вопрос который поставил в тупик, почему мы указываем тип переменной /массива, если мы используем ссылку? Ведь при объявлении массива и переменной мы обязаны это сделать?

 
Valeriy Yastremskiy:

Спасибо понятно. А в  MQL4 массивы в функцию передаются?

double AverageFromArray(const double & array[],int size)

Найти то нашел, но почему константа массива? Вернее а не const  массивы можно в 4ке передавать в функцию?

 
Nikolai_korzhok:

Всем привет! Подскажите, пожалуйста, вот я хочу ставить стоп за лоу конкретной свечки, но не более заранее заданного числа пунктов. как это сделать?

Я делаю так: Я от клоуз последней закрытой свечи отнимаю лоу 4 свечи, если это значение меньше 200 пунктов например, тогда стоп за лоу-15 пунктов, а если больше, тогда просто 200 пунктов стоп. На графике не выходит, стопы ставятся вообще непонятно как, если они меньше 200 пунктов. Язык изучаю совсем недавно. Заменял клоуз последней свечи на Аск, все равно 

Попробовал сделать так(как пример из темы https://www.mql5.com/ru/forum/111497/page1100#comment_3077789,) и тоже не получается. Не ставит стоп за лоу и все

if(NormalizeDouble(Ask-Low[4]+200*Point,5)>=0)
   sl = (Close[1] - NormalizeDouble(StopLoss*Point, 5));  //Расчет стопа для Покупок
else
   sl = NormalizeDouble(Low[4]-10*Point,5);
tp = NormalizeDouble(Ask + TakeProfit*Point, 5);  //Расчет тейка для продаж);
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, sl, tp, "С1 БАЙ", Magic, 0, clrBlue);
return;
[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда.
[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда.
  • 2011.01.05
  • www.mql5.com
Здрасти, вот зарегился и решил сразу создать тему. Будет думаю правильно, так как у самого куча вопросов...
 

Добрейшего дня, господа. 

Вопрос про трейлинг стоп, так как все-таки правильно?

Обычно, в функции используется трейлинг-степ, где-то слышал что это чтоб не модифицировать на каждом тике, а то брокер за слишком частые запросы по попе забанит. 

Я посмотрел как работает встроенный трейлинг стоп, тот имеет только одну настройку и модифицирует на каждом пункте, (иногда по несколько раз, с руганью брокера). 

Я посмотрел общеизвестные уроки, там вообще какая-то дичь:

тут, если СЛ задан 0, то он вообще будет сразу модифицирован. 

То, до чего я додумался выглядит так: 

Так правильно?

 
Пожалуйста, кто-то ответит на мой запрос тоже: # 11237
Причина обращения: