Советник, скрипт, индикатор не обращаются, а работают в текущем окне. И глобальные переменные разных окон / чартов не пересекаются. Поэтому должно работать)
string AUDUSD; // Это текстовая переменная, к тому же изначально пустая т.е. равная ""
(Symbol() == AUDUSD) // эта строка к переменной AUDUSD отношения не имеет.
Но критерии открытия ордеров не должны быть одинаковыми для разных инструментов / окон. Если они будут одинаковыми, то действительно во всех окнах откроется.
Спасибо!
А я логику делал именно для того, чтобы советник работая в нескольких окнах при появлении, в дальнейшем, сигнала по открытие ордера, понимал, что сигнал из кейса на покупку по такому-то инструменту и остальные не теребонькал
проблема не в значениях переменной по моему. просто у меня в коде улсовие перерасчета по наступлении нового часа. и получается что по текущему символу новый бар появляется и высчитывается значения бара =1, а по сигнальному символу получается новый бар еще не сформировался что ли и высчитывается значения для бар =2
проблем решилась просто - отслеивал и по сигнальному символу начало нового бара
Возможно ли передавать несколько параметров switch case из тела функции? У меня прописаны в switch case типы открываемых ордеров и из функции определения точки входа в рынок получилось передать только 1 параметр на открытие ордера, одновременно как я уже понял это невозможно, так вот даже последовательно пока не придумал как реализовать
Возможно ли передавать несколько параметров switch case из тела функции? У меня прописаны в switch case типы открываемых ордеров и из функции определения точки входа в рынок получилось передать только 1 параметр на открытие ордера, одновременно как я уже понял это невозможно, так вот даже последовательно пока не придумал как реализовать
Возможно ли передавать несколько параметров switch case из тела функции? У меня прописаны в switch case типы открываемых ордеров и из функции определения точки входа в рынок получилось передать только 1 параметр на открытие ордера, одновременно как я уже понял это невозможно, так вот даже последовательно пока не придумал как реализовать
int OpenOrder()
{
switch(AUDUSD_Analizing)
{
case0 : Alert("Нет условий для открытия ордера. Выход"); break;
case1 : // кейс для открытия Buy по AUD/USDif(TimeServer() == true)
{
if(Symbol() == AUDUSD)
{
RefreshRates();
Open_Order = OrderSend("AUDUSD",OP_BUY,lot,Ask,0,0,0);
Alert("Тикет открытого ордера ", Open_Order, GetLastError());
case2 : // кейс для открытия Sell по AUD/USDif(TimeServer() == true)
{
if(Symbol() == AUDUSD)
{
RefreshRates();
Open_Order = OrderSend("AUDUSD",OP_SELL,lot,Bid,0,0,0);
Alert("Тикет открытого ордера ", Open_Order, GetLastError());
//-------------------------------------------------------------------------------------------------------------// другая функция//-------------------------------------------------------------------------------------------------------------int AUDUSD_Analizing()
{
if(AUDUSD_Prices_new > AUDUSD_Prices_old)
{
s1 = AUDUSD_Prices1;
s2 = AUDUSD_Prices2;
s3 = s1 - s2;
if(raznica > s5)
{
Alert("--- ВРЕМЯ ОТКРЫВАТЬ ОРДЕР НА ПОКУПКУ ---");
и вот тут я могу либо прописать конкретное открытие ордера или несколько их штук(чем и решил заняться так
как не нашел решения), либо вернуть номер кейса в первую функцию(что сократило бы код).
Но мне нужно по условиям открывать сразу несколько сделок. К примеру нужно 2 на бай разом открыть,
а возвращается только одно значение и исполняется один кейс и дальше уже на новый круг все идет,
а мне нужно сразу несколько кейсов, допустим 5 выполнить, поставить 5 отложек и вот как передать не пойму,
или как вызвать срабатывание кейсов в последовательности. Если с кейсами можно как-то придумать, то по
факту код влезет в рамку 400-600 строк, а так полагаю все 1000+ выйдет в лучшем случае
(разбитые по 100-200 строк на .mqh, но и из файлов тоже помойка сложится)
string AUDUSD = "AUDUSD";
Хотябы так.
Вот оно!!! Так оно и было у меня)), стер и забыл))
Большое тебе спасибо!!! Мир в твой дом!
Советник, скрипт, индикатор не обращаются, а работают в текущем окне. И глобальные переменные разных окон / чартов не пересекаются. Поэтому должно работать)
string AUDUSD; // Это текстовая переменная, к тому же изначально пустая т.е. равная ""
(Symbol() == AUDUSD) // эта строка к переменной AUDUSD отношения не имеет.
Но критерии открытия ордеров не должны быть одинаковыми для разных инструментов / окон. Если они будут одинаковыми, то действительно во всех окнах откроется.
Спасибо!
А я логику делал именно для того, чтобы советник работая в нескольких окнах при появлении, в дальнейшем, сигнала по открытие ордера, понимал, что сигнал из кейса на покупку по такому-то инструменту и остальные не теребонькал
Вот оно!!! Так оно и было у меня)), стер и забыл))
Большое тебе спасибо!!! Мир в твой дом!
Или вот так на уровне глобальных переменных
Или вот так на уровне глобальных переменных
Вообще круто)) теперь робот получает сигнал и разом в нескольких окнах открывает ордера по разным парам))
Спасибо еще раз!!
проблема не в значениях переменной по моему. просто у меня в коде улсовие перерасчета по наступлении нового часа. и получается что по текущему символу новый бар появляется и высчитывается значения бара =1, а по сигнальному символу получается новый бар еще не сформировался что ли и высчитывается значения для бар =2
проблем решилась просто - отслеивал и по сигнальному символу начало нового бара
Подскажите пожалуйста.
Покажите кодом, что именно вас интересует
Подскажите пожалуйста.
Имеете в виду диапазон значений?
Покажите кодом, что именно вас интересует
Имеете в виду диапазон значений?
не, к примеру передать вначале case 1, следом case 2 и т.д.
кейсы исполняют открытие ордеров