Ваши вопросы по языку MQL4

ansol

Местный знаток
Встроенный инструмент невероятно тормозит работу в тестере. Да и не так уж это сложно. Не сложней построения объекта.
Да к тому-же это ответ на твой вопрос.

Это был не вопрос! Я имел в виду, что так удобнее, не более того.
Интересно, вычисление тангенсов не сильно тормозит работу тестера?
Мне кажется, что там используются те же приемы, только самому городить может оказаться хужее. А может и нет, учитывая талант разработчиков mql4 ;)
 

ansol

Местный знаток
Кстати:
double ObjectGetValueByShift( string name, int shift)
Функция вычисляет и возвращает значение цены для указанного бара (смещение относительно текущего бара). Значение цены вычисляется при помощи линейного уравнения по первой и второй координатам. Применяется для трендовых линий и аналогичных объектов.
Всяко быстрее тангенса должно работать!
 

AlexeyVik

Программист mql4 mql5
Кстати:

Всяко быстрее тангенса должно работать!
А ты проверь. Даже комментарий выводимый в левый верхний угол графика тормозит тестер.
А ещё смешней получится если сделаешь советник работающий частично на открытии бара. Ну например, открытие ордеров на открытии бара, а трейлинг на каждом тике и по достижению уровня переставить стоп.

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

ansol

Местный знаток
тем-не-менее большинство этим тестером пользуются и никто никак не называет создателей.
Проверю, конечно.
А что делать? Вариантов нет :(
Называют, еще как называют! :) Только создатели эти каменты удаляют моментально! :)
Вот насчет каментов в тестере мне все-таки непонятно - если включена визуализация, то - да, замедление должно быть, а если визуализации нет, то в чем тормоз? В пропуске этой строчки? Тем более, я каменты вывожу по какому-нибудь событию(напр. "ордер открыт"), а не на каждом тике - тут если что и есть, так не сильно и заметно.
Я именно про оператор "Comment" говорю, оператор "Print" лупит мессаги в лог, тут все ясно
 

AlexeyVik

Программист mql4 mql5
Проверю, конечно.
А что делать? Вариантов нет :(
Называют, еще как называют! :) Только создатели эти каменты удаляют моментально! :)
Вот насчет каментов в тестере мне все-таки непонятно - если включена визуализация, то - да, замедление должно быть, а если визуализации нет, то в чем тормоз? В пропуске этой строчки? Тем более, я каменты вывожу по какому-нибудь событию(напр. "ордер открыт"), а не на каждом тике - тут если что и есть, так не сильно и заметно.
Я именно про оператор "Comment" говорю, оператор "Print" лупит мессаги в лог, тут все ясно

Я думал одного раза достаточно
Так... Ч0рто пабьери!..
Я а-то думаю, что у меня дурная сова х на у поделить не может по-быстрому?! Ну, ладно, счас будем чинить это безобразие, спасибо
 

mak_kam

Новичок форума
Уважаемые, помогите разобраться...
как реализовать закрытие ордеров при изменении цены к примеру на 5 пунктов
вот что у меня получается, но загвоздка где присвоить priceBid=Bid; priceAsk=Ask;
если в start() - не выходит
если в order() - не выходит
если в шапке - не выходит

int start()
{

if (check_order()>0)

{

if (check(or1)==true)
{
if (priceBid<Bid-5*pp) close_();
}
if (check(or2)==true)
{

if (priceAsk>Ask+5*pp) close_();
}

}

order();

if (check_order()==1) close_();

return(0);
}
P.S. Прошу не пинать сильно - только начинаю грызть этот гранит...
 

matro3

Почетный гражданин
PHP:
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
 if (OrderType()==OP_BUY)
  {
      profit = (Bid-OrderOpenPrice())/Point;
      if(profit >= profit_close)
          закрываем
   }
 

mak_kam

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

AlexeyVik

Программист mql4 mql5
matro3 спасибо за ответ, я неточно выразился мне надо закрываться при откате цены от максимального значения - это возможно закодить?
Возможно. Только надо определить цену от которой начнётся повышение и последующий откат.
Ну например: Открыли ордер Buy, запомнили в переменную глобального уровня, пусть будет double Price; цену открытия ордера, дальше сравниваем текущую цену со значением Price и если текущая цена выше Price то перезаписываем её, если-же текущая цена оказалась ниже Price на заданные 5 пунктов то ордер закрыть.
Если этого не достаточно, значит этим ещё рано заниматься. Примеры кодов не пишу. Если из моей подсказки что-то не понятно попробую разъяснить.
 

matro3

Почетный гражданин
Я что-то совсем запутался, это получается трал в 5 пунктов?
 

Milord

Местный знаток
Возможно. Только надо определить цену от которой начнётся повышение и последующий откат.
Ну например: Открыли ордер Buy, запомнили в переменную глобального уровня, пусть будет double Price; цену открытия ордера, дальше сравниваем текущую цену со значением Price и если текущая цена выше Price то перезаписываем её, если-же текущая цена оказалась ниже Price на заданные 5 пунктов то ордер закрыть.
Если этого не достаточно, значит этим ещё рано заниматься. Примеры кодов не пишу. Если из моей подсказки что-то не понятно попробую разъяснить.
Алексей, я верно понял, что вы описали логику работы обычного
трала???
не могу понять что значит трал по МА, или другим индюкам?поясните плиз ясно и понятно для учеников MQL4?)
ЗАРАНЕЕ СПАСИБО!
 

AlexeyVik

Программист mql4 mql5
Алексей, я верно понял, что вы описали логику работы обычного
трала???
не могу понять что значит трал по МА, или другим индюкам?поясните плиз ясно и понятно для учеников MQL4?)
ЗАРАНЕЕ СПАСИБО!
Нет, это не обычный трал. Это интересный трал который в своё время я проверял, но к сожалению от него пришлось отказаться. Да и вообще от стопов надо отказываться. Имхо. Что это означает хорошо описано в разделе "Юмор" http://forexsystemsru.com/yumor-na-foreks/70780-chto-takoe-imho.html

Трал по любому индикатору означает постановку СтопЛосса на значение показания индикатора. Но надо отметить, что это можно сделать только по индикатору в основном окне. Трал по МА означает постановку СЛ на значение индикатора МА на первом баре (значение индикатора МА на первом баре равно значению МА на нулевом баре в момент его открытия.) и перестановку его на новое значение МА только при условии, что это значение (для ордеров Buy) выше предыдущего. Так-же трал по параболику. Для ордеров Buy пока параболик ниже текущей цены ставить СЛ по показанию индикатора. Как только условие не выполнено СЛ остаётся на прежнем месте до встречи с ценой закрытия ордера или продолжения движения цены в желаемом направлении.
 
Последнее редактирование:

ansol

Местный знаток
Трал по любому индикатору означает постановку СтопЛосса на значение показания индикатора. Но надо отметить, что это можно сделать только по индикатору в основном окне.
Если так криво к вопросу не подходить, то будет проще :)
Трал по любому индикатору означает изменение стоплосса в зависимости от показаний этого индикатора.
Неважно, в каком он там окне и что он там показывает. Важно, что от его показаний вы отталкиваетесь для модификации стоплосс.
Всех делов.

Еще трал обозначает "следовать за", в применение к форексу, следовать за ценой. Т.е. в нормальном случае "отползание" стоплосса от цены тралом являться не будет, это однонаправленное движение всегда. Хотя, особо умные могут применять расширенную трактовку :) (есть такие)
 

Milord

Местный знаток
Нет, это не обычный трал. Это интересный трал который в своё время я проверял, но к сожалению от него пришлось отказаться. Да и вообще от стопов надо отказываться. Имхо. Что это означает хорошо описано в разделе "Юмор" http://forexsystemsru.com/yumor-na-foreks/70780-chto-takoe-imho.html...

обоснуйте плиз, почему нужно отказываться от стопов?:)
я верно понимаю, что упомянутый в прошлом посте трал имеет 3 параметра:
TralStart
TralStep
TralStop
???и чем он плох(хорош), например по сравнению с тралом по МА?

P.S. спасибо за ИМХО и ссылку))я в курсе что это значит, сам иногда пользуюсь..):D
 

AlexeyVik

Программист mql4 mql5
Нет, ansol, ты не прав. Значение индикаторов в отдельном окне (в подвале) часто, почти всегда, не совпадают с ценой. Поэтому их показания использовать для трала неразумно. Эти показания надо как-то приводить в соответствие с ценой инструмента, а это, чаще всего, невыполнимо.
Ну к примеру взять индикатор ATR, бывает что линия индикатора направлена вниз, а цена движется вверх, а потом наоборот, индикатор вверх а цена вниз. И как тут тралить??? Ну понятно, что когда линия индикатора вниз, то трал на месте... А когда индикатор вверх, а цена вниз??? В этом случае велика вероятность получить ошибку 130. Да и геморно это писать. Зачем себе усложнять жизнь.
 

AlexeyVik

Программист mql4 mql5
обоснуйте плиз, почему нужно отказываться от стопов?:)
я верно понимаю, что упомянутый в прошлом посте трал имеет 3 параметра:
TralStart
TralStep
TralStop
???и чем он плох(хорош), например по сравнению с тралом по МА?

P.S. спасибо за ИМХО и ссылку))я в курсе что это значит, сам иногда пользуюсь..):D
Но там дано несколько разных вариантов трактовки этой аббревиатуры. Поэтому и дал ссылку.
В моём варианте это сугубо личное мнение и убедить себя в противном я не позволю. Но и никого не пытаюсь убедить в моей правоте. Как на воротах "Бухенвальде" jedem das seine.

В каком посте 3 параметра трала я не понял. В том в котором трал по цене с дальнейшем откатом на заданное к-во пунктов??? Так нет. Там трал ведётся по цене превышающей текущую и в случае отката от неё закрытие ордера.
matro3 спасибо за ответ, я неточно выразился мне надо закрываться при откате цены от максимального значения - это возможно закодить?

Я-бы даже не назвал это тралом потому, что в таком варианте просто идёт слежение за ценой и при определённом условии ордер закрывается.
 
Последнее редактирование:

matro3

Почетный гражданин
matro3 спасибо за ответ, я неточно выразился мне надо закрываться при откате цены от максимального значения - это возможно закодить?

В общем Ваша задача очень мутно описана, дайте конкретный пример и Вам помогут.
А так, лично я, запутался )))
 
Верх