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

 
tara:

Евгении Николаевичи из Одессы (вы сами задали множественное число) - может, ответите?
Странные люди.. Я просто хотел получить ответ...
 
MEN_Odessa:

У меня не обрабатываются коды ошибок в тестере стратегий. Что там не так ? Проблемы со Sleep ом или просто ошибки не генерируются ?


Sleep в тестере не работает.
 

Help.

На сколько я понимаю, вызова функции трейлинг-стопа по ордеру встроенной в mql 4 нет?

А если нет, как простым методом можно осуществить трейлинг-стоп открытого ордера?

 
culler:

Help.

На сколько я понимаю, вызова функции Трейлинга по ордеру встроенной в mql 4 нет?

А если нет, как простымы строчкаки можно осуществить тралинг открытого ордера?


Как-то так
 
evillive:

Как-то так


Ого... Не думал что трейлинг-стопа так много. У меня голову вскружило аж ))) По чему только хошь ))

А мне бы простой, такой как встроенный в МТ4 по ордеру от цены текущей. )))

 
culler:


Ого... Не думал что трейлинг-стопа так много. У меня голову вскружило аж ))) По чему только хошь ))

А мне бы простой, такой как встроенный в МТ4 по ордеру от цены текущей. )))


Примитивный трал из MACD Sample, вполне соответствует тралу из терминала, так же задалбывает сервер приказами на каждом тике:

extern TrailingStop=100;   
for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
        {
         //--- long position is opened
         if(OrderType()==OP_BUY)
           {
            //--- check for trailing stop
            if(TrailingStop>0)
              {
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     //--- modify order and exit
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                     return;
                    }
                 }
              }
           }
         else // go to short position
           {
            //--- check for trailing stop
            if(TrailingStop>0)
              {
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     //--- modify order and exit
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                     return;
                    }
                 }
              }
           }
        }
     }
 

При отладке открывается окно "USDCHF" по умолчанию...

Подскажите, как при отладке из MeteEditor сделать так, что бы в MetaTrader инициализировать и работать

с определенным или уже открытым окном, а не с окном "USDCHF" по умолчанию?

 
Orangetree:

При отладке открывается окно "USDCHF" по умолчанию...

Подскажите, как при отладке из MeteEditor сделать так, что бы в MetaTrader инициализировать и работать

с определенным или уже открытым окном, а не с окном "USDCHF" по умолчанию?

В настройках терминала пошукайте по вкладочкам. Найдёте.
 
artmedia70:
В настройках терминала пошукайте по вкладочкам. Найдёте.


Можно поменять пару и таймфрейм, только настройки не терминала а едитора ;)
 

Здравствуйте, не знаю где задать этот вопрос, суть такова: советник иногда пишет лог файл 7 гигабайт одну ошибку, пишет- (EURUSD,M15: Ошибка закрытия лидирующего ордера, повторяем операцию), хотя все закрывает без ошибок. Переделывать советника нет смысла, ведь работает правильно, пытаюсь запретить этому советнику записывать его действия в лог но всё бесполезно.Лог работы терминала мне нужен.

Подскажите как этому "гаденышу" запретить вести лог? Понимаю что через Print но как?

            if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() == mNumber)) {
               if (OrderType() == OP_BUY) {
                  error1 =  (OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), Spread, Blue));
                  if (error1 == 1) {
                     Print ("Лидирующий ордер закрыт успешно."); 
                     Sleep (500);   
                  } else {
                     Print ("Ошибка закрытия лидирующего ордера, повторяем операцию. ");