Привет, друзья, подскажите простейшую функцию, которая если наступят условия.. (SigPF==1 или SigPF==2) и OrdersTotal>0 т.е. нужно обрабатывать только те ордера, которые сейчас в рынке, если наступит одно из условий SigPF.
Внешняя переменная для проверки условия внутри функции..
extern int PF_price_in_pips=70;
Функция должна:
1.определить с какими ордерами будем иметь дело.. если SigPF==1 , то это обрдера БАЙ (сигнал на покупку), если SigPF==2 , то это ордера СЕЛЛ (Сигнал на продажу)
2.проверить текущую цену и если
в рынке сейчас Бай ордера и был SigPF==1, тогда
разность между текущей ценой, по которой будет открыт ордер Бай, и любой из цен открытия ордеров, что уже есть в рынке больше PF_price_in_pips, тогда функция должна возвратить флаг valid_signal=true
в рынке сейчас Селл ордера и был SigPF==2, тогда
разность между любой из цен открытия ордеров, что уже есть в рынке и текущей ценой по которой будет открыт ордер Селл больше PF_price_in_pips, тогда функция должна возвратить флаг valid_signal=true
если же расстояние между ценой открытия новго ордера при наступлении сигналов на покупку-продажу меньше PF_price_in_pips, тогда функция будет возвращать valid_signal=false
В общем, если в двух словах, функция должна проверить расстояние между ценой открытия нового ордера при сигналах о покупке-продаже (SigPF==1, SigPF==2) и любой из цен открытия ордеров, что есть в рынке уже.. и если это расстояние больше чем PF_price_in_pips, тогда возвращать флаг valid_signal=true, если же это расстояние - меньше, тогда valid_signal=false. Это чтобы не открывались ордера по очень близким друг к другу ценам! И вот еще.. советник у меня торгует только по открытию нового бара.. не на всех тиках.. , хотя, думаю, это не важно.. там все-равно нужно будет рать во внимание цены Бид или Аск..
помогите с такой функцией.. ! Если не понятно что-то я постараюсь объяснить.. или дам картинки! Только помогите) Спасибо!