Подскажите как узнать цвет свечи другого символа (валютной пары)
Такая потребность нужна, так как отслеживаю пары входящие в индекс. Только по раздельности
gbpchf.candle(H1)[TimeCurrent()].color :-)
шутка конечно...
1. сначала узнать где там соответствующая свеча. Потому как не факт что она есть и время соответствует. barShift=iBarShift(otherSymbol,PERIOD,time);
2. получить данные по этому смещению. CopyRates(....)
2.1. убедиться что они получены или заставить терминал их подкачать и вернуться к пп2
3. Сравнить rates[i].open и rates[i].close - это искомый цвет. Но учесть что open и close могут быть некорректны (может сверкануть 0 или EMPTY_VALUE).
gbpchf.candle(H1)[TimeCurrent()].color :-)
шутка конечно...
1. сначала узнать где там соответствующая свеча. Потому как не факт что она есть и время соответствует. barShift=iBarShift(otherSymbol,PERIOD,time);
2. получить данные по этому смещению. CopyRates(....)
2.1. убедиться что они получены или заставить терминал их подкачать и вернуться к пп2
3. Сравнить rates[i].open и rates[i].close - это искомый цвет. Но учесть что open и close могут быть некорректны (может сверкануть 0 или EMPTY_VALUE).
Спасибо за уделенное внимание к моему вопросу!
gbpchf.candle(H1)[TimeCurrent()].color :-)
шутка конечно...
1. сначала узнать где там соответствующая свеча. Потому как не факт что она есть и время соответствует. barShift=iBarShift(otherSymbol,PERIOD,time);
2. получить данные по этому смещению. CopyRates(....)
2.1. убедиться что они получены или заставить терминал их подкачать и вернуться к пп2
3. Сравнить rates[i].open и rates[i].close - это искомый цвет. Но учесть что open и close могут быть некорректны (может сверкануть 0 или EMPTY_VALUE).
double Close2_1 = iClose(_Symbol,PERIOD_CURRENT,i+2); double Open2_1 = iOpen(_Symbol,PERIOD_CURRENT,i+1);вот так не будет ошибкой?
Скажите вот так не будет ошибкой?
Здесь Вы взяли значения цены Close для текущего символа и текущего таймфрейма. А ведь хотели получить данные с другого символа. Тогда, как минимум, нужно делать хотя бы так:
iClose("GBPJPY", PERIOD_H1, i + 2);
Тогда, если советник (индикатор) запущен на EURUSD и M5, то для такой программы это будет действительно "другой символ".
Но при таком подходе нужно соблюсти хотя бы такие меры предосторожности: проверить возвращенное значение и код последней ошибки. Потому как данные другого символа могут быть еще не готовы в окружении терминала.
Здесь Вы взяли значения цены Close для текущего символа и текущего таймфрейма. А ведь хотели получить данные с другого символа. Тогда, как минимум, нужно делать хотя бы так:
Тогда, если советник (индикатор) запущен на EURUSD и M5, то для такой программы это будет действительно "другой символ".
Но при таком подходе нужно соблюсти хотя бы такие меры предосторожности: проверить возвращенное значение и код последней ошибки. Потому как данные другого символа могут быть еще не готовы в окружении терминала.
double Close2_1 = iClose(Para1,PERIOD_CURRENT,i+2); double Open2_1 = iOpen(Para1,PERIOD_CURRENT,i+1); double Close2_1 = iClose(Para2,PERIOD_CURRENT,i+2); double Open2_1 = iOpen(Para2,PERIOD_CURRENT,i+1);
Вот так я имела ввиду
будет :-) Open и Close свечей берутся с одинаковым индексом (чтобы они относились к одной свече)
а так у вас проверка на геп..Close2_1-Open2_1=GAP, а не цвет свечки
double Close2_1 = iClose(Para1,PERIOD_CURRENT,i+1); double Open2_1 = iOpen(Para1,PERIOD_CURRENT,i+1); if ((Close2_1 - Open2_1) > 0) { Print("Зеленая"); }Или я ошибаюсь?
вот теперь почти что нет, почти не ошиблись (теперь у вас везде i+1, одинаково)
но если строите индексы или соотносите с другими парами, надо помнить что этот самый пресловутый "i" у всех разный.
Что-то я запуталась... если я пишу:
for(int i=0; i<ShowBars; i++) { double Close1 = iClose(Para1,PERIOD_CURRENT,i+1); double Open1 = iOpen(Para1,PERIOD_CURRENT,i+1); double Close2 = iClose(Para2,PERIOD_CURRENT,i+1); double Open2 = iOpen(Para2,PERIOD_CURRENT,i+1); double Close3 = iClose(Para3,PERIOD_CURRENT,i+1); double Open3 = iOpen(Para3,PERIOD_CURRENT,i+1); if ((Close1 - Open1) > 0) && ((Close2 - Open2) > 0)&& ((Close3 - Open3) > 0) { Print("Все Зеленые"); } }
i - для всех будет одинакова?
Т.е. цикл будет для всех i - одинаковое число передавать?
Или я ошибаюсь?
Что-то я запуталась... если я пишу:
i - для всех будет одинакова?
Т.е. цикл будет для всех i - одинаковое число передавать?
Или я ошибаюсь?
ошибаетесь.
например в 10:00 у вас свеча H1 с индексом i=1, на EURUSD будет начинаться в 9:00 , на GBPCHF скорее тоже, а например NZDCAD в 8:00...рядовая ситуация, по 24 раза в день. С металлами так ещё хуже того
ещё раз - чтобы узнать "цвет" свечи 10:00 разных символов - сначала для каждой пары выяснить индекс. iBarShift .
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Подскажите как узнать цвет свечи другого символа (валютной пары)
Такая потребность нужна, так как отслеживаю пары входящие в индекс. Только по раздельности