[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 50

 
IgorM:

всю голову уже себе поломал, не найду оптимального решения для расчетов в индикаторе:

как найти № бара на младшем ТФ котором начинается день(или 4 часа) и на котором заканчивается день(или 4 часа)?


А iBarShift() уже не помогает?
 

Помогите перебрать символы валют в одном расчете. Сделал так (ниже), iClose и iBar возвращают нули, понимаю проблема в symbn= "symb" + j. Но symbn возвращает то что надо symb1 например.

Что я делаю неправильно? Как сделать корректно перебор валют в списке?

        int nSymb = 2;
        symb0="EURUSD";
        symb1="GBPUSD";
        
        for (j=0; j<nSymb; j++){
        for (i=0; i<Bars; i++){
                // получаем полуночный бар
                symbn = "symb" + j;
                str = TimeYear(Time[i])+"."+TimeMonth(Time[i])+"."+TimeDay(Time[i]);
                time0 = StrToTime(str);
                bar0=iBarShift(symbn, 0, time0);
                // берем цену закрытия предыдущего дня
                pc=iClose("symb"+j, 0, bar0+1); Content[j][0]=0;
                if (pc!=0) Content[j][0]=(iClose(symbn,0, i )  *100)/pc-100;
 
Vinin:А iBarShift() уже не помогает?

про iBarShift() знаю, но для определения начала дня и окончания дня использую так:

int start(){
   int    i,limit,counted_bars;
   counted_bars=IndicatorCounted();
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars-1;
   for(i=limit; i>=0; i--){
      if(TimeDay(Time[i]) != TimeDay(Time[i+1])){
            // начался новый день, обнуляю все что нужно
      }else{
            // продолжается текущий день, считаю все что нужно
      }
   }
return(0);
}
код в принципе работоспособный, но теряется универсальность - можно ввести условия и относительно недели/месяца вести расчет, относительно нового часа тож, а вот относительно нового Н4 тут уже возникают сложности, хотелось бы некой униврсальности


 
Kondratiev_A_A:

Помогите перебрать символы валют в одном расчете. Сделал так (ниже), iClose и iBar возвращают нули, понимаю проблема в symbn= "symb" + j. Но symbn возвращает то что надо symb1 например.

Что я делаю неправильно? Как сделать корректно перебор валют в списке?

Разные типы.

        int nSymb = 2;
        symb0="EURUSD";
        symb1="GBPUSD";
        
        for (j=0; j<nSymb; j++){
        for (i=0; i<Bars; i++){
                // получаем полуночный бар
                symbn = "symb" + j;
                str = TimeYear(Time[i])+"."+TimeMonth(Time[i])+"."+TimeDay(Time[i]);
                time0 = StrToTime(str);
                bar0=iBarShift(symbn, 0, time0);
                // берем цену закрытия предыдущего дня
                pc=iClose("symb"+j, 0, bar0+1); Content[j][0]=0;
                if (pc!=0) Content[j][0]=(iClose(symbn,0, i )  *100)/pc-100;
 
Kondratiev_A_A: Как сделать корректно перебор валют в списке?

Вам нужно массивы использовать, примерно так:

#define nSymb  2

string symb[nSymb];

symb[0] = "EURUSD";
symb[1] = "GBPUSD";
//................
int start(){
      for (j=0; j<nSymb; j++){
            //................
            bar0=iBarShift(symb[j], 0, time0);
            // берем цену закрытия предыдущего дня
            pc=iClose(symb[j], 0, bar0+1); Content[j][0]=0;
            //................
      }//for
//................
return(0);
}// start()
 
Всем спасибо за помощь, начинаю разбираться)!!!
 
Часто пропадает интернет, нельзя, ли автоматизировать программно его повторный запуск? Или что в этом направлении известно? Есть ли способ одновременно запитать от двух и более провайдеров, в смысли, паралельно? Заранее благодарю.
 
yosuf:
Часто пропадает интернет, нельзя, ли автоматизировать программно его повторный запуск? Или что в этом направлении известно? Есть ли способ одновременно запитать от двух и более провайдеров одновременно, в смысли, паралельно? Заранее благодарю.
Можно от двух провайдеров. Одним может быть, например, сотовый оператор.
 
yosuf:
Часто пропадает интернет, нельзя, ли автоматизировать программно его повторный запуск? Или что в этом направлении известно? Есть ли способ одновременно запитать от двух и более провайдеров, в смысли, паралельно? Заранее благодарю.
в любом случае правильно -VPS ( а не правильно - маршрутизатор с 2WAN портами и не говорите что это дорого) (с сайта производителя - По умолчанию в TL-R470T+ только два порта настроены на режим WAN: порт 1 и порт 2 работают в режиме WAN, в то время как порты 3-5 настроены на режим LAN.)
 

yosuf


сделайте себе bat файл который будет проверять наличие соединения и если произошел обрыв восстанавливать соединение