Помогите переписать советник с MQL4 на MQL5

 
Всем доброго времени суток. Год назад заказывал советник во фрилансе для МТ4. Кто поможет переписать его для МТ5 и разместить в CodeBase. 
 
issah5:
Всем доброго времени суток. Год назад заказывал советник во фрилансе для МТ4. Кто поможет переписать его для МТ5 и разместить в CodeBase. 

А где сам фал?

Справка: как прикрепить файл к сообщению


 

ОБЩЕЕ ОПИСАНИЕ:

Советник ставится на график и ждет тик. Когда приходит тик, если в рынке нету ордеров, советник запоминает бид и засыпает на Х миллисекунд. Когда советник просыпается, он проверяет чему равен бид. Если текущий бид минус запомненный более Х2 пунктов, то советник открывает покупку. Если запомненный бид минус текущий более Х2 пунктов, то советник открывает продажу. Если условий для открытия нет, советник ждет приход нового тика и все по кругу.

Если ордер все же открыт, то в работу вступает следующий модуль. По тексту «сова» размещен после модуля открытия, поэтому сразу же после открытия он не ждет тик, а сразу же запомнит текущий Бид (бид который будет текущим к тому моменту когда очередь дойдет до этого модуля) и заснет на Х3 миллисекунд. Когда он проснется, он посмотрит бид. Если этот бид минус запомненный бид будет менее Х4 пунктов (включая и отрицательное значение если цена изменилась в другую сторону), то советник закрывает бай (для селл условия закрытия обратные). Т.е. если открыт ордер бай и цена за время сна это модуля не получила заданное в настройках изменение в сторону бай или даже получила хоть какое-нибудь изменение в сторону селл, то советник бай закрывает. Для селл – наоборот. Данный модуль запускается в работу только если в рынке есть открытый ордер. Если за первый сон не было условий для закрытия, то следующая работа модуля будет запускаться уже с приходом следующего тика. Если произошло закрытие по этому модулю, то с приходом следующего тика после закрытия запускается в работу первый модуль, который анализирует открытие.

Если есть сигнал на открытие и с момента закрытия последнего закрытого ордера прошло более Х5 секунд, то ордер открывается. Если условие по Х5 не выполняется, то опять же с приходом следующего тика снова будет запускаться первый модуль. Если между открытием предыдущего ордера и сигналом на открытие нового ордера случится перезагрузка советника или действия равноценные перезагрузке советника, то условие по Х5 выполняться не будет и в случае получения сигнала ордер откроется сразу.

Если перезагрузка советника или действия равноценные перезагрузке произойдет в момент сна советника, то советник все тоже забудет и после перезапуска начнет работу по алгоритму сначала. Ну разумеется если в рынке нет открытого советником ордера. Если ордер есть, то опять же согласно этого задания в работу будет вступать модуль два (модуль закрытия).

Ордера открываются со стоплосом (сл) и тейкпрофитом (тп) которые устанавливаются в пунктах от цены открытия ордера. Сл и тп устанавливаются после открытия ордера модификацией.

Объем фиксированный или рассчитывается как баланс*коэффициент Х6.

Объем, магик все Х настраиваются.

ОПИСАНИЕ НАСТРОЕК:

extern double    Lot= 0.1;

extern double koff = 0.000001; 
// коэффициент для расчета динамического лота. если = 0, то используется фиксированный лот
// coefficient for calculation of a dynamic lot. if = 0, the fixed lot is used
extern int dig = 2;
// количество цифр после запятой для нормализации расчетного лота
// number of figures after a comma for normalization of a settlement lot

extern int    stoploss=500;
extern int takeprofit=500;
// если stoploss и / или takeprofit = 0, то отключены.
//if stoploss and/or takeprofit = 0, are disconnected.

extern int pot = 60000;
// количество миллисекунд сна в модуле анализа на открытие
extern int pipsot = 10;
// количество пунктов модуле анализа на открытие

extern bool z = true;
// если тру, то блок закрытия по модулю два включен. если фалсе - отключен
extern int pz = 120000;
// количество миллисекунд сна в модуле анализа на закрытие
extern int pipsz = 20;
// количество пунктов модуле анализа на открытие

extern int timeout = 120000;
// минимальное количество секунд между закрытием последнего ордера и открытием нового

extern int  Magic = 99999999; 
// уникальный номер, кот. советник метит свои ордера и впоследствии работает только с ними. При постановке на разные графики или т/ф, межики должны быть разными 
extern int Slipp = 10;        
// величина максимально возможного проскальзывания. 
//  slippage
extern int sec = 2000;
// количество миллисекунд сна советника между повторами отправки торгового поручения в случае неудачи
// number of milliseconds sleep of the EA between repetitions of sending a trade assignment in case of failure
Файлы: