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

 
pako:

на покупку 

 
PokrovMT5: Написал,  итог тот же,10013,стоп и ТП убирал, не помогает. Return убрал, компилятор ругается с значением (Res.retcode)  
MqlTradeRequest Req={0};
MqlTradeCheckResult Check={0}; 
MqlTradeResult Res={0};
ZeroMemory(Req);
ZeroMemory (Check);
ZeroMemory(Res);
   string TradeSmb;
   if(TradeSmb=="") TradeSmb=_Symbol;
   Req.action=TRADE_ACTION_DEAL;
   Req.symbol=TradeSmb;
   Req.volume=0.1;
   Req.type=ORDER_TYPE_BUY;
   Req.type_filling=ORDER_FILLING_RETURN;
   Req.price = sym_ask;
   Req.sl= NormalizeDouble(sym_bid - (StopLoss*sym_point),sym_digits);
   Req.tp= NormalizeDouble(sym_ask + (TakeProfit*sym_point),sym_digits);
   Req.deviation=3;
   Req.comment="777";
if(!OrderSend(Req,Res)|| Res.retcode !=TRADE_RETCODE_DONE) 
     {
      Print("Не удалось открыть BAY позицию по ",Symbol());
     } 

 
PokrovMT5:

закиньте этот скрипт в папку скриптов, откройте в едиторе этот скрипт, компиллируйте

когда биржа откроется, перетащите этот скрипт на график 

Файлы:
test_buy.mq5  2 kb
 
pako:
так там так и написано, последний экстремум
как я понимаю через стандартные функции языка mql5 нельзя найти ,скажем,предпоследний экстремум зигзага?
 



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

А как вы считаете разницу в ячейках, тоже держите рядом калькулятор или в MT5 есть секретная настройка?

Шкала специфическая, чтобы не расслаблялись!

 
mavar:

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

А как вы считаете разницу в ячейках, тоже держите рядом калькулятор или в MT5 есть секретная настройка?

Секретных настроек нет. Вариантов решения всего пять:

1.Сделать самому.

2.Поискать в кодобазе из того, что есть.

3.Заказать в работах.

4.Купить в маркете.

5.Ждать и надеяться, пока мкл сделают в терминале.

 
Есть ли какая-ть возможность прочесть номер версии из #property version ?
 

Ура! Сегодня запустил первого своего советника в MT5!  

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


Но что-то похоже не так я сделал. Укажите, пожалуйста, на мою ошибку.


 //--- Do we have positions opened already?
   bool Buy_opened=false;  // variable to hold the result of Buy opened position
   bool Sell_opened=false; // variables to hold the result of Sell opened position

   if(PositionSelect(_Symbol)==true) // we have an opened position
     {
      if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
        {
         Buy_opened=true;  //It is a Buy
        }
      else if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
        {
         Sell_opened=true; // It is a Sell
        }
     }

//+------------------------------------------------------------------+
//|   СОВЕРШАЕМ СДЕЛКУ                                               |
//+------------------------------------------------------------------+
                  
     if(last_tick.last < BBLow[2] && Buy_opened == false)
        {
        int znak = last_tick.last - BBLow[2];

      //--- 1. Создать запрос
         
         MqlTradeRequest Trade_reqst={0};            // Инициализация структуры торгового запроса
         Trade_reqst.action=TRADE_ACTION_DEAL;       // Тип: немедленное совершение сделки
         Trade_reqst.symbol=_Symbol;                 // Инструмент: текущий
         Trade_reqst.volume=Lot;                     // Объём: 1 лот
         Trade_reqst.price=SymbolInfoDouble(_Symbol,SYMBOL_ASK)-TakeProfit*_Point; // Цена исполнения
         Trade_reqst.type=ORDER_TYPE_BUY;            // Тип ордера: на продажу
         Trade_reqst.type_filling=ORDER_FILLING_RETURN; // Политика исполнения 
         Trade_reqst.sl=last_tick.last - StopLoss * _Point;  // Stop Loss
         Trade_reqst.tp=SymbolInfoDouble(_Symbol,SYMBOL_ASK) + TakeProfit * _Point; // Take Profit
      // Trade_reqst.tp=Trade_reqst.price + TakeProfit * 2 * _Point; // Take Profit
      //--- 2. Отправить торговый приказ
         MqlTradeResult Trade_reslt={0};             // Инициализация структуры результата торгового запроса
         OrderSend(Trade_reqst,Trade_reslt);         // Отправка торгового запроса на сервер
   //--- выведем в лог ответ сервера  
   //Print(__FUNCTION__," - : - ",Trade_reslt.comment);
   if(Trade_reslt.retcode==10016) Print("Ответ: ",Trade_reslt.bid,Trade_reslt.ask,Trade_reslt.price);
 
В тестере стратегий команда MarketInfo(Symbol(),MODE_TICKVALUE) = 0 (!) Это происходит в ситуациях, когда, например, инструмент EURUSD а валюта баланса RUR     .... и в других сочетаниях. Я понял так, что валюта баланса должна совпадать с именем второй валюты в валютной паре. Иначе коменда дает значение НОЛЬ (в тестере стратегий) В результате невозможно проводить тестирование в желаемых сочетаниях. Как решить эту проблему?
 

МТ4 737 надумал посмотреть.

Что на MetaQuotes-Demo с историей и давно ли?

D1 почти как в старые добрые времена, с мая 72-го, а недели - с 95-го, месяцы - с 93-го, часы вообще с 12-го.

Причина обращения: