工作已完成
指定
на одном компьютере стоят 3 терминала мт4, у 2 оформлена подписка на сигналы. на третьем надо открывать/закрывать сделки роботом.
по обоим сигналам идет торговля только 1 парой. в работе обычно по 1 сделке (если больше одной сделки у провайдера, робот работать не должен). обычно у обоих сигналов сначала открывается сделка и через минуту выставляется sl/tp. сделки у сигналов открываются в разное время.
надо чтобы если у обоих провайдеров открыта сделка (то есть у одного еще открыта, и второй открывает свою сделку)
1) по одной и той же валютной паре
2) одного направления (sell или buy)
на третьем терминале открывался pending order (sell limit или buy limit) с параметрами
0) лот - как % Z от баланса
1) price - цена открытия последней (второй сделки) - X points (0.1 pips) если buy, + X points если sell. если цена pending order не открывается потому что цена рынка лучше чем указана в pending order, то открыть сделку по рынку
как только у обоих провайдеров у сделок назначены sl/tp, эти параметры задаются нашему pending order (или сделке, если она уже исполнена)
2) stop-loss - наименьший (если сделка sell)/наибольший (если сделка buy) из двух сделок
3) tp - если сделка buy, то наименьший из 2 сигналов + Y points, если sell - наибольший из 2 сигналов - Y points.
сделка закрывается по TP/SL или если сделка закрылась у одного из провайдеров сигнала.
важно отслеживать параметры сделок у провайдеров сигнала, а не цену открытия сделок по сигналу на моих терминалах, которые подписаны на эти сигналы.
параметры X Y Z надо чтобы была возможность задавать в параметрах робота.
edit1: хорошо бы закрытие проводить trailing-stop'ом с возможность задания параметров stop/step. trailing start - в точке TP или по факту закрытия сделки у одного из провайдеров сигнала.
edit2: если это стоит больше, скажите - первый раз заказываю тут
edit3: если на момент открытия второй сделки (второго сигнала) сделка по первому висит уже больше 12 часов, то робот тоже не срабатывает. сделки открываются первым или вторым сигналом в произвольном порядке: иногда первый сигнал открывает первый, иногда второй сигнал открывает сначала.