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

 

Подскажите, как организовать пропуск выходных дней, при поиске бара по времени.

 

На примерах мы все рассчеты ведем на дневных графиках, где 1 бар 1 день. 

Например есть время Time[0], и нужно найти времяпяти будущих баров, которые еще не образовались. Если сделать Time[0] + 60 * Period * 5, то при попадании на выходные, бары подсчитываются не верно. 

 
sss2019:

Подскажите, как организовать пропуск выходных дней, при поиске бара по времени.

 

На примерах мы все рассчеты ведем на дневных графиках, где 1 бар 1 день. 

Например есть время Time[0], и нужно найти время пяти будущих баров, которые еще не образовались. Если сделать Time[0] + 60 * Period * 5, то при попадании на выходные, бары подсчитываются не верно. 

Прикольно !!!  Найти будущие бары ! Вы случаем не грааль пишите ??? Как вы хотите найти того что еще не образовалось ???? 

Если вы не правильно выразились то  

Попробуйте  место Time[0] использовать iTime(......)

выходные дни можно определить с помощью DayOfWeek()    где 0 и 6 выходные дни .... 

 

Товарищи подскажите есть ли возможность запретить смену подключений к серверам (что на картинке). заколебало автоматическое переключение. 

сервера 

 
VOLDEMAR:
sss2019:

Прикольно !!!  Найти будущие бары ! Вы случаем не грааль пишите ??? Как вы хотите найти того что еще не образовалось ???? 

Если вы не правильно выразились то  

Попробуйте  место Time[0] использовать iTime(......)

выходные дни можно определить с помощью DayOfWeek()    где 0 и 6 выходные дни .... 

 


Раньше как то делал, проверял каждый бар функций if(iBarShift >= 0)

но сейчас забыл как делал, и запутался, вобщем сделал следующую конструкцию

Print(вход в функцию); 

FindNexttime();

 

int FindNexttime()

{

 И здесь работа этой функции

Print(Нужное время); 

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

 

Доброго дня!!!  

 

Ничего не пойму.  Я просто даже- фух- відохнул и долго сижу, а в ч'м ошибка, поyнимаю всё меньше!

OrderSelect ( tycc, SELECT_BY_TICKET );     Print( " PostayiliSellLot3 ", PostayiliSellLot3 , "   tycc " , tycc , "  OrderType() " , OrderType() );
if ( tycc>0&&PozyProstavleny&&!PostayiliSellLot3){if (OrderSelect ( tycc, SELECT_BY_TICKET ))
     { Print( " мі здесь  OrderSelect ");
         //---- Проверяем SELL этот ордер или нет
         if (OrderType()==SELL)
         {  Print( " мі здесь  rderType()==SELL "); 
             

 Не проходит вторая праверка! Что позиция- селл! 

2013.01.24 11:46:43 2007.11.09 18:32  Версия_динамичный_с_пониманием_Alex_Wearwolfпробуем GBPUSD,H4:  мі здесь  OrderSelect 

2013.01.24 11:46:43 2007.11.09 18:32  Версия_динамичный_с_пониманием_Alex_Wearwolfпробуем GBPUSD,H4:  PostayiliSellLot3 0   tycc 22  OrderType() 1 

2013.01.24 11:46:43 2007.11.09 18:32  Версия_динамичный_с_пониманием_Alex_Wearwolfпробуем GBPUSD,H4:  мі здесь  OrderSelect 

2013.01.24 11:46:43 2007.11.09 18:32  Версия_динамичный_с_пониманием_Alex_Wearwolfпробуем GBPUSD,H4:  PostayiliSellLot3 0   tycc 22  OrderType() 1

2013.01.24 11:46:43 2007.11.09 18:32  Tester: order #22, sell 2.00 GBPUSD is opened at 2.0911

2013.01.24 11:46:43 2007.11.09 18:32  Версия_динамичный_с_пониманием_Alex_Wearwolfпробуем GBPUSD,H4:  мі здесь  OrderSelect 

2013.01.24 11:46:43 2007.11.09 18:32  Версия_динамичный_с_пониманием_Alex_Wearwolfпробуем GBPUSD,H4:  PostayiliSellLot3 0   tycc 22  OrderType() 5


 

Помогите! Нечего и говорить, Понимаю, что в каком-то месте кода, я- баран! 

 

А вот где- не понимаю! 

 

 Папались мне такие конструкции:

Первая ситуация:

while (!IsStopped())
   {
      while (!WaitForTradeContext()) {}
      CorrectionOfStops(type, sl, tp);
      if (OrderModify(ticket, 0, sl, tp, OrderExpiration()))
      {
         Comment("Стоп-приказ и профит успешно установлены!");
         return(true);
      }
      Sleep(1000);
   }
}

 В функции OrderSend вместо новой цены открытия отложенного ордера указан 0(нуль), как это понимать?

 

Второй момент:

int ticket = OpenOrderWithInstantMode(type, lot, price, 0, 0, magicNumber);
   if (ticket <= 0)
      return(false);
    
   if (!OrderSelect(ticket, SELECT_BY_TICKET) || 
       OrderCloseTime() != 0)   
   {
      Alert("Фатальная ошибка при установке стопов и профитов нового ордера!");
      return(false);
   }

  Здесь OrderCloseTime() != 0 по логике не должно относится к тому ордеру который выбран функцией OrderSelect т.к. между ними вообще стоит оператор || а не скобки, например. Поясните, пожалуй ста, данный момент.

 
Черт его знает, но где же OrderSend? Там OrderModify!  Наверно, ноль- это цена остаётся прежней!
 
hoz:

Второй момент:

  Здесь OrderCloseTime() != 0 по логике не должно относится к тому ордеру который выбран функцией OrderSelect т.к. между ними вообще стоит оператор || а не скобки, например. Поясните, пожалуй ста, данный момент.


чтоб уберечься от оптимизации компилятора - эта конструкция неверная,

так как неизвестно что будет проверено раньше - OrderSelect или OrderCloseTime

 
Помогите же! Дело с места не движется.
Причина обращения: