[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 120
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пару дней назад скачал советник "e-MoveSLTPbyMouse" (спасибо Granit) и опробывал его на торговой платформе Broco, работает прекрасно. Сегодня решил применить советник с IBFX и увидел, что эксперт не работает...???... Появилась какая-то дополнительная линия, которая "отскакивала " от цены, потом рынок успешно прошёл Стоп-лосс линию и мне пришлось вручную закрыть позицию с небольшим убытком. Может есть какие - нибудь мысли по этому поводу? Что можно сделать, что бы советник работал с IBFX? Или возможно есть, что-то подобное у кого-нибудь в арсенале?
Ещё один вопрос. У меня есть советник, который открывает позиции с помощью горизонтальных линий, но к сожалению, открывает только 3-4 пипса от назначеной цены. Например, я ставлю линию на SELL по цене 1.4018 с 1 пипсом на пробой (EUR), а позиция окрылась по цене 1.4015, т.е. проскочил на 2 пипса. На GBP проскакивает 3 пипса. Возможно у кого - нибудь есть подобный советник, но который бы работал нормально. Буду очень благодарен.
Выкладываю этот советник, может кому и пригодиться.
Господа эксперты, хочу использовать в советнике скользящую по скользящей.
при наложении скользящей на график вручную параметр применить к можно прописать как previous indicator's data, а как в советнике это сделать?
вроде логично функцию OnArray применить, только непонятно где взять массив с данными первой МА, просвятите плииз, или киньте ссылку на подобную конструкцию, или саму конструкцию, если есть.
Например надо так: если первая МА(21) выше второй МА(21)(построеной на первой МА) то..................
и еще такой вопрос: если в советнике присутствует вызов функции: iMA(0,0,250,0,1,0,0), то он каждый тик будет у этих 250 баров брать close, складывать их и делить на 250?! НАКЛАДНО однако, наверно не так. А если по не еще одну скользящую считать то цена уже уйдет... Просвятите пожалуйста.
Господа эксперты, хочу использовать в советнике скользящую по скользящей.
при наложении скользящей на график вручную параметр применить к можно прописать как previous indicator's data, а как в советнике это сделать?
вроде логично функцию iMAOnArray применить, только непонятно где взять массив с данными первой МА, просвятите плииз, или киньте ссылку на подобную конструкцию, или саму конструкцию, если есть.
Например надо так: если первая МА(21) выше второй МА(21)(построеной на первой МА) то..................
и еще такой вопрос: если в советнике присутствует вызов функции: iMA(0,0,250,0,1,0,0), то он каждый тик будет у этих 250 баров брать close, складывать их и делить на 250?! НАКЛАДНО однако, наверно не так. А если по не еще одну скользящую считать то цена уже уйдет... Просвятите пожалуйста.
Проще всего индикатор сделать.
Проще всего индикатор сделать.
Пусть индикатор, где массив данных взять? Конструкцию намекните пожалуйста, в учебнике нет...
А второй вопрос?
Пусть индикатор, где массив данных взять? Конструкцию намекните пожалуйста, в учебнике нет...
А второй вопрос?
По второму вопросу. Все зависит только от реализации. Можно самому машку считать оптимизируя код. МОжно делать расчет только по открытию бара. Вариантов много.
Но оптимальный вариант - использовать индикатор. В котором производятся все расчеты, а советник только уже считывает их (расчетные значения).
Во вложении пример индикатора
Индикатор поменял
По второму вопросу. Все зависит только от реализации. Можно самому машку считать оптимизируя код. МОжно делать расчет только по открытию бара. Вариантов много.
Но оптимальный вариант - использовать индикатор. В котором производятся все расчеты, а советник только уже считывает их (расчетные значения).
1) "Можно самому машку считать оптимизируя код" - эту строку я не понял. Я так понимаю: на каждом тике вызывается start, и если есть вызов функции iMA(0,0,250,0,1,0,0), то он каждый раз будет эти 250 баров складывать и делить. А если создать индикатор правильно то будет считать только последний бар, а последний параметр shift,будет из массива считывать. Правильно?
2) А где массив то взять для создания второй МА?
2) А где массив то взять для создания второй МА?
Ну точно! Я стормозил, в индикаторе массив со значениями МА создается же...
Огромное спасибо.
1) "Можно самому машку считать оптимизируя код" - эту строку я не понял. Я так понимаю: на каждом тике вызывается start, и если есть вызов функции iMA(0,0,250,0,1,0,0), то он каждый раз будет эти 250 баров складывать и делить. А если создать индикатор правильно то будет считать только последний бар, а последний параметр shift,будет из массива считывать. Правильно?
2) А где массив то взять для создания второй МА?
1. Все зависит от реализации. Существуют оптимальные методы расчета. iMa() использует свой алгоритм расчета. В CodeBase они есть. Поэтому при использовании работает механизм расчета, который от тебя скрыт. Ты получаешь только результат. И расчет будет производиться каждый тик.
2. Я индикатор выложил специально, что бы можно было можно разобраться с массивами.
1. Все зависит от реализации. Существуют оптимальные методы расчета. iMa() использует свой алгоритм расчета. В CodeBase они есть. Поэтому при использовании работает механизм расчета, который от тебя скрыт. Ты получаешь только результат. И расчет будет производиться каждый тик.
2. Я индикатор выложил специально, что бы можно было можно разобраться с массивами.
Спасибо большое за индикатор, глянул на функцию старт, все сразу стало ясно.
на счет первого вопроса:
У меня в советнике к примеру (не МА, но тоже встроенная функция)://пересекла ли главная линия стохастика сигнальную линию сверху вниз
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)
){
//и обе линии ниже 90
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<90&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)<90
){
//и выше 50
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)>50&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)>50
)
fl=1;return(fl);//продать
}
}
это он на каждой строке считать его будет?
Или надо написать индикатор, и из его массивов значения брать и сравнивать, или как-то еще. Чтоб быстрей работал.
Спасибо большое за индикатор, глянул на функцию старт, все сразу стало ясно.
на счет первого вопроса:
У меня в советнике к примеру (не МА, но тоже встроенная функция)://пересекла ли главная линия стохастика сигнальную линию сверху вниз
if(iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,shiftF)>
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,shiftF)&&
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,0,0)<
iStochastic(Symbol(),0,KperiodF,DperiodF,SlowlingF,methodF,PriceFieldF,1,0)
)
это он на каждой строке считать его будет?
Или надо написать индикатор, и из его массивов значения брать и сравнивать, или как-то еще. Чтоб быстрей работал.
Сперва лучше рассчитать значения стохастика и сигнальной линии. А потом уже сравнивать. Мне просто такой стиль не нравится. Слепой какой-то получается. Да и ошибиться легче.
if() в варианте метаквотов делает полный расчет логического выражения. Желательно его делать максимально простым. Просто if() - одна из медленных операций.
Еще есть такое понятие как "дребезг" на нулевом баре. Возможны случаи, когда сигнал будет повторяться на одном баре не один раз. И даже может не закрепиться. Был ложный. Поэтому стараются брать значения со сформированных баров. Но тогда просится работа по ценам открытия. Хотя варианты могут быть и другие.