Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 614
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо, что откликнулись. Если не сложно, пришлите, плз, советник, о котором Вы говорите (или его кусок, который именно с каналом) - интересно посмотреть другую реализацию.
Я не могу разобраться в том, что смастерил несколько лет назад. Он почему-то не работает, хотя помню, что раньше работал и торговал. Давайте я разберусь в коде сначала, исправлю его, а потом отправлю. Может завтра. Просто не охота позориться, если вдруг там какие-то детские ошибки.
Общая идея, конечно, такая. А как определять ширину канала (дипазон в Вашем случае)? У меня это делается через размер средней свечи плюс это всё завязано на длину канала, поскольку наличие канала проверяется не на жёстком количестве баров, а, например, на длине от 10 до 30 баров.
Меня интересует вопрос именно выбора ширины от длины...
Можно сделать в одном индюке несколько внешних параметров для ширина канала. И для каждого параметра производить отдельные вычисления.
Для длины аналогично.
Здравствуйте. Корзиночный советник, при наступлении условии должен закрыть все ордера, но он сначала закрывает ордер, потом пытается закрыть его снова (сервер выдает ошибку "Неверный тикет") и только потом идет дальше. Вот пример кода и сам советник.
У Вас в функции CloseOrders(), если ордер закроется, цикл while(cnt<=5 ) еще раз направит код на закрытие ордера, и естественно выйдет ошибка, тогда выход происходит через if().. break;
В функции ProtectionClose() Вы уже добавили строки с корректным выходом из while
Попробуйте здесь покопать.У Вас в функции CloseOrders(), если ордер закроется, цикл while(cnt<=5 ) еще раз направит код на закрытие ордера, и естественно выйдет ошибка, тогда выход происходит через if().. break;
В функции ProtectionClose() Вы уже добавили строки с корректным выходом из while
Попробуйте здесь покопать.Но в случае который я описал ордера закрывает именно функция ProtectionClose(), в этом то и загвоздка. А ту ошибку я исправлю.
Но в случае который я описал ордера закрывает именно функция ProtectionClose(), в этом то и загвоздка. А ту ошибку я исправлю.
Я глубоко код не копал, прогнать в тестере не смог, индикатора нет.
Но, например, Ваши функции OpenUsdbuy(); OpenSellusd() идут подряд.
OpenSellusd() открывает GBPUSD, EURUSD, AUDUSD, NZDUSD и т.д. Их же Вы первыми начинаете закрывать в обратном порядке NZDUSD, AUDUSD и т.д.
В коде который Вы выкладывали, в функции ProtectionClose() только в трех парах есть выход из while в двух вариантах: USDCAD, USDCHF, USDJPY.
В остальных валютах из while() можно выйти только по ошибке if(!Result[..])
Можно сделать в одном индюке несколько внешних параметров для ширина канала. И для каждого параметра производить отдельные вычисления.
В том-то и дело, что я не хочу принудительно задавать ширину канала - советник/индикатор должен определять наличие канала вне зависимости от валютной пары и/или текущей волатильности. Соответственно, из внешних параметров я задаю только минимальную и максимальную длину канала, да и то лишь в процессе отладки алгоритма - потом эти параметры будут вшитыми внутрь. На данном этапе есть некоторые нарекания. И хотя в целом каналы ловятся (картинка была именно с работающего кода), хочется посмотреть другие решения этого вопроса.
Я глубоко код не копал, прогнать в тестере не смог, индикатора нет.
Но, например, Ваши функции OpenUsdbuy(); OpenSellusd() идут подряд.
OpenSellusd() открывает GBPUSD, EURUSD, AUDUSD, NZDUSD и т.д. Их же Вы первыми начинаете закрывать в обратном порядке NZDUSD, AUDUSD и т.д.
В коде который Вы выкладывали, в функции ProtectionClose() только в трех парах есть выход из while в двух вариантах: USDCAD, USDCHF, USDJPY.
В остальных валютах из while() можно выйти только по ошибке if(!Result[..])
Спасибо за подсказку, реально забыл дальше выход из цикла проставить, теперь то точно должно работать, если хотите, то могу индикатор выложить в качестве благодарности.
Общая идея, конечно, такая. А как определять ширину канала (дипазон в Вашем случае)? У меня это делается через размер средней свечи плюс это всё завязано на длину канала, поскольку наличие канала проверяется не на жёстком количестве баров, а, например, на длине от 10 до 30 баров.
Меня интересует вопрос именно выбора ширины от длины...
Ну, а в моём случае, я предложил облегчённый вариант от фонаря назначить высоту канала и минимальное количество баров так-же.
В том-то и дело, что я не хочу принудительно задавать ширину канала - советник/индикатор должен определять наличие канала вне зависимости от валютной пары и/или текущей волатильности. Соответственно, из внешних параметров я задаю только минимальную и максимальную длину канала, да и то лишь в процессе отладки алгоритма - потом эти параметры будут вшитыми внутрь. На данном этапе есть некоторые нарекания. И хотя в целом каналы ловятся (картинка была именно с работающего кода), хочется посмотреть другие решения этого вопроса.
В том-то и дело, что я не хочу принудительно задавать ширину канала - советник/индикатор должен определять наличие канала вне зависимости от валютной пары и/или текущей волатильности. Соответственно, из внешних параметров я задаю только минимальную и максимальную длину канала, да и то лишь в процессе отладки алгоритма - потом эти параметры будут вшитыми внутрь. На данном этапе есть некоторые нарекания. И хотя в целом каналы ловятся (картинка была именно с работающего кода), хочется посмотреть другие решения этого вопроса.
Ну есть мысля ловить 2 подряд верхних фрактала или 2 iHighest-а, состоящих ну, например, из 5-10 свечей. Ловим это дело в определённом диапазоне длины. Если значения этих пиков близки друг к другу, то между этими двумя пиками ищем iLowest. Всё это можно запихнуть в один цикл.
Аналогично искать сначала два нижних пика, а потом между ними верхний.
Далее плясать от этих найденных пиков. Для начала чертим уровни по ним. Потом учим код думать дальше.
Такой вариант избавит нас от такого внешего параметра, как Ширина_канала.
Как ни крути, но хоть какие-то параметры для длины нужны, мне думается.