Предложение администрации и местным жителям - страница 6

 
Фьючерсные объемы для МТ:

Присоединяюсь к вопросу -- чем хреновый код в первом посте?

По поводу ООП. Материала не просто много, его валом. Просто не на этом сайте. И даже здесь немного есть. Просто кто-то ленится нормально поискать и поучить.

Как миимум тем что он работает только на том сиволе на который установлен советник....
 
Vladimir Pastushak:
Как миимум тем что он работает только на том сиволе на который установлен советник....

Нет, код вполне хорош. Просто вы от него хотите то, для чего он не предназначен.

И это будет самой главной проблемой для вашего предложения вообще.

Многие вещи можно написать эффективно множеством способов. Разные люди по-разному оценивают и задачу, и решение, и критерии его эффективности.

 

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

 
Владимир:

Не волнуйтесь. Это не мое ремесло.

Если я попрошу показать пример написания кода скажем "Сколько время осталось до окончания таймфрейма?" Вы со 100% гарантией отправите меня  на отъ*%*#@  

или в отдел работа. Это только за то, что бы показать пример!

Это и есть боятся и не хотят. Но пальцы всегда растопырены.

Так же можно сказать что большая часть просящих показать код, просто лентяи, и им лень поковырять кодабазу что бы найти код "Сколько время осталось до окончания таймфрейма?"

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

 

Владимир:

Правильно  VOLDEMAR подметил. Программисты бывают разные.

Artyom Trishkin 2015.05.31 11:27

//+----------------------------------------------------------------------------+
   datetime GetTimeLeft(string symbol, int timeframe) {return(60*timeframe+(iTime(symbol,timeframe,0)-TimeCurrent()));}
//+----------------------------------------------------------------------------+

Я выбираю Artyom Trishkin...

Согласен, было бы удивительно, если бы были все одинаковыми...

А я уважаю Артёма (artmedia70), но в данном случае не могу его выбрать... и краткость кода, это ещё не панацея.

Краткий код может быть незащищённым и потенциально опасным...

iTime

Возвращает значение времени открытия бара (указанного параметром shift) соответствующего графика.

datetime  iTime(
   string           symbol,          // символ
   int              timeframe,       // период
   int              shift            // сдвиг
   );

Параметры

symbol

[in]  Символьное имя инструмента. NULL означает текущий символ.

timeframe

[in]  Период. Может быть одним из значений перечисления ENUM_TIMEFRAMES. 0 означает период текущего графика.

shift

[in]  Индекс получаемого значения из таймсерии (сдвиг относительно текущего бара на указанное количество баров назад).

Возвращаемое значение

Значение времени открытия бара (указанного параметром shift) соответствующего графика или 0 в случае ошибки. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().


 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Предложение администрации и местным жителям

Vladimir Pastushak, 2015.05.31 08:20

Для Вас вопрос какой код по Вашему более правильный ???

1

void depth_trend()
  {
//--- определение индекса на покупку
   double rsi=iRSI(Symbol(),tf,period,PRICE_CLOSE,0);
   index_rsi = 0;
   if(rsi>90.0) index_rsi=4;
   else if(rsi>80.0)
      index_rsi=3;
   else if(rsi>70.0)
      index_rsi=2;
   else if(rsi>60.0)
      index_rsi=1;
   else if(rsi<10.0)
      index_rsi=-4;
   else if(rsi<20.0)
      index_rsi=-3;
   else if(rsi<30.0)
      index_rsi=-2;
   else if(rsi<40.0)
      index_rsi=-1;
  }

2

int refresh_depth_trend()
  {
   int    index_rsi=0;
   double rsi=iRSI(Symbol(),0,14,PRICE_CLOSE,0),up=60,dw=40;
   for(int i=1; i<=4; i++,up+=10,dw-=10)
      index_rsi=rsi>up ? i : rsi<dw ?(i*-1):index_rsi;
   return index_rsi;
  }

3

int refresh_depth_trend()
  {
   return MathFloor( MathAbs( (rsi-50.0)/10.0 - (rsi-50.0)*0.0001 ) ) * ((rsi>50)-0.5)*2;
  }

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

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

 
Владимир:

Я выбираю 

Вот потому программисты и пускают пальцы веером :) Выбирать-то вам здесь на самом деле не из чего а вы этого не поняли. В моём файле пример реализации с посекундным выводом оставшегося времени на график. А эта функция обновит таймер только по приходу очередного тика, когда обновится TimeCurrent() + её вывод ещё надо как-то реализовать, т.е. обвешать некратким кодом. В моём примере вся обвеска с прецизионной оптикой уже есть а TimeCurrent() используется чисто для синхронизации с сервером :)
 
Кстати TimeCurrent ооочень капризная функция
 
А в MQL5 есть TimeTradeServer - оч интересно, но ещё не было повода попользоваться
Документация по MQL5: Дата и время / TimeTradeServer
Документация по MQL5: Дата и время / TimeTradeServer
  • www.mql5.com
Дата и время / TimeTradeServer - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexander Puzanov:
Вот потому программисты и пускают пальцы веером :) Выбирать-то вам здесь на самом деле не из чего а вы этого не поняли. В моём файле пример реализации с посекундным выводом оставшегося времени на график. А эта функция обновит таймер только по приходу очередного тика, когда обновится TimeCurrent() + её вывод ещё надо как-то реализовать, т.е. обвешать некратким кодом. В моём примере вся обвеска с прецизионной оптикой уже есть а TimeCurrent() используется чисто для синхронизации с сервером :)

А что, вы спотыкаетесь о "веер" из моих пальцев?

Я показал как узнать сколько времени осталось до открытия следующей свечи любого таймфрейма. Всё. Вопрос-то был именно о том.

 
Уважаемые программисты, где можно ознакомиться с методом программирования на мкл, где напрямую используются программы, заложенный в столбцах экзель и таким образом, "загоняется" вся программа экзель в мкл?