[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 596

 
evillive:
Такой вопрос: в режиме визуального тестирования линии индикаторов прорисовываются только по окончании тестирования, это у всех так или я что-то не так делаю?

у всех.

https://www.mql5.com/ru/forum/131853/page2#463027

 
подскажите, как у альпари правильно открывать в советнике (код) ордера с лосями и тейками
 
link1:
подскажите, как у альпари правильно открывать в советнике (код) ордера с лосями и тейками

А как у другого ДЦ "правильно открывать в советнике (код) ордера с лосями и тейками" знаете?
 
zxc:

А как у другого ДЦ "правильно открывать в советнике (код) ордера с лосями и тейками" знаете?

А чем отличается открытие ордера в альпари от открытия ордера в оанде или другом ДЦ???
 
zxc:

А как у другого ДЦ "правильно открывать в советнике (код) ордера с лосями и тейками" знаете?

у других дц, мой советник пашет, а у альпари нет.поэтому и спрашиваю, может особенности какие-то есть?
 
link1:

у других дц, мой советник пашет, а у альпари нет.поэтому и спрашиваю, может особенности какие-то есть?


Вот с этого и надо было начинать. В терминале при открытии ордера вручную можно сразу стопы поставить?

Там где тип ордера, что пишет? Немедленное исполнение, или Рыночное исполнение?

 
zxc:


Вот с этого и надо было начинать. В терминале при открытии ордера вручную можно сразу стопы поставить?

Там где тип ордера, что пишет? Немедленное исполнение, или Рыночное исполнение?


Как раз, вот в альпари если рыночное исполнение, то там невозможно ставить SL и TP, только если ордер отложенный то можно, ну это по крайней мере на демо счете, ти микро, как на др. не знаю.

Я тоже обратил на это внимание,и решил, чтобы советник сперва выставлял ордера без SL и TP, а потом его просто модифицировать и установить SL и TP.

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

я еще думаю, может проблема в 5-ти знаке? как думайте?

 

А если так? И для тейкпрофита примерно таким же образом...

for(int i = 0; i < total; i++)

     {
       OrderSelect(i, SELECT_BY_POS, MODE_TRADES); 
       // check for symbol & magic number
       if(OrderSymbol()==Symbol() && OrderMagicNumber()== Magic) 
         {
           if(OrderType() == OP_BUY)  // long position is opened
            {

                  if(OrderStopLoss()==0)
                   {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*sl,OrderTakeProfit(),0,Orange);
                    return(0);
                   }
            } 
           if(OrderType() == OP_SELL)  // short position is opened
            {

                 if(OrderStopLoss()==0)
                  {
                    OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*sl,OrderTakeProfit(),0,Orange);
                    return(0);
                  }
            }
         }
     }

Можно вообще в этом цикле не модифицировать стоп-лосс ордера, а закрывать ордер при достижении уровня стопа, для ДЦ ордер будет выглядеть как без стоп-лосса, но закрывается советником чётко при прохождении уровня стоп-лосса (переменная sl):

   for(int i = 0; i < total; i++)
     {
       OrderSelect(i, SELECT_BY_POS, MODE_TRADES); 
       // check for symbol & magic number
       if(OrderSymbol()==Symbol() && OrderMagicNumber()== Magic) 
         {
           if(OrderType() == OP_BUY)  // long position is opened
            {
               if((OrderOpenPrice()-Ask)<Point*sl) // stoploss
                 {
                    OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Aqua);
                 }
               if((Bid-OrderOpenPrice())>Point*(ts+minp)) //trail
                 {
                  if(OrderStopLoss()<(Bid-Point*ts))
                   {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*ts,OrderTakeProfit(),0,Orange);
                   }
                 }
            } 
           if(OrderType() == OP_SELL)  // short position is opened
            {
               if((Bid-OrderOpenPrice())>Point*sl) // stoploss
                 {
                    OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Magenta);
                 }
               if((OrderOpenPrice()-Ask)>Point*(ts+minp)) //trail
                {
                 if(OrderStopLoss()>(Ask+Point*ts))
                  {
                    OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*ts,OrderTakeProfit(),0,Orange);
                  }
                }
            }
         }
     }
 
хочу создать 2-х мерный массив [тикет][цена открытия]. возник вопрос каким типом объявить массив инт или доубл?
 
dmmikl86:
хочу создать 2-х мерный массив [тикет][цена открытия]. возник вопрос каким типом объявить массив инт или доубл?

цена открытия - double
Причина обращения: