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

 
costy_:

Как вам ответить не ведая что NumTimeFrames TimeFrames[i] пустые или как?

Пишите полнее, как, вернее что внимательно читать есль нет ничего. Полный код давайте, иначе, скорее всего, сами будете "грызть гранит науки",,,,)) if(true)continue; else return("Sleep("+7*1000*60*60+")");

Вы правильно поняли дело обстоит именно так


int TimeFrames[]={5,15,30,60}; 
int NumTimeFrames=ArraySize(TimeFrames);
int total_bars[]; ArrayResize(total_bars,NumTimeFrames);
string instrument = Symbol();

// пробегаем по задданым периодам
for(i=0; i<NumTimeFrames; i++)
  {
    // пробегаем по всем барам выбранного периода, ЕСЛИ на нем появились новые бары 
    if(total_bars[i]!=iBars(instrument,TimeFrames[i]))
     {


        // тут вычисления индиктора

        total_bars[i]=iBars(instrument,TimeFrames[i]); // запоминаем число баров на данном периоде
     }


В принципе, как я понял можно отказать от проверки появления новых баров. тогда проблем не будет...

в общем-то можно все свести к простому вопросу, "по каким командам и в какой момент МТ загружает котировки от ДЦ?"

 
palladin:

вы могли бы привести код, которым вы проверяли ваше утверждение?


//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   Print(iBars(Symbol(), PERIOD_D1));
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Reshetov:

как я и предполагал вы не поняли суть вопроса.

попробуйте так:


int start()
  {
//----
   Print(iBars(Symbol(), PERIOD_M1));
//----
   return(0);
  }
//+------------------------------------------------------------------+


Запустите на периоде М5 и подождите минуту, в логе вы обнаружите, что с каждой минутой отображается одно и то же число! Хотя оно, очевидно, должно увеличиваться с каждой минутой)

 
palladin:

как я и предполагал вы не поняли суть вопроса.

попробуйте так:



Запустите на периоде М5 и подождите минуту, в логе вы обнаружите, что с каждой минутой отображается одно и то же число! Хотя оно, очевидно, должно увеличиваться с каждой минутой)



какое число у вас отображается? рекомендую сделать через Comment.

какое время этого iBars бара ?

история по М1 есть?
 

Reshetov, sergeev, costy_

спасибо


я перепроверил, похоже все-таки все работает, и я был неправ в своем предположении.

iBars похоже действительно работает правильно, даже не на текущем графике


 
for(i=0;i<=OrdersTotal();i++)
    {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
    if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
      {
      if(OrderType() == OP_BUYSTOP)
        {
        if(OrderOpenPrice() > priceBuy)
          {
          priceBuy = OrderOpenPrice();
          }
        }
      }
    } 
  if(TakePrices1 == false)
    {  
    bTakeProfit = priceBuy + (10*2)*Point;
    TakePrices1 = true;
    }
Этот кусок выбирает самый верхний ордер на покупку и к его цене прибавляет 20 пунктов, и переставляет тейк профит на этот уровень. Но на самом деле прибавляется не 20 пунктов, а 13. Почему именно 13, не 10, не 30, а именно 13, откуда вообще берется это число?
 
sss2019:
Этот кусок выбирает самый верхний ордер на покупку и к его цене прибавляет 20 пунктов, и переставляет тейк профит на этот уровень. Но на самом деле прибавляется не 20 пунктов, а 13. Почему именно 13, не 10, не 30, а именно 13, откуда вообще берется это число?


20-Spred

Открываемся по Bid, закрываемся во Ask

 
Vinin:


20-Spred

Открываемся по Bid, закрываемся во Ask


Нет, тейк профит то еще не срабатывает. Этот код находит наивысший отложенный ордер на покупку, и от его цены открытия откладывает 20 пунктов. Профит просто переносится на уровень на 20 пунктов больше. Спред тут вроде учитываться не должен, да и к тому же спред фиксированный 2 пункта, а нехватает целых 7.
 
В чем проблема понять не могу. Вроде когда через print вывожу значения все как надо, цена на нужном уровне, но когда это значение подставляю в ордер то, его тейк профит все равно передвигается всего лишь на 13 пунктов.
 

Тра та та