Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 641

Cпасибо!Помогла перезагрузка компа!Обидно, целое утро сижу)) 

Здравствуйте, подскажите, есть ли возможность в коде для тестера внедрить формулу?
если (mql5 cloud network  выключена и тестирование идет больше 2-5 часов (к примеру)) то включать mql5 cloud network
newnek:
Здравствуйте, подскажите, есть ли возможность в коде для тестера внедрить формулу?
если (mql5 cloud network  выключена и тестирование идет больше 2-5 часов (к примеру)) то включать mql5 cloud network
Вроде ещё нет в MQL5 функций управления подключением/отключением MQL5 Cloud Network. Вот если сразу запустить тестирование из командной строки, то можно подключить сеть.
Karputov Vladimir:
Вроде ещё нет в MQL5 функций управления подключением/отключением MQL5 Cloud Network. Вот если сразу запустить тестирование из командной строки, то можно подключить сеть.
да, это видел, просто хочется облако включать через некоторое время, не расходуя деньги на оплату, а когда точно уверен что все предусмотрел в советнике и не стопарнул его тестирование
newnek:
да, это видел, просто хочется облако включать через некоторое время, не расходуя деньги на оплату, а когда точно уверен что все предусмотрел в советнике и не стопарнул его тестирование
Тогда только WinAPI поможет.
Vladislav Andruschenko:
Спасибо.
Karputov Vladimir:
Тогда только WinAPI поможет.
Так глубоко я еще не залезал

написал сову , но почему то не работает трейлинг стоп... в чем может быть причина?

//+------------------------------------------------------------------+
//|                                                         DDos.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
// Переменные, изменяемые программно
int Corr;                    // Автоматический корректор котировок, 10 для 5-значных котировок и 1 для 4-значных
int TwoDigCorr;              // Корректор для работы с двухзначными котировками
bool New_Bar=false;          // Флаг образования нового бара
int Oppoz;                   // Флаг выставления противоположной отложки при СЛ
int TradeFlag;               // Флаг возможности открытия сделок
//--- input parameter
input double InpPips=20;
extern double Lot=0.01;
extern int TrailingStop = 30;    // размер трейлинг стопа
extern int TrailingStep = 10;   // шаг трейлинга
extern int Magic = 0;        // номер ордера
extern int Slippage = 5;       // проскальзывание
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
 // Проверка необходимых для работы условий
  if (IsTradeAllowed())
   Alert("Работа советника  по символу ",Symbol()," начата.");
  else
  {
  Alert("Торговля советниками не разрешена! Советник не будет работать. Проверьте настройки Вашего терминала.");
  }
  // Проверка пользовательских объемов
    double Mlot=MarketInfo(Symbol(),MODE_MINLOT);
    if(Lot<Mlot)
     {
      Alert("Недопустимо маленькое значение объема сделок. Объем установлен на допустимый минимум!");
      Print("Недопустимо маленькое значение объема сделок. Объем установлен на допустимый минимум!");
      Lot=Mlot;
     }
  // Инициализация первичных данных
   if (Point==0.0001) Corr=1;
     else Corr=10;
     if(Digits==2) TwoDigCorr=10;
    else TwoDigCorr=1;
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   static double prev_price=0;
   double price=0;
//---
   MqlTick last_tick;
//--- 
   if(SymbolInfoTick(Symbol(),last_tick))
     {
      prev_price=last_tick.bid;

      double temp=prev_price-price;
      double rezult=temp*MathPow(10,Digits());
      prev_price=price;
      Comment("    rezult = ",rezult,"    price = ",price,"    temp = ",temp,"    Pips = ",InpPips*Point);
      if(rezult>InpPips)
        {
         OrderSend(Symbol(),OP_BUY,Lot,Ask,5,Bid-100*Point,Bid+1500*Point,0,0,5,clrBlue);// открываем бай
         OrderSend(Symbol(),OP_SELL,Lot,Bid,5,Ask+100*Point,Ask-1500*Point,0,0,10,clrRed); // открываем селл
         
        }
        for (int i=1; i<=OrdersTotal(); i++)       //Цикл по всем ордерам,..
     {                                        //отражённым в терминале
      if(OrderSelect(i-1,SELECT_BY_POS)==true)//Если есть следующий
        {                                     
         OrderSelect(0,SELECT_BY_TICKET);
         OrderSelect(0,SELECT_BY_TICKET);
        
        }
     }                                        //Конец тела цикла
    
     }
    
   else Print("SymbolInfoTick() failed, error = ",GetLastError());
  }
  
  
  
  //+------------------------------------------------------------------+
  
  void Trailing()
  {
  for(int i=OrdersTotal() -1; i>0; i--)
  {
  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
  {
  if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
  {
  if(OrderType()== OP_BUY)
  {
  if(Bid - OrderOpenPrice() > TrailingStop*Point || OrderStopLoss() == 0 )
  {
  if (OrderStopLoss() < Bid-(TrailingStep+TrailingStep)*Point || OrderStopLoss() == 0)
  {
 if  (!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*Point,Digits),0,0 ));
  Print("Ошибка модификации ордера на покупку!");
  }
  }
  }
 if (OrderType() == OP_SELL)
 {
 if (OrderOpenPrice()- Ask > TrailingStop*Point || OrderStopLoss() == 0 )
{
if (OrderStopLoss() > Ask +(TrailingStep+TrailingStep)*Point || OrderStopLoss() == 0)
{
if (!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask + TrailingStop*Point, Digits),0,0));
Print("Ошибка модификации ордера на продажу!");
}
}
 }

  }
  }
  }
  }
  
paylesss:

Cпасибо!Помогла перезагрузка компа!Обидно, целое утро сижу)) 

а вот теперь тем более актуален билд терминала и желательно пошагово вспомнить что такого вы сделали, что глоб.переменные отвалились. Если возможно повторить ситуацию - было бы вообще замечательно.

Kirill Andreev:

написал сову , но почему то не работает трейлинг стоп... в чем может быть причина?

чтоб он работал его надо запихнуть в OnTick