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

 
Konstantin Nikitin:

Спасибо. Словами, на что делим профит в валюте?

.../(OrderSymbol()==Sy_1 ? tickValue_1 : tickValue_2));
   
Maxim Kuznetsov:
пункты двух разных инструментов нельзя складывать.

Понимаю, что стоимость пунктов разная, но в данном случае это не имеет значения.

 
PolarSeaman:

Спасибо. Словами, на что делим профит в валюте?

Стоимость пункта в валюте депозита.
Как по мне правильней будет написать эту функцию на 1 символ

int Punkts_B(const string symbol="", const int _Mag=-1)
  {
   double profit = 0;
   for(int t=0;t<OrdersTotal();t++)
     {
      if( !OrderSelect(t,SELECT_BY_POS,MODE_TRADES) )  continue;
      if( OrderSymbol()!=symbol )                      continue;
      if( OrderMagicNumber()!=_Mag )                   continue;
      if( OrderType()!=OP_BUY && OrderType()!=OP_SELL) continue;

      profit+= OrderProfit()+OrderSwap()+OrderCommission();
     }
   return( (int)MathFloor(profit/SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE)) );
  }

int xxx = Punkts_B("EURUSD", 12345) + Punkts_B("GBPUSD", 12345);
И складывать пункты если нужно при вызовах.
 
Konstantin Nikitin:

Стоимость пункта в валюте депозита.

Как словами выражение (OrderSymbol()==Sy_1 ? tickValue_1 : tickValue_2)); как сказать?

На принт выводит нуль  Print(Punkts_B("GBPUSD", "AUDUSD",11151));

 
PolarSeaman:

Как словами выражение (OrderSymbol()==Sy_1 ? tickValue_1 : tickValue_2));

На принт выводит нуль  Print(Punkts_B("GBPUSD", "AUDUSD",11151));

Условный оператор ?:

 

Спасибо.

 

Коллеги, помогите разобраться. 

Пытаюсь осилить работу с реестром, накидал простенький советник для теста. Чтение данных из системного реестра проходит без проблем, а вот с записью возникают проблемы, происходит креш МТ и памяти... (((

Может у меня уже глаз замылился и я не вижу очевидного...

Файлы:
TestReg.mq5  25 kb
 

Нужно возле кончиков кривых в сепаратном окне разместить их названия, которые должны быть привязаны к ним.

Поясните пожалуйста, как это сделать.

 
khorosh:

Нужно возле кончиков кривых в сепаратном окне разместить их название, которые должны быть привязаны к ним.

Поясните пожалуйста, как это сделать.

Объектами - они могут выводиться в любое окно терминала и его подокна.

 

 Artyom Trishkin:

Объектами - они могут выводиться в любое окно терминала и его подокна.

--------------------------------------------------------------------------------------------------------------------------------------

Я пробовал вот так, но что то не работает.

  if(ObjectFind("Spread")<0) 
    {
     ObjectCreate(1,"Spread", OBJ_TEXT, 0, Time[0],LevLabelSpread );
     ObjectSetText("Spread", "                    Spread", 10, "Arial", clrYellow);
    }
  else
    {
     ObjectMove(1,"Spread", 0, Time[0], LevLabelSpread);
    } 
Может, что то с нумерацией окон. Если на графике одно сепаратное окно его номер ==1?
 
Kirill Belousov:

замените в ваших выражениях - && на фразу "И В ТО ЖЕ ВРЕМЯ", а || замените на слово "ИЛИ"

при прочтении получившегося вам должно стать ясным что и как работает


первая строчка работает ЛИБО с маджиком=7777 (при hand_orders=false), ЛИБО с маджиком=0 (при hand_orders=true)

вторая строчка ВСЕГДА работает с маджиком=7777, а при hand_orders=true работает ДОПОЛНИТЕЛЬНО с маджиком=0

Спасибо!