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

 
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 от руки вобью вместо этих переменных, то все рисуется как надо. Не пойму как такое возможно, если значения переменных верны? И как сделать, чтобы машка рисовалась со сдвигом вправо? Сейчас она рисуется только до нулевого бара, т.е. текущего.

 
Alexandr24:

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

int n1=.....;

int n2=.....; 

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

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

Если n1 не равно значению ТФ, тогда понятно, почему вырисовывается неверно. А сдвиг вправо сделает n2 с плюсом!! Проверил!
 
borilunad:
Если n1 не равно значению ТФ, тогда понятно, почему вырисовывается неверно. А сдвиг вправо сделает n2 с минусрм.

Не пойму причем тут ТФ, n1 - это период усреднения для вычисления индикатора. Почему-то Comment на экран выводит и следовательно получает верное значение переменной, а вот машка с этими переменными рисует не то что должно быть, парадоксальная ситуация. 

UPD. вместо n2 поставил 0, сдвиг нормально отрисовывается, но n1 криво рисует :(

 
double  iMA(
   string       symbol,           // имя символа
   int          timeframe,        // таймфрейм
   int          ma_period,        // период - n1    
   int          ma_shift,         // сдвиг средней - n2
   int          ma_method,        // метод усреднения
   int          applied_price,    // тип цены
   int          shift             // сдвиг
   );

Всё правильно! Это я ошибся, но почему что-то не получается, если делаете правильно?!

 
borilunad:

Всё правильно! Это я ошибся, но почему что-то не получается, если делаете правильно?!

Да вот тоже ломаю голову над этим парадоксом. Если перезагрузить терминал, то машка отрисовывается как надо, но каждый раз перезагружать - это неудобно.

UPD проблема решилась нажатием правой кнопки и выбором в меню "Обновить", но если в коде нажать компиляция, то машка рисуется криво...но это уже мелочевка, буду просто обновлять :))

 
Alexandr24:

Да вот тоже ломаю голову над этим парадоксом. Если перезагрузить терминал, то машка отрисовывается как надо, но каждый раз перезагружать - это неудобно.

UPD проблема решилась нажатием правой кнопки и выбором в меню "Обновить", но если в коде нажать компиляция, то машка рисуется криво...но это уже мелочевка, буду просто обновлять :))

Код покажите, только не кусочки
 

Сам уже разобрался, спасибо за участие :)

 
Приветствую, ВСЕХ!
На форуме искал, в инете искал - не нашел. По-этому к Вам вопрос: 

1. Советник открывает (на основании пересечения с MA ) несколько (3) рыночных ордеров по одной и той-же цене(например BUY по цене1.1180).

уточнение : до пересечения с МА это были Buy-Stop ордера .

2. Далее советник должен установить этим Трем ордерам Takeprofit на разные уровни (которые выясняются только при пересечении с МА, по показаниям стандартного индикатора Fibo)

Предположим эти уровни такие:
Ur1 = 1.1200
Ur2 = 1.1220  
Ur3 = 1.1240

А внимание теперь вопрос:
 
Как расставить открытым Трём ордерам эти заданные уровни???

Нашел на форуме вот такую конструкцию (см. ниже), но дальше ни чего соящего придумать не могу. Помогите пожалуйста или подскажите какую-нибудь статью по данной теме.
Нужно еще один счетчик воткнуть? Но как? Или придется использовать массивы, мэджики, или... ????

double Ur1 = 1.1200
double Ur2 = 1.1220  
double Ur3 = 1.1240
for(int i=OrdersTotal()-1;i>=0;i--) 
{
   if(OrderSelect(i, SELECT_BY_TICKET, MODE_TRADES)==false) continue;
   if(OrderSymbol()!=Symbol()) continue;
      if(OrderType()!=0) continue;
                   
   // вот тут мы можем работать с нашим ордером
   
   if (OrderTicket() = ???? );
 
 bool mod_Buy1 = OrderModify ( OrderTicket(???),OrderOpenPrice (), NULL,Ur1,0,clrNONE);
 bool mod_Buy2 = OrderModify ( OrderTicket(???),OrderOpenPrice (), NULL,Ur2,0,clrNONE);
 bool mod_Buy3 = OrderModify (OrderTicket(???),OrderOpenPrice (), NULL,Ur3,0,clrNONE);


}  

 
vadimvborisov:
Как расставить открытым Трём ордерам эти заданные уровни???

1. Что мешает установить соответствующие ТП ордерам в момент их открытия?
2. Что это за mod_Buy1/2/3 ? - Вы поняли в чем назначение вышеупомянутого for-цикла?
Причина обращения: