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

 
rapid_minus:
На трех символах поставлен советник "по Слепцову" и на четвертом другой советник. Что, они мешают друг другу? Я нигде  не встретил упоминания, что на МТ4 нужно ставить только один советник и только на один символ. 
Нет, никаких подобных ограничений нет. Вопрос был к тому, что не может-ли посторонний советник закрывать все ордера. Да и этот надо проверить нет-ли в нём условия закрывать все чужие ордера. Или, как минимум, проверь будет-ли такая проблема если поставлен только один советник.
 
AlexeyVik:
Нет, никаких подобных ограничений нет. Вопрос был к тому, что не может-ли посторонний советник закрывать все ордера. Да и этот надо проверить нет-ли в нём условия закрывать все чужие ордера. Или, как минимум, проверь будет-ли такая проблема если поставлен только один советник.
Спасибо. Попробую в понедельник. Но тогда посторонний советник должен закрывать только убыточные ордера на всех символах. Как это выглядит в коде? Я с таким еще не сталкивался. 
 
AlexeyVik:

Прошу Вас разъяснить, я совсем запутался:

Нашел скрипт, закрывающий ордера с профитом или с минусом, но никак не пойму логики - во внешних переменных задается bool close_only_profit_orders=false, а затем в ф-и старт она проверяется отрицанием:   if(OrderType()==OP_BUY  && (!close_only_profit_orders || order_prof>0). То есть если она не фальш или есть ордера с профитом, то дальше идет ф-я OrderClose(). Но нигде в коде нет условий, по которым переменная close_only_profit_orders стала бы true. Тогда зачем она вообще?


                    

            

 
rapid_minus:

Прошу Вас разъяснить, я совсем запутался:

Нашел скрипт, закрывающий ордера с профитом или с минусом, но никак не пойму логики - во внешних переменных задается bool close_only_profit_orders=false, а затем в ф-и старт она проверяется отрицанием:   if(OrderType()==OP_BUY  && (!close_only_profit_orders || order_prof>0). То есть если она не фальш или есть ордера с профитом, то дальше идет ф-я OrderClose(). Но нигде в коде нет условий, по которым переменная close_only_profit_orders стала бы true. Тогда зачем она вообще?


                    

            

  Если, bool close_only_profit_orders=true;, то закрываются только профитные.

Как то так. 

 
r772ra:

  Если, bool close_only_profit_orders=true;, то закрываются только профитные.

Как то так. 

 Но нигде в коде нет условий, по которым переменная close_only_profit_orders стала бы true, т.е. она никогда не станет true, только если мы сами не сделаем ее  true, т.к. это внешняя переменная. Т.е. если мы ее сделаем true, это будет означать, что закрывать профитные ордера не надо. Но тогда возникает противоречие с "ИЛИ" -  || order_prof>0.

Вернее наоборот : если фальш, то не надо закрывать, и тогда противоречие, а если  true, то все в порядке...(?)

Совсем запутался 

 
rapid_minus:
 Но нигде в коде нет условий, по которым переменная close_only_profit_orders стала бы true, т.е. она никогда не станет true. 

Это вам решать, все закрывать или только профитные.

 
rapid_minus:

 Но нигде в коде нет условий, по которым переменная close_only_profit_orders стала бы true, т.е. она никогда не станет true, только если мы сами не сделаем ее  true, т.к. это внешняя переменная. Т.е. если мы ее сделаем true, это будет означать, что закрывать профитные ордера не надо. Но тогда возникает противоречие с "ИЛИ" -  || order_prof>0.

Вернее наоборот : если фальш, то не надо закрывать, и тогда противоречие, а если  true, то все в порядке...(?)

Совсем запутался 

Логика!

extern bool close_only_profit_orders = false; // закрываются любые, профитные и лоссные позиции, естественно, по каким-то условиям.

extern bool close_only_profit_orders = true; // закрываются только профитные, лоссные позиции не закрываются тоже по условиям.

В тестере можете проверить, какой вариант лучше! Или в режиме оптимизации 0 = false и 1 = true.

 
Спасибо всем
 
rapid_minus:

Прошу Вас разъяснить, я совсем запутался:

Нашел скрипт, закрывающий ордера с профитом или с минусом, но никак не пойму логики - во внешних переменных задается bool close_only_profit_orders=false, а затем в ф-и старт она проверяется отрицанием:   if(OrderType()==OP_BUY  && (!close_only_profit_orders || order_prof>0). То есть если она не фальш или есть ордера с профитом, то дальше идет ф-я OrderClose(). Но нигде в коде нет условий, по которым переменная close_only_profit_orders стала бы true. Тогда зачем она вообще


По этой переменной ничего не найдёшь. Это плод фантазии программиста, а что в твоём советнике знает только тот кто его писал. Я могу только предполагать по какой причине может такое происходить и как это проверить. Просто мне встречался советник который перед началом работы тупо закрывал все ордера по всем парам. Ну такой вот плод фантазии у того программиста... Соответственно если твой советник в одиночку будет работать как надо, то надо искать где прописано закрытие ордеров и по какой причине. Может просто разные магики помогут...
[Удален]  

Помогите пожалуйста решить проблему. 

int n1=.....;

int n2=.....; 

M1[i]=iMA(NULL,0,n1,n2,MODE_SMA,PRICE_CLOSE,i); 

вывожу на экран через коммент значения n1 и n2, значения верные, но машка не верно прорисовывается, не на весь график. Если же я значения n1 и n2 от руки вобью вместо этих переменных, то все рисуется как надо. Не пойму как такое возможно, если значения переменных верны? И как сделать, чтобы машка рисовалась со сдвигом вправо? Сейчас она рисуется только до нулевого бара, т.е. текущего.