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

 
laveosa:

полностью качни историю.... поможет, с окном может помочь переустановка терминала.... и выставление setings по defolt
подскажите ,что значит "качни историю" как и где это ? как выставить setings no defolt &
 
gheka: здравствуйте добрые и продвинутые люди!!! ... не уже ли никто не подскажет?

и тебе привет грамотный человечище!!!!!!! неуж ели невтер пёж

Что такое сегодняшний день? То, что у вас сегодня, у брокера может быть завтра (или вчера) - разные таймзоны ...  Ладно, без нотаций. Можете так попробовать:

if(TimeYear(t)== Year() && TimeDayOfYear(t)== DayOfYear())


А вообще по коду несколько замечаний: (1) использование переменой  t в сравнении без предварительной инициализации (в любой момент может появиться логическая ошибка), (2) зачем сравнение на "сегодняшний день" вынесено из цикла, (3) отсутствует оператор break в цикле (зачем перебирать все ордера, вам же нужен хотя бы один ордер, который был сегодня закрыт).

 

У меня вопрос по тестеру стратегий в MT4, по какой причине в журнале при тестировании могут выходить пустые алерты? типа такого:

2013.04.18 00:22:19     2010.03.22 17:30  sova EURUSD,M30: Alert: 

2013.04.18 00:22:19     2010.03.22 17:31  sova EURUSD,M30: Alert: 

2013.04.18 00:22:19     2010.03.22 17:31  sova EURUSD,M30: Alert:  

 и что это может означать?

 
gheka:

здравствуйте добрые и продвинутые люди!!!

нужна очень ваша помощь!!! помогите дополнить код вместо   " ########  == сегодняшний день "

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

и чтобы эта функция возвращала true или false есть ли сегодняшнего дня закрытый ордер

буду очень признателен

https://www.mql5.com/ru/forum/107476/page53#111201
 
GaryKa:

и тебе привет грамотный человечище!!!!!!! неуж ели невтер пёж

Что такое сегодняшний день? То, что у вас сегодня, у брокера может быть завтра (или вчера) - разные таймзоны ...  Ладно, без нотаций. Можете так попробовать:

if(TimeYear(t)== Year() && TimeDayOfYear(t)== DayOfYear())


А вообще по коду несколько замечаний: (1) использование переменой  t в сравнении без предварительной инициализации (в любой момент может появиться логическая ошибка), (2) зачем сравнение на "сегодняшний день" вынесено из цикла, (3) отсутствует оператор break в цикле (зачем перебирать все ордера, вам же нужен хотя бы один ордер, который был сегодня закрыт).


cпасибо огромное
 

правда, смотрел, видать херовенько смотрел)) спс, а ведь 2 часа страдал поиском
 
tuner:

У меня вопрос по тестеру стратегий в MT4, по какой причине в журнале при тестировании могут выходить пустые алерты? типа такого:

 и что это может означать?


По опыту - это значит, что код до алерта доходит, но в алерте находится строковая переменная, которая на момент вывода в него пустая. Ну или в коде вообще что-либо там не стоит, это означает что либо по невнимательности ничего не прописано, либо разработчик ставил его чисто для себя: "сюда дошло, всё нормально".
 
borilunad:

Дебри! Я минимальный лот определяю от свободной маржи, или не открываю, чтобы на маржинкол не напороться!

Посмотрел, понятнее, чем в Вике, но нет необходимости применять, лишняя заморочка! Арифметика удобней, нагляднее!


 Да. То что это головняк полностью с Вами согласен! Но, тем не менее, мне очень интересно. Если всё пишется проще, то зачем программист пишет так? Чтоб кто-то другой читающий этот код сломал мозг что-ли и не осилил его?

 Смотрю я на эту цепочку и не въезжаю, зачем так всё усложнять.... 

 
GaryKa:
to hoz Сначала чуток теории


А теперь вывод

Подчеркнутое выражение возвращает десятичный логарифм (логарифм по основанию 10) для bd_LOTSTEP, тоесть показывает в какую степень надо возвести 10 чтобы получить bd_LOTSTEP.


Хм. Вы чутка ошиблись...

//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|        Функция, определения минимальной разрядности лота                          |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
int LotDecimal()
{return (MathCeil (MathAbs (MathLog (bd_LOTSTEP) / MathLog (10))));}

  Там же не десятичный логарифм, а натуральный! А значит верхняя часть будет значить в какую степень возвести e, чтоб получить bd_LOTSTEP, а ниже в какую степень возвести e, чтоб получить 10.

Только вот логику я не понял функции всё-равно. 

 
hoz:


 Да. То что это головняк полностью с Вами согласен! Но, тем не менее, мне очень интересно. Если всё пишется проще, то зачем программист пишет так? Чтоб кто-то другой читающий этот код сломал мозг что-ли и не осилил его?

 Смотрю я на эту цепочку и не въезжаю, зачем так всё усложнять.... 

Тут скажу в защиту программиста! Если он делает для себя, тогда то, что он вывел раньше, просто вставляет для быстроты, как собирает конструктор. Если же делает по заказу, тогда заказчик может просить, чтобы всё было понятно непосвящённому, или не знает, что надо просить. А хочешь въехать, тебе выше уже хорошо объяснили, что и как, может, въедешь. Меня пока логарифмы не интересуют. Больше волнует создание самоподлаживающего под рынок алгоритма. :))
Причина обращения: