[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 136

 
Скажите кто знает, почему временами уровень минимального стоплосса и профита иногда меняется, в коде советника, записано мин 100. но он не-всегда срабатывает. в один такой момент, попробовал вручную поставить, а МТ ругался и настаивал что мин должен быть 300. и это уже не в первый раз... это что глюк такой???
 

К сож, это не глюк.

Некоторые ДЦ повадились (по поводу и без повода) менять несколько раз в течение дня величину минимально допустимых стопуровней.

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

На самом деле, это во многих случаях сводит к минимуму вашу прибыль (либо увеличивает ваши убытки), - т.е. такая мера  увеличивает доход ДЦ

Вам ещё повезло, что вы не сталкивались с подобной же опцией  - "FREEZE LEVEL" (у особо алчных ДЦ есть такое)!

Я обычно в коде советника предусматриваю(к примеру):

 double PriceBuy      =  ObjectGet("EntryL0", OBJPROP_PRICE1);      // Цена покупки
   double ProfitBuy     =  ObjectGet("TargetL0", OBJPROP_PRICE1);     // Цена прибыли
   double LossBuy       =  ObjectGet("LL30", OBJPROP_PRICE1);         // Цена убытка
   if ((PriceBuy-Ask) < MODE_STOPLEVEL*Point) PriceBuy  = (Ask+MODE_STOPLEVEL*Point);//расст. от цены
   if ((ProfitBuy -PriceBuy) < MODE_STOPLEVEL*Point) ProfitBuy = (PriceBuy +MODE_STOPLEVEL*Point);//тейк 
   if ((PriceBuy-LossBuy) < MODE_STOPLEVEL*Point) LossBuy = (PriceBuy - MODE_STOPLEVEL*Point);//лосс
//------- задаем значения линий для продажи --------------   
   double PriceSell     =  ObjectGet("EntryH0", OBJPROP_PRICE1);      // Цена продажи
   double ProfitSell    =  ObjectGet("TargetH0", OBJPROP_PRICE1);     // Цена прибыли
   double LossSell      =  ObjectGet("HH30", OBJPROP_PRICE1);         // Цена убытка
   if ((Bid -PriceSell) < MODE_STOPLEVEL*Point) PriceSell= (Bid - MODE_STOPLEVEL);  
   if ((PriceSell-ProfitSell) < MODE_STOPLEVEL*Point) ProfitSell= (PriceSell -MODE_STOPLEVEL*Point);//тейк  
   if ((LossSell-PriceSell) < MODE_STOPLEVEL*Point) LossSell = (PriceSell + MODE_STOPLEVEL*Point);//лосс
 
sergeev >>:
if (MathMod(Minute()+1, 5) ==0)
  {
      bWas=false;
      if (Seconds()>=50 && !bWas)
      {
        // делаем то что вам надо 
          bWas=true; // только один раз
          RefreshRates(); // обновляем данные валюты
        //........
      }
  }

Но

int Minute( )
Возвращает текущую минуту (0,1,2,..59) последнего известного серверного времени на момент старта программы (в процессе выполнения программы это значение не меняется).

и

int Seconds( )
Возвращает количество секунд, прошедших с начала текущей минуты последнего известного серверного времени на момент старта программы (в процессе выполнения программы это значение не меняется).

 
SK. писал(а) >>

Частота "разговора" должна быть небольшой, иначе брокер сочтёт это явление нежелательным и может запретить использование советников.

А, что, брокер может запретить использование советников конкретному пользователю? Или наложить ограничения на торговый счет?

Если в условиях торговли написано, что торговля советниками разрешена?

 
JavaDev >>:

И как смещение от GMT может повлиять на таймсерию M5 относительно D1 ?

Просвятите Уважаемый DrShumiloff.

Вопрос новичка с двадцатилетним стажем программирования.

Я могу только просвЕтить, т.к. учение - свет. А просвЯщаться, т.е. становиться святым - это в Церковь.

Касательно Вашего вопроса.


Человек спрашивает: "Как найти бар допустим на пятиминутке начала дня."

Вы, когда берете начало текущего дня:

iTime(Symbol(), PERIOD_D1, 0)

не учитываете, что время открытия дневной свечки в брокерских котировках достаточно произвольно.

У меня, например, на Альпари смещение от GMT составляет 4 часа. Поэтому при расчете уровней пивотов, например, приходится пересчитывать все цены открытия-закрытия с учетом этого смещения.

Правильнее было бы взять текущий час, прибавить к нему смещение и узнать время открытия вычисленного номера бара на часовках.

 

Повторяю вопрос - ПРИЧЁМ ТУТ GMT ?.

Покажите КОД - как это правильно сделать (по Вашему), а не пустые замечания.

 

Здраствуйте Все!!!

как переделать файл ex.4 в файл mq4?

 
декомпелировать, декомпелятором.
 
BARS писал(а) >>
декомпелировать, декомпелятором.

Это что за зверь? И где его взять?

 
VeDMeD >>:

Но

int Minute()
Возвращает текущую минуту (0,1,2,..59) последнего известного серверного времени на момент старта программы (в процессе выполнения программы это значение не меняется).

и

int Seconds()
Возвращает количество секунд, прошедших с начала текущей минуты последнего известного серверного времени на момент старта программы (в процессе выполнения программы это значение не меняется).


вы сначала код проверьте (принт вставте или соммент) - а потом в хелп смотрите. первое правило программиста! :)

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