Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 66
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
То, что Вы назвали Трейлингом, по сути таковым не является, он расчитывается другим способом и и его поведение может быть нелогичным.
Пусть наши понятия о терминах не совпадают, но вы же поняли меня?
Проблему решил, она была здесь:
В этой функции не учитывались все открытые трейды, пришлось менять условия цикла. Теперь она имеет такой вид:
Эта функция рассчитывает сумму прибыли от всех открытых трейдов в указанном ей уровне цены. Однако есть котируемое мнение, что в ней не учтен спред, с чем я соглашаюсь. Автор этого мнения предложил такое решение:
Но, признаюсь честно, я его не понимаю, как пишет он:
Но, признаюсь честно, я его не понимаю, как пишет он:
Что-то я не понимаю алгоритма, который он предложил, каким же образом там учитывается спред? Может кто-нибудь объяснить?OrderProfit() считается для коротких позиций по текущему Ask, вот здесь и учитываются значения текущего спреда. Если спред не изменится, то, при изменении цены от величины текущего Bid до newSL профит позиции ( любой, Buy или Sell, с соответствующим знаком ) в один лот изменится на величину delta, что и записано в операторе:
delta = ( newSL - Bid ) * TickValue;
Короче, OrderProfit() считает все с учетом спредов.Фиксируем, с помощью OrderProfit(), результат на определенный момент ( текущая цена). Дальше, нам остается лишь следить за изменением цены.
OrderProfit() считается для коротких позиций по текущему Ask, вот здесь и учитываются значения текущего спреда. Если спред не изменится, то, при изменении цены от величины текущего Bid до newSL профит позиции ( любой, Buy или Sell, с соответствующим знаком ) в один лот изменится на величину delta, что и записано в операторе:
delta = ( newSL - Bid ) * TickValue;
Короче, OrderProfit() считает все с учетом спредов.Фиксируем, с помощью OrderProfit(), результат на определенный момент ( текущая цена). Дальше, нам остается лишь следить за изменением цены.
Кажется начинаю понимать, только, наверное, правильнее так:
Ведь OrderProfit для коротких позиций считается от цены Ask, не так ли?
Кстати MarketInfo( SymbolName, MODE_TICKVALUE) у меня дает 329.02 на паре EURUSD валюта депозита USD, поэтому у меня не считает эта функция все как надо.
Пока решил пойти на хитрость, т.е. MarketInfo(SymbolName, MODE_TICKVALUE) по-другому считать:
Пока решил пойти на хитрость, т.е. MarketInfo(SymbolName, MODE_TICKVALUE) по-другому считать:
Как написано было, так и правильно. На сколько сдвинется Bid, на столько же сдвинется и Ask, при немзменном спреде.
Из личной практики, спред как правило изменный, причем достаточно сильно). При резких движениях наблюдал увеличение спреда с 8 до 80 пунктов на пятизнаке.
Можно ли закодировать(надежно) двойную вершину?
При тестировании советника в журнале выскакивает ошибка
2013.08.07 12:35:41 2012.06.06 05:29 Пуриа - 1.452 - SQ EURUSD,M30: Возникла ошибка 4002 (Индекс массива - вне диапазона)
2013.08.07 12:35:41 2012.06.06 05:29 Пуриа - 1.452 - SQ EURUSD,M30: Попытка открыть Buy ордер. Ожидание ответа..
Соответственно ордера не открываются. Как устранить ошибку? Каковы причины ее возникновения?
Буду рад помощи.
При тестировании советника в журнале выскакивает ошибка
2013.08.07 12:35:41 2012.06.06 05:29 Пуриа - 1.452 - SQ EURUSD,M30: Возникла ошибка 4002 (Индекс массива - вне диапазона)
2013.08.07 12:35:41 2012.06.06 05:29 Пуриа - 1.452 - SQ EURUSD,M30: Попытка открыть Buy ордер. Ожидание ответа..
Соответственно ордера не открываются. Как устранить ошибку? Каковы причины ее возникновения?
Буду рад помощи.