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

 
Integer:


Впечатляет уровень буйности фантазий. Что же даные появились только по некоторым символам (котрые данво не были открыты), а не по всем присутствующим в обзоре рынка? Каким это хитрым образом функция RefreshRates() узнала, что какие-то символы надо обновлять, а какие-то нет?

Жунко, завязывай бредить.  

 


Дмитрий, а давайте не будете ругаться.. Лучше помогать друг другу, а то у Вас с Вадимом столько разногласий возникло за последнее время. Я как-то пару дней завис над своими мыслями, не заходил в ветку, а потом как обычно зашёл и всё прошерстил. Так мне было если честно даже смешно читать, именно смешно! Там такая перепалка, и такие дискуссии и съезды что просто диву даюсь :) Местами проскакивали заумные фразы и слова, а по факту чушь полная. Н буду ни кого судить, хотя я со своими далеко не продвинутыми мыслями, самому ещё учиться да учиться (местами плаваю канкретно), так и то понимал и вижу чётко, что бесада доходила до абсурда полного.

 Вроде бы профи собрались, иначе не скажу. Иначе о Вас не скажу, т.к. вижу, что каждый понимает, что делает. Но вот, что само интересно, что у профи бывают такие заскоки, когда они не хотят признавать свои ошибки. Но ведь на ошибках учатся! И ничего зазорного тут нет. Посему если кто ошибся, не нужно съезжать с темы, а проще признаться. Ибо десятки страниц программистского флуда переходящий на личности, это как-то не вариант. Цель то хотя б данной ветки или форума не обосрать друг друга с головы до ног, а так сказать прокачаться в программировании и делится мыслями по этой теме. Так давайте уж жить дружно. Харош скандалить.

 
hoz:

Ну так всё правильно. Ты функцию "прочитай" по строчкам и пойму как она работает, если самому влом писать и всё станет на свои места..

У тебя параметр функции:

 время открытия дневного последнего бара, т.е. все позиции, которые закрыты раньше чем открыта текущая дневка будут просчитаны и просуммированы! Логично? Так вот ставь другой бар, который требуется или что там у тебя. Но это уже сам смотри.


извините , все равно не работает.

Мне нужно чтобы функция возвращала общий профит за СЕГОДНЯ, а не то что было ДО сегодня.

и как я не пытался ...не получается. результат - только вся история.

по идее, если вычесть то что было ДО сегодня из ВСЕЙ истории, то получим то что было сегодня.

double tm1=GetProfitFromDateInCurrency (Symbol(), -1, -1, iTime (NULL, PERIOD_D1, 0));  
double tm2=GetProfitFromDateInCurrency (Symbol(), -1, -1, TimeCurrent());  

Print(  m2-m1 );

 принтует НОЛЬ зараза.....

 
Дураку всегда легче доказать умному, что тот дурак, чем наоборот, ибо умному свойственно сомневаться.
 
lottamer:


по идее, если вычесть то что было ДО сегодня из ВСЕЙ истории, то получим то что было сегодня.

 принтует НОЛЬ зараза.....


 По идее нужно понять, что эта функция делает. А что её понять, нужно разобрать её по строкам целиком. Я Вам уже это сказал. Тут всё элементарно. И помогать нет смысла, т.к. поймёте вы код одной простейшей функции или нет это уже Вам решать.

 Выше я всё описал. 

 
hoz:


Вадим, я запустил Ваш скрипт на терминале, на котором я ни разу не открывал кроме мажоров и кроссов с иеной никаких инструментов. В общем, вот скрин:

Не подкачивается ничего, т.к. массив рыночных данных пуст, судя по комментам.

1. Как запускали? Надо сначала запустить без обновления. Т.е. IsRefreshRates = false. Данные обновляться не будут.

2. Потом запустить с IsRefreshRates = true. Данные обновятся.

Вот скрин 1:                                                                          скрин 2:

 

Обратите внимание на время баров. Ещё видно, что MarketInfo() берёт данные из обзора рынка.

Вот эксперт. Немного подправил. Имя инструмента вывел.

extern string Tool           = "AUDNZD"; // Имя инструмента.
extern bool   IsRefreshRates = true;     // Флаг включения обновления таймсерий.
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start()
 {
  string sTool = Tool; // Имя инструмента.
  if (Tool == "") sTool = Symbol();
  while (!IsStopped())
   {
    if (IsRefreshRates) RefreshRates();
    string sComment = StringConcatenate("MarketInfo() (", sTool, ")\n",
                                        TimeToStr(MarketInfo(sTool, MODE_TIME), TIME_DATE|TIME_MINUTES|TIME_SECONDS), "\n",
                                        DoubleToStr(MarketInfo(sTool, MODE_BID), Digits), "  ", DoubleToStr(MarketInfo(sTool, MODE_ASK), Digits),
                                        "\n\nПредопределенные переменные (", Symbol(), ")\n",
                                        TimeToStr(Time[0], TIME_DATE|TIME_MINUTES|TIME_SECONDS), "\n",
                                        DoubleToStr(Bid, Digits), "  ", DoubleToStr(Ask, Digits),
                                        "\n\nМассивы-таймсерии (", sTool, ")\n");
    for (int i = 0; i < 10; i++)
     {
      sComment = sComment + StringConcatenate(TimeToStr(iTime(sTool, 0, i), TIME_DATE|TIME_MINUTES|TIME_SECONDS), "  ",
                                              DoubleToStr(iOpen(sTool, 0, i), Digits), "  ",
                                              DoubleToStr(iLow(sTool, 0, i), Digits), "  ",
                                              DoubleToStr(iHigh(sTool, 0, i), Digits), "  ",
                                              DoubleToStr(iClose(sTool, 0, i), Digits), "  ",
                                              DoubleToStr(iVolume(sTool, 0, i), 0), "\n");
     }
    Comment(sComment);
    Sleep(300);
   }
 } 
hoz:


Дмитрий, а давайте не будете ругаться.. Лучше помогать друг другу, а то у Вас с Вадимом столько разногласий возникло за последнее время. Я как-то пару дней завис над своими мыслями, не заходил в ветку, а потом как обычно зашёл и всё прошерстил. Так мне было если честно даже смешно читать, именно смешно! Там такая перепалка, и такие дискуссии и съезды что просто диву даюсь :) Местами проскакивали заумные фразы и слова, а по факту чушь полная. Н буду ни кого судить, хотя я со своими далеко не продвинутыми мыслями, самому ещё учиться да учиться (местами плаваю канкретно), так и то понимал и вижу чётко, что бесада доходила до абсурда полного.

 Вроде бы профи собрались, иначе не скажу. Иначе о Вас не скажу, т.к. вижу, что каждый понимает, что делает. Но вот, что само интересно, что у профи бывают такие заскоки, когда они не хотят признавать свои ошибки. Но ведь на ошибках учатся! И ничего зазорного тут нет. Посему если кто ошибся, не нужно съезжать с темы, а проще признаться. Ибо десятки страниц программистского флуда переходящий на личности, это как-то не вариант. Цель то хотя б данной ветки или форума не обосрать друг друга с головы до ног, а так сказать прокачаться в программировании и делится мыслями по этой теме. Так давайте уж жить дружно. Харош скандалить.

Виктор, не обращаете внимание. Есть такие люди, которые не умеют формулировать мысль и не умеют строить аргументированную речь. Для них самый весомый аргумент бранные слова.

Ещё такие люди не восприимчевы к чему-то новому. Дмитрий до сих пор не понял, как можно работать с потоками без организции своей очереди. Он даже не привёл пример, где эта очередь необходима.

Сейчас опять спорит. Вместо того, чтобы проверить и аргументировано доказывать свою позицию.

 
Zhunko:

Виктор, не обращаете внимание. Есть такие люди, которые не умеют формулировать мысль и не умеют строить аргументированную речь. Для них самый весомый аргумент бранные слова.

Ещё такие люди не восприимчевы к чему-то новому. Дмитрий до сих пор не понял, как можно работать с потоками без организции своей очереди. Он даже не привёл пример, где эта очередь необходима.

Сейчас опять спорит. Вместо того, чтобы проверить и аргументировано доказывать свою позицию.


Жунко, ты перегибаешь палку. Все что здесь написано, относится прямо к тебе. Это ты не понял про потоки, не понял почему данные обновились и т.д. но корежишь из себя спеца это полный пц. Еще правильного такого из себя изображаешь.
 
Integer:


Впечатляет уровень буйности фантазий. Что же даные появились только по некоторым символам (котрые данво не были открыты), а не по всем присутствующим в обзоре рынка? Каким это хитрым образом функция RefreshRates() узнала, что какие-то символы надо обновлять, а какие-то нет?

Жунко, завязывай бредить.

 RefreshRates() обновляет только то, с чем работает эксперт. Так вот и узнаёт. Из эксперта. Давно кто-то из Метаквотов писал об этом.
 
hoz:


 По идее нужно понять, что эта функция делает. А что её понять, нужно разобрать её по строкам целиком. Я Вам уже это сказал. Тут всё элементарно. И помогать нет смысла, т.к. поймёте вы код одной простейшей функции или нет это уже Вам решать.

 Выше я всё описал. 


я разобрался.

в общем функция возвращает общий профит , но только того периода который ты САМ выставишь во вкладке История. причем меняет его по ходу работы тут же если изменить период во вкладке ИСТОРИЯ

мне это не нужно.

мне нужно чтобы  он по заданному параметру выставлял период.

пытаюсь внести изменение в саму функцию...

double GetProfitFromDateInCurrency(string sy="", int op=-1, int mn=-1, datetime dt=iTime (NULL, PERIOD_D1, 0)   )
{
  double p=0;
  int    i, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            if (dt<OrderCloseTime()) {
              p+=OrderProfit()+OrderCommission()+OrderSwap();
            }
          }
        }
      }
    }
  }
  return(p);
}

 но компилятор ругается что   

'iTime' - initialization expected

что нужно добавить?  

 
Zhunko:
 RefreshRates() обновляет только то, с чем работает эксперт. Так вот и узнаёт. Из эксперта. Давно кто-то из Метаквотов писал об этом.

Не надо наделять функции языка программирования какими-то мистическими возможностями и свойствами, которыми они не обладают. 

 
На предыдущей странице в конце писал от чего данные обновляются. 
Причина обращения: