Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 751

artmedia70 

 

Спосибо дружище,родина тебя не забудет

Но так и не фурычит компелятор выдает ошиьку 

" 'GetNormalizeOpenPriceBySymbol' - function not defined "

 


pavlicos:

Но так и не фурычит компелятор выдает ошиьку 

" 'GetNormalizeOpenPriceBySymbol' - function not defined "

Я эту функцию привёл целиком. Вставьте её в ваш код за пределом всех функций. В самый конец кода например.

artmedia70 

В обшем не получается,я плохой програмист,но есть интересная стратегия.

пиши мне или я позвоню завтра вечером по скайпу

pavlic@rambler.ru



[Удален]
borilunad:

Я уж ухватываю по-разному, и никак! Если можно, за какой, именно, "краешек"?!

Уменьшается только по высоте, а по ширине никак! Вдруг развернулся во всю ширину Терминала! 

перезагрузись попробуй с полным выключением компа и если есть какой нибудь роутер или хаб или свич - их тоже гасани. потом скажи не забудь - получилось?
[Удален]
pavlicos:

Но так и не фурычит компелятор выдает ошиьку 

" 'GetNormalizeOpenPriceBySymbol' - function not defined "

 


нету, нету функции в коде или название не совпадет. (PS: функции вставляем после основного кода)
_new-rena:
перезагрузись попробуй с полным выключением компа и если есть какой нибудь роутер или хаб или свич - их тоже гасани. потом скажи не забудь - получилось?
Спасибо, так же вдруг встал на своё место! Видно от клика с протаской оно меняется! А у меня на Висте клик уже ослаб, вот иногда и тащится, где не нужно. :)
borilunad:
Спасибо, так же вдруг встал на своё место! Видно от клика с протаской оно меняется! А у меня на Висте клик уже ослаб, вот иногда и тащится, где не нужно. :)
А Виста тут при чём? Мышь, мышь уже сдыхает. Скоро протухнет ;)

как закрыть ордер по закрытию бара или свечи

int start()
  {
      if ((Time[0] == prevtime) && openbarspriceonly) {
      return(0);
      }
   
      if (! IsTradeAllowed()) {
      Comment("Trades disallow");
      return(0);
      }
   
      prevtime = Time[0];

    if (CountTrades() == 0)
    {
        open = iOpen(Symbol(), PERIOD_D1, 0);
        close = iClose(Symbol(), PERIOD_D1, 1);

     if (DayOfWeek()==1&& Ask >= open)
     { 
        ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, Slippage, 0, 0, NULL, Magic, 0, Blue);
        if (ticket>0)
        {
          Print("Ордер ошибка в Лонг: ", GetLastError());
        }
        else 
           Print("Ордер открыт успешно");
        if(OrderSelect( ticket, SELECT_BY_POS))
        {
          if(OrderClose(ticket, lots, close,Slippage,0))
          return(0);
        }
     }
     if (DayOfWeek()==5&& Bid <= open)
     {
        ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, Slippage, 0, 0, NULL, Magic, 0, Red);
        if (ticket>0)
        {
          Print("Ордер ошибка в Шорт ", GetLastError());
        }
        else 
           Print("Ордер открыт успешно");
        if(OrderSelect( ticket, SELECT_BY_POS))
        {
          if(OrderClose(ticket, lots, close,Slippage,0))
          return(0);
        }

     }
    }
    return(0);
  }
ikatsko:

В тестере стратегий команда MarketInfo(Symbol(),MODE_TICKVALUE) = 0 (!) Это происходит в ситуациях, когда, например, инструмент EURUSD а валюта баланса RUR     .... и в других сочетаниях. Я понял так, что валюта баланса должна совпадать с именем второй валюты в валютной паре. Иначе коменда дает значение НОЛЬ (в тестере стратегий) В результате невозможно проводить тестирование в желаемых сочетаниях. Как решить эту проблему?

 

Выделенное неверно! У меня расчёт производится в евро с EURUSD, GBPUSD и др. Только при включении может дать 0, пока не поступили первые данные, поэтому перед вычислениями с TICKVALUE ставлю условие, что если != 0; 

А в тестере MarketInfo() может не работать, поэтому зная примерную цену тика проставляю её с условием IsTesting() || IsOptimization() || IsVisualMode().

 

 "зная примерную цену тика" ? Решение принял такое: примерная цена тика = 10*КурсВалютнойПары (USDВалютаБаланса). Ставится во вх параметрах. Конечно, было бы хорошо, если бы КурсВалютнойПары (USDВалютаБаланса) можно было бы взять в терминале автоматически. А именно, зная валюту баланса (AccountInfoString(ACCOUNT_CURRENCY)), например, RUR, сформировать строку имени символа, например, USDRUR. Посмотреть, имеется ли в терминале такой символ? Может есть подобный, например, USDRUR_c ? Взять в работу КурсВалютнойПары которая имеется в наличии.