Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
WHRoeder, Этот код выглядит так просто, но я не могу понять, как он работает, разве оператор if не будет всегда истинным, если он делает time0 равным time[0] каждый раз, когда time0 равно time[0]? Я не говорю, что это не работает, но я просто не понимаю, как это работает в такой структуре.
1-й тик: Time0 не равно Time[0 ], поэтому return не выполняется,Time0 устанавливается в Time[0 ] (время начала текущего бара) и выполняется остальная часть функции start.
Второй и последующие тики: если Time0 по-прежнему равен времени начала текущего бара, то мы все еще находимся на том же баре, выполняется return и функция start завершается. Если Time0 не равно времени начала текущего бара, то мы находимся на новом баре, return не выполняется, Time0 устанавливается в Time[0] (время начала нового текущего бара), выполняется остальная часть функции start.
Как мне сделать счетчик, чтобы если отложенный ордер установлен и не срабатывает в течение x количества баров, то он должен быть отменен? Все, что я могу придумать, это установить счетчик для подсчета каждого нового бара и если количество подсчитанных баров == заданному допустимому количеству баров, то отложенные ордера отменяются. Счетчик баров сбрасывается каждый раз, когда открывается новый отложенный ордер? Как это звучит?
Я бы создал функцию, которая проверяет наличие отложенных ордеров, смотрит, когда каждый ордер был открыт, проверяет, сколько времени прошло, и если больше установленного лимита времени, то закрывает ордер.
Я хочу сделать функцию, которая сканирует eurusd, usdchf, gbpusd, usdjpy на 1hr tf. Она возвращается к последней 06:00 gmt свече, записывает открытие, возвращается еще на 24 бара к предыдущей 06:00 gmt свече, записывает открытие и записывает диапазон 6gmt -6gmt для каждой пары. Затем сравнивает диапазон 6gmt - 6gmt всех пар и возвращает тот, который является самым высоким. Возможно ли, чтобы ea делала это, будучи привязанной к 1 временному графику?
Со всеми подобными проблемами, прежде чем думать о коде, вы должны сначала придумать решение... IMO. Создайте блок-схему или напишите псевдокод. Сначала найдите решение, которое имеет смысл... затем смотрите на код.
Чтобы ответить на ваш последний вопрос, да, это возможно сделать, например, чтобы получить значение открытия для определенной свечи из другой пары, чем та, на которой работает советник, я бы использовал...
После того, как у вас есть значения для ярости 4 пар, вы можете легко определить наибольшее значение, используя что-то вроде этого:
... или вы можете поместить значения в массив и использовать ArraySort ... обычно есть более чем один способ сделать что-либо, сначала вы должны иметь план того, как вы собираетесь решить свою проблему.
EDIT: имейте в виду, что некоторые из этих вещей не будут корректно работать с тестером стратегий.
Итак, это моя попытка написать код, который будет сканировать часовой график eurusd, пока не найдет последний бар 06:00, запишет его открытие, вернется на 24 бара назад, чтобы записать открытие этого бара (начало дня 06:00) и получит диапазон open-open из этих двух выбранных баров.
Сюрприз-сюрприз, это не работает. Лол ------> http://myfacewhen.com/307/
Подскажите, что я напутал? Или я просто неправильно подошел к этому? Я пробовал, хе-хе.
Замечена одна проблема... 24 часа до b - это b+24 ... бары отсчитываются от текущего бара (0) влево.
Молодец, что добавляешь комментарии, очень хорошая практика, чтобы вникнуть... :-)
Замечена одна проблема... 24 часа до b - это b+24 ... бары отсчитываются от текущего бара (0) влево.
Молодец, что добавляешь комментарии, очень хорошая практика, чтобы вникнуть... :-)
Вау, хорошо подмечено, мне бы потребовалось время, чтобы понять это lol. Не могу поверить, что я все правильно понял - эта глупая ошибка. Теперь я чувствую, что у меня что-то получается. Да, я добавил комментарии, чтобы помочь мне следить за тем, что я делаю, и чтобы вам, ребята, было проще понять, что я пытаюсь сделать. Теперь я собираюсь заставить его сравнить 4 пары и выплюнуть одну с наибольшей ценностью И дам вам знать, как я с этим справлюсь. Спасибо RaptorUK
Итак, я превратил все переменные в массивы и запустил проверки для каждой из них. Теперь это перестало работать. Можно ли использовать несколько циклов for?
Да, вы можете, без проблем, но не используйте массив в индексе цикла for, вы можете использовать b каждый раз, если хотите. Он сбрасывается в 0 в каждом цикле for, так что повторное использование не проблема. Для чего вам на самом деле НУЖНО использовать массив? Разве не только для значений диапазона?