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

 
Igor Makanu:

потому что нужно себя приучить

Можно ещё приучить себя всегда ходить с зонтом, ведь дождь может пойти. И к другому можно себя приучить, но ведь после каждого применения все прячут его.

 
Alexey Viktorov:

Можно ещё приучить себя всегда ходить с зонтом, ведь дождь может пойти. И к другому можно себя приучить, но ведь после каждого применения все прячут его.

поговорим на эту тему?

для затравки вот:

c = a/b;

или 

if(b!=0) c = a/b;

?

ЗЫ: к сожалению у меня единственного в моей семье нет зонтика, ничего не могу сказать по этому поводу, я всегда на машине, зонт как то больше мешает чем помогает

 
Igor Makanu:

поговорим на эту тему?

для затравки вот:

c = a/b;

или 

if(b!=0) c = a/b;

?

ЗЫ: к сожалению у меня единственного в моей семье нет зонтика, ничего не могу сказать по этому поводу, я всегда на машине, зонт как то больше мешает чем помогает

Ответ был тут

А что касается второго примера?
 
Alexey Viktorov:

Ответ был тут

А что касается второго примера?

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

ладно, не нормализуйте, дело хозяйское

 
Igor Makanu:

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

ладно, не нормализуйте, дело хозяйское

Шумный оппонент далеко не всегда прав. На мой взгляд надо всегда руководствоваться логикой и принимать собственные решения. И не агитировать за то или иное чужое мнение.

 
Alexey Viktorov:

Шумный оппонент далеко не всегда прав. На мой взгляд надо всегда руководствоваться логикой и принимать собственные решения. И не агитировать за то или иное чужое мнение.

логика - это мануал от разработчиков, написан корректный пример, берем и пользуемся https://docs.mql4.com/ru/trading/ordersend

у меня нет информации в каком формате отправляются данные на сервер, вдруг там вообще в текстовом виде отправляются цены?

есть пример в справке, значит это истина - как говорят в армии - сказали люминий, значит люминий! )))

OrderSend - Торговые функции - Справочник MQL4
OrderSend - Торговые функции - Справочник MQL4
  • docs.mql4.com
[in]  Цвет открывающей стрелки на графике. Если параметр отсутствует или его значение равно CLR_NONE, то открывающая стрелка не отображается на графике. При открытии рыночного ордера (OP_SELL или OP_BUY) в качестве цены открытия могут использоваться только самые последние цены Bid (для продажи) или Ask (для покупки). Если операция проводится по...
 
Igor Makanu:

логика - это мануал от разработчиков, написан корректный пример, берем и пользуемся https://docs.mql4.com/ru/trading/ordersend

у меня нет информации в каком формате отправляются данные на сервер, вдруг там вообще в текстовом виде отправляются цены?

есть пример в справке, значит это истина - как говорят в армии - сказали люминий, значит люминий! )))

Игорь, ну хоть посмотреть пример перед тем как спорить можно же.

void OnStart()
  {
//--- получим минимальное значение Stop level
   double minstoplevel=MarketInfo(Symbol(),MODE_STOPLEVEL);
   Print("Minimum Stop Level=",minstoplevel," points");
   double price=Ask;
//--- вычисленные значения цен SL и TP должны быть нормализованы
   double stoploss=NormalizeDouble(Bid-minstoplevel*Point,Digits);
   double takeprofit=NormalizeDouble(Bid+minstoplevel*Point,Digits);
//--- размещаем рыночный ордер на покупку 1 лота
   int ticket=OrderSend(Symbol(),OP_BUY,1,price,3,stoploss,takeprofit,"My order",16384,0,clrGreen);
   if(ticket<0)
     {
      Print("OrderSend завершилась с ошибкой #",GetLastError());
     }
   else
      Print("Функция OrderSend успешно выполнена");
//---
  }

Ведь в примере из документации цена без математических вычислений не нормализуется. И ещё в армии говорят "Эй вы трое, ну-ка оба ко мне"... но подражать кому попало не следует.

 
Alexey Viktorov:

Игорь, ну хоть посмотреть пример перед тем как спорить можно же.

Ведь в примере из документации цена без математических вычислений не нормализуется. И ещё в армии говорят "Эй вы трое, ну-ка оба ко мне"... но подражать кому попало не следует.

я цену и не нормализовал в своем примере :

ticket_sell=OrderSend(_Symbol, OP_SELL, 0.1, Bid,10,
                     NormalizeDouble(0.0,_Digits),NormalizeDouble(0.0,_Digits), "", 0, 0, clrRed);  

если хотите отправляйте ордер как автор кода, не буду Вам мешать:

ticket_sell=OrderSend(NULL, OP_SELL, 0.1, Bid, 0, 0, 0, "", 0, 0, Red);  
 
Igor Makanu:

я цену и не нормализовал в своем примере :

если хотите отправляйте ордер как автор кода, не буду Вам мешать:

А были примеры, что корректные числа брокер не принимал? Замечу что в видео уроках от авторитетных людей в ордерсенд() задают целые числа. 


Тут, возможно, уместно немного другое. У меня как-то функция сравнения отказалась считать одинаковыми переменную типа дабл и то-ли ОрдерСтоплосс(), то-ли ОрдерТейкпрофит() с одинаковыми значениями, пока не нормализовал оба.

 
Andrey Sokolov:

А были примеры, что корректные числа брокер не принимал? Замечу что в видео уроках от авторитетных людей в ордерсенд() задают целые числа. 

Тут, возможно, уместно немного другое. У меня как-то функция сравнения отказалась считать одинаковыми переменную типа дабл и то-ли ОрдерСтоплосс(), то-ли ОрдерТейкпрофит() с одинаковыми значениями, пока не нормализовал оба.

речь наверное идет о таком примере:

 double x = 5/2;
 Print("x = ",x);

//ответ 
//х = 2.0
  

а можно так:

 double x = 5.0/2.0;
 Print("x = ",x);

//ответ
//x=2.5

я не знаю, принимает ли сервер целые числа, как  и авторитетных людей, я давно сформировал себе библиотеку (на мой взгляд правильную) для работы с ордерами, вот моя библиотека https://www.mql5.com/ru/code/24829

в файле TradePanel_C#.mqh  моя библиотека и функция открытия ордеров OrderSend_(), я так пишу свои коды

TradePanel_Csharp
TradePanel_Csharp
  • www.mql5.com
Торговая панель, которая работает и в Визуализаторе Тестера.Таблица текущих ордеров/позиций.Таблица истории торгов (корректно работает на Хедж-счетах). Использование Ручная торговля в Тестере или вмешивание в работу советника (например, с целью проверки устойчивости ко внешним факторам).Ручная торговля в Терминале на демо/реальных...
Причина обращения: