Ошибка в учебнике?

 
//--------------------------------------------------------------------
// improved.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start()                                     // Спец. функция start
  {
   double bid   =MarketInfo("GBPUSD",MODE_BID); // Запрос значения Bid
   double ask   =MarketInfo("GBPUSD",MODE_ASK); // Запрос значения Ask
   double point =MarketInfo("GBPUSD",MODE_POINT);//Запрос Point
   // Открытие BUY
   OrderSend("GBPUSD",OP_BUY,0.1,ask,3,bid-15*Point,bid+15*Point);
   Alert (GetLastError());                      // Сообщение об ошибке
   return;                                      // Выход из start()
  }
//--------------------------------------------------------------------

по поводу Point, наверное должно быть так:

  OrderSend("GBPUSD",OP_BUY,0.1,ask,3,bid-15*point,bid+15*point);

или я что-то не догоняю?

 
В данном примере значения переменных Point и point тождественны, также как и Ask и ask, Bid и bid.
 
-DENIS-:

по поводу Point, наверное должно быть так:

или я что-то не догоняю?

Такой код из учебника может торговать только будучи запущенным на GBPUSD. На других символах возникнет ошибка. Ваше замечание верно.
 

Зачем тогда вообще делать зопрос point?

разве так нельзя?

//--------------------------------------------------------------------
// improved.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start()                                     // Спец. функция start
  {
   double bid   =MarketInfo("GBPUSD",MODE_BID); // Запрос значения Bid
   double ask   =MarketInfo("GBPUSD",MODE_ASK); // Запрос значения Ask

   // Открытие BUY
   OrderSend("GBPUSD",OP_BUY,0.1,ask,3,bid-15*Point,bid+15*Point);
   Alert (GetLastError());                      // Сообщение об ошибке
   return;                                      // Выход из start()
  }
//-------------------------------------------------------------------
 
-DENIS-:

Зачем тогда вообще делать зопрос point?

разве так нельзя?

В мультивалютных советнках так нельзя. Как и нельзя на моновалютных советниках, но торгующих на паре, отличной от той, на которой запущен.
 
-DENIS-:

Зачем тогда вообще делать зопрос point?

разве так нельзя?

Можно.
 
OneDepo:
Можно.


значит эта строчка в данном случае просто лишняя?

   double point =MarketInfo("GBPUSD",MODE_POINT);//Запрос Point
 

Да, как и запрос ask и bid. Но только, как вам уже писали, если вы работаете на GBPUSD.

ЗЫ. Не вполне ясно, чего вы хотите? Вам просто показан пример использования, а не код "боевого" советника.

 

Денис, когда написано так:

OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point)

это допустимо и то с некоторой оговоркой: TP и SL в данном случае не равен 15 пунктам. Чтобы было 15 пунктов, надо SL и TP отсчитывать от цены открытия, а это здесь Ask. 

 

да просто сбил с толку:

запрос на point, а в открытии ордера Point.

если уж писать то одними словами, зачем отождествлять-то? Учебник должен быть проще :)

 
hrenfx:
Такой код из учебника может торговать только будучи запущенным на GBPUSD. На других символах возникнет ошибка.

Если в тестере, то да, запускать только на фунте, т.к. по чужим инструментам в МТ4 торговать не будет, а на демо и реале запускать можно на любом символе.

В чем проблема-то?

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