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

 
drknn:

Пронаблюдал странное поведение тестера стратегий. У меня советник устанавливает и тралит отложенные стоповые ордера. ошибка. Происходит следующее. Советник устанавилвает Байстоп и селлстоп на расстоянии 30 пунктов от текущей цены (Инструмент - GbpUsd. Четырёхзнак. Минимально-допустимый уровень = 3 пункта). Через какое-то время он их подтягивает вслед за рынком, если они не сработали. Так вот, что я вижу. модификация успешна, модификация успешна, а затем в какой-то момент времени хлоп и высскакивает ошибка №1. То есть всё было нормально, советник делал одни и те же действия и вдруг выскакивает эта ошибка. Цены все нормализованы до дигитса. Вообще, все величины, которые подаются на вход функции OrderModify() - всё нормализовано!

В чём может быть причина такого поведения советника в тестере? 

Нормализовать надо для проверки необходимости модификации. А лучше сравнивать модифицированную разницу цен с нулём.

if(NormalizeDouble(цена1 - цена2, _Digits) != 0)


В зависимости от условия может быть лучше поставить < или > нуля.

 
Viktorline14:

Еще раз большое спасибо!

Теперь есть одна проблема советник открывает несколько ордеров подряд, а не один как я хотел(

int start()



  { S1a = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_MAIN, 1), 0);

   S1b = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_SIGNAL, 1), 0);

   

   if(MyOrderStateB == 1)Sleep(300000);

    else MyOrderStateB = 0;

   if(MyOrderStateS == 1)Sleep(300000);

    else MyOrderStateS = 0;

    

 

     

   if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )

 

      if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, Bid - SL * Point, Ask + TP * Point, NULL, 0, 0,clrBlue))

   Print("Opening Buy error #", GetLastError());  

     else Sleep(2);

   MyOrderStateB = 1;

  

   


      

   if(S1a == S1b && S1a>80.0000 && S1b>80.0000 )


    

    

       if(!OrderSend(Symbol(), OP_SELL, OrderValue, NormalizeDouble(Bid, Digits), Slippage, Ask + SL * Point, Bid - TP * Point , NULL, 0, 0,clrRed))

       Print("Opening Sell error #", GetLastError()); 

       else Sleep(2);

       MyOrderStateS = 1;

       

      

       

       

       

   return(0);}


Как-то так.

  int start()

     {
      S1a=NormalizeDouble(iStochastic(NULL,0,S1_period,3,S1_slowing,MODE_SMA,1,MODE_MAIN,1),0);
      S1b=NormalizeDouble(iStochastic(NULL,0,S1_period,3,S1_slowing,MODE_SMA,1,MODE_SIGNAL,1),0);

      if(S1a==S1b && S1a<20.0000 && S1b<20.0000 && MyOrderStateB==0)
         (
        if(!OrderSend(Symbol(),OP_BUY,OrderValue,NormalizeDouble(Ask,Digits),Slippage,Bid-SL*Point,Ask+TP*Point,NULL,0,0,clrBlue))
            Print("Opening Buy error #",GetLastError());
          else
            MyOrderStateB=1;
         )

      if(S1a==S1b && S1a>80.0000 && S1b>80.0000 && MyOrderStateS==0)
        {
       if(!OrderSend(Symbol(),OP_SELL,OrderValue,NormalizeDouble(Bid,Digits),Slippage,Ask+SL*Point,Bid-TP*Point,NULL,0,0,clrRed))
            Print("Opening Sell error #",GetLastError());
         else
            MyOrderStateS=1;
        }



      return(0);
     }
 
Здравствуйте, подскажите пожалуйста, почему push-сообщения приходят иногда с задержкой? Сегодня после включения терминала сообщения пришли на телефон через пол часа. С интернетом было всё ок (телефон находился рядом со своим вайфаем). Чаще всего конечно всё происходит без таких опозданий. Как получение push-сообщений сделать стабильнее?
 
halk2009:
Здравствуйте, подскажите пожалуйста, почему push-сообщения приходят иногда с задержкой? Сегодня после включения терминала сообщения пришли на телефон через пол часа. С интернетом было всё ок (телефон находился рядом со своим вайфаем). Чаще всего конечно всё происходит без таких опозданий. Как получение push-сообщений сделать стабильнее?
А разве кто-то гарантировал моментальную передачу сообщений?
 
evillive:
А разве кто-то гарантировал моментальную передачу сообщений?
Не знаю) по этому и спрашиваю. Чаще всего сообщения приходят моментально, просто хочется что бы так было всегда!) Может быть есть какие то технические стороны вопроса, которые можно подстроить, тем самым повысить надёжность получения push-сообщений.
 
Ребята, подскажите вот какую хрень. Поставил Плайсоунд в советник, чтоб звук проигрывался во время сигнала, так у меня началось подёргивание аудиокарты. То есть появился какой то кратковременный звук, подёргивание. Выключаю терминал всё нормально. Звук проигрывается стандартный..... Что может быть?
 
drknn:

Пронаблюдал странное поведение тестера стратегий. У меня советник устанавливает и тралит отложенные стоповые ордера. ошибка. Происходит следующее. Советник устанавилвает Байстоп и селлстоп на расстоянии 30 пунктов от текущей цены (Инструмент - GbpUsd. Четырёхзнак. Минимально-допустимый уровень = 3 пункта). Через какое-то время он их подтягивает вслед за рынком, если они не сработали. Так вот, что я вижу. модификация успешна, модификация успешна, а затем в какой-то момент времени хлоп и высскакивает ошибка №1. То есть всё было нормально, советник делал одни и те же действия и вдруг выскакивает эта ошибка. Цены все нормализованы до дигитса. Вообще, все величины, которые подаются на вход функции OrderModify() - всё нормализовано!

В чём может быть причина такого поведения советника в тестере? 

В попытке модифицировать ордер, не изменив при этом значения ни одного из его параметров. Я обратил бы внимание на нестрогие сравнения, сделав их строгими. 
 

Доброго времени суток!

Подскажите, плз. Можно формулами для расчёта или ссылью...

Сколько пунктов на EURUSD  должна пройти цена до стоп-аута = 50 %, 200-ом плече - это торговые условия брокера на 1 лоте.  Маржин колл = 100%.

Благодарю.

П.С. Знаю, что нужна цена пункта. Отсюда и считать...

 
_Roman:

Доброго времени суток!

Подскажите, плз. Можно формулами для расчёта или ссылью...

Сколько пунктов на EURUSD  должна пройти цена до стоп-аута = 50 %, 200-ом плече - это торговые условия брокера на 1 лоте.  Маржин колл = 100%.

Благодарю.

П.С. Знаю, что нужна цена пункта. Отсюда и считать...


Проще, когда позиция увеличила эквити на 50%, посчитать пункты! Разница в пунктах будет одинаковая! ;))
 
borilunad:
Проще, когда позиция увеличила эквити на 50%, посчитать пункты! Разница в пунктах будет одинаковая! ;))

:-) Там же стоп аут рассчитывается в процентах от суммы залога...

Да и там в вопросе забыл указать, например, с 1000 $ на депозите.

Причина обращения: