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

 
SpikeOne:

Приветствую вас профи программирования!

Появилась отличная идея, есть такой вот советник https://www.mql5.com/ru/code/11030 проверил и оттестировал на нём идею работы ночью.

Идея заключается в чём: запускается советник в полночь по Москве, по достижению 3-4 утра ждём закрытия ордеров с определённым тейк профитом, после достижения тейк профита, отключаем советника, и на следующий день снова запускаем его в полночь.

Возможно ли это реализовать? Если да то не скажете в какое место кода можно вставить проверку условия на время (к примеру время достигло 3 ночи) и проверку на закрытость тейк профитов.

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

Для начала определитесь: Что будете делать, если к утру прибыли не будет?! (если, конечно, не "когда прибыль - тогда и утро")... :)))))))
 
TarasBY:
Для начала определитесь: Что будете делать, если к утру прибыли не будет?! (если, конечно, не "когда прибыль - тогда и утро")... :)))))))

Я же написал уже что тестировал, там полюбому прибыль есть. У меня настройки не стандартные же стоят. А должно быть так что достигло время 3 часа ночи, он ждёт тейк профита и отключает советника.
 
SpikeOne:

Я же написал уже что тестировал, там полюбому прибыль есть. У меня настройки не стандартные же стоят. А должно быть так что достигло время 3 часа ночи, он ждёт тейк профита и отключает советника.

С точки зрения логики программирования - абсурд.

Вероятность такого исхода есть. Стало быть, надо предусмотреть это. Иначе, может получиться неопределённая ситуация, в которой, например, произойдет слив депозита.

 
Zhunko:

С точки зрения логики программирования - абсурд.

Вероятность такого исхода есть. Стало быть, надо предусмотреть это. Иначе, может получиться неопределённая ситуация, в которой, например, произойдет слив депозита.


на мартине всегда есть вероятность слива депозита, а вообще возможно такое сделать, не учитывая что это абсурд? Можете мне хотя бы показать то место в коде где происходит закрытие ордеров по тейк профитам, что бы было с чего начать хоть
 
SpikeOne:

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

Можно, конечно! Правильный программист учтёт все случаи.

 

Кто подскажет, почему не могу загрузить МТ4? Представляю скриншот ошибки.


 
SpikeOne:

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


На мартине всегда есть вероятность получить в качестве прибыли предполагаемую прибыль с тейкпрофита первого лота. А если не повезло, то дальше либо депозит кончится, либо размер лота превысит максимально допустимый.

И стоит ли так рисковать большими деньгами, чтобы отыграть первоначальную ставку? Тем более законы Мерфи никто не отменял..... И это не абсурд, просто жизнь практическая, а не теоретическая))

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

И снова доброго времени суток!) С предыдущими проблемами с закрытием разобрался, и появились новые вопросы. Суть вопроса в том как сравнить текущие показания индикатора ( в частности MACD) на нулевом баре с показаниями того же индикатора на первом и втором баре ( тобишь предшествующими). Не совсем понимаю как такое реализовать, посему буду благодарен за любую помощь)))

 
ElhoroS:

И снова доброго времени суток!) С предыдущими проблемами с закрытием разобрался, и появились новые вопросы. Суть вопроса в том как сравнить текущие показания индикатора ( в частности MACD) на нулевом баре с показаниями того же индикатора на первом и втором баре ( тобишь предшествующими). Не совсем понимаю как такое реализовать, посему буду благодарен за любую помощь)))

   double macd_1=iMACD(Symbol(),Period(),fast_ema,slow_ema,signal,PRICE_CLOSE,1); // макдак на первом баре
   double macd_2=iMACD(Symbol(),Period(),fast_ema,slow_ema,signal,PRICE_CLOSE,2); // макдак на втором баре
На нулевом баре данные индикатора не будут фиксированными. На каждом тике, практически, будут изменяться, т.к. нулевой бар ещё не сформирован. Поэтому берите данные начиная с первого бара. Если хотите всё-таки брать их с нулевого, то поменяйте PRICE_CLOSE на PRICE_OPEN - это единственная цена, которая на нулевом баре не изменяется, но индикатор при этом будет малость отличаться от его стандартного представления - чуть-чуть.
Причина обращения: