Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1822

 
Tretyakov Rostyslav #:

А слона я не заметил))) Как думаешь чему равна цена закрытия у открытого ордера?

Пробуй так сделать

Еще вопрос 

вычисление профита в пунктах - это OrderProfit * Point .?

 
Mihail Matkovskij #:

Тогда SymbolInfoDouble

Почему не сразу?

 
Alexander Avksentyev #:

Еще вопрос 

вычисление профита в пунктах - это OrderProfit * Point .?

OrderProfit  Возвращает значение чистой прибыли, (те в валюте депозита)
Point - 
Размер пункта текущего инструмента в валюте котировки

Все из справки

 
Andrey Sokolov #:

OrderProfit  Возвращает значение чистой прибыли, (те в валюте депозита)
Point - 
Размер пункта текущего инструмента в валюте котировки

Все из справки

Согласен, читаю справку.

Умножал профит на Point и получал 0,00001 и меньше.  

 
Alexander Avksentyev #:

Согласен, читаю справку.

Умножал профит на Point и получал 0,00001 и меньше.  

Странное занятие

 
Alexander Avksentyev #:

Еще вопрос 

вычисление профита в пунктах - это OrderProfit * Point .?

Цена может пройти 20пп и дать 50$ профита

Может пройти 5пп, но профит будет 80$

Тоже самое касается каждого символа, с франком профит будет больше, нежели с канадцем при одном и том прохождении в пунктах

 
Artyom Trishkin #:

Почему не сразу?

Я написал простой пример онлайн. Даже в редактор не заходил. Александр начинающий программист и ему лишняя сложность не обязательна. Посмотрите его код выше. Но если речь о разработке мультисимвольного робота, то можно использовать SymbolInfoDouble. Кто мешает?

 
Mihail Matkovskij #:

Функция SymbolInfoTick записывает данные тика в специальную структуру MqlTick, из полей которой их можно получить.

спасибо

 

еще вопрос возник

сделал надпись в углу

//+-----------------------------------------------------------------------------------------------+
int OnInit()
  {
Start          = TimeCurrent();
MaxMartinLot   = Lot*MathPow(1.4,OrdersClose);
MaxMartinLot2  = Lot*MathPow(K_Martin2,OrdersClose2);
AC             = StringConcatenate(" ", AccountCurrency());
int Y          = 20;
DrawLABEL("lab_Take",1,5,Y,clrLime,"LOT: "); 
return(INIT_SUCCEEDED);
  }
//+-----------------------------------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }
//+-----------------------------------------------------------------------------------------------+
void OnTick()
  {
// Получим значение индикатора
   dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.

// Если нет открытых ордеров, то входим в условие
      if(CountOrders()==0)
     {
// Если появился сигнал на покупку, то откроем ордер на покупку
      if(bSignalBuy() == true)
         vOrderOpenBuy();

// Если появился сигнал на продажу, то откроем ордер на продажу
      if(bSignalSell() == true)
         vOrderOpenSell();
     }
       DrawLABEL("lab_Take",1,5,0,Color(),StringConcatenate("LOT: ",DoubleToStr(LOT(),2)));  
  }

в желтой строчке выдает такое предупреждение:

possible loss of data due to type conversion

как будто, что то местами перепутал.

а так всё работает

если нет сделки горит одним цветом

если открылась сделка- горит другим цветом 

Color() задал так:

double Color()
  {
   double CL =clrRed;
   if(CountOrders()==0) CL =clrYellow;
   return(CL);
  }
посмотрите пожалуйста.
 
законопослушный гражданин #:

еще вопрос возник

сделал надпись в углу

в желтой строчке выдает такое предупреждение:

possible loss of data due to type conversion

как будто, что то местами перепутал.

а так всё работает

если нет сделки горит одним цветом

если открылась сделка- горит другим цветом 

Color() задал так:

посмотрите пожалуйста.

Функция Color должна возвращать color а не double.

color Color()
  {
   color CL = clrRed;
   if(CountOrders() == 0) 
     CL = clrYellow;
   return(CL);
  }

Ссылку ту что добавил движок сайта тоже было бы не лишним изучить.

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