Ошибки, баги, вопросы - страница 3175

 
A100 #:
Ошибка при компиляции:
class A {};

void* t = new A;

Указатели стали адресами в MQL или как это теперь понимать?

 
fxsaber #:

Указатели стали адресами в MQL или как это теперь понимать?

Да, вроде ничего не менялось (в build 2949 аналогично). Указатель на класс и раньше можно было привести к void *

 

Есть ли какойто способ побороть клик на обьект через обьект.

допустия я создаю TrendLine и затем прямо над ней находится BitmapLabel который ее полностю закрывает и если кликнуть прямо на том месте где под  BitmapLabel  находится  TrendLine  она начинает двигатся

прилагаю видео этого.

 
William Roeder #:

Ваш брокер напортачил. Поговорите с ними.

Я понимаю, что возможно брокер забыл что-то правильно настроить в настройках некоторых символов, но это проблема не только моего брокера, у моего клиента тоже есть такая проблема с другим брокером.

И сегодня у нас нет альтернативы для OrderCalcMargin(). Если эта функция возвращает неверное значение требуемой маржи, то все остальные пользовательские функции также возвращают неверное значение.

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

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

 
Aleksei Beliakov #:

Есть ли какойто способ побороть клик на обьект через обьект.

допустия я создаю TrendLine и затем прямо над ней находится BitmapLabel который ее полностю закрывает и если кликнуть прямо на том месте где под  BitmapLabel  находится  TrendLine  она начинает двигатся

прилагаю видео этого.

Возможно как-то через OBJPROP_SELECTABLE сделать... Допустим нажатием определенной клавиши (или кнопки на графике) блокировать или разблокировать выделение объекта

 

Предположу что было-бы удобно если б компилятор показывал предупреждение если во вложении, которое находится после OrderSelect(), находится еще вызов(ы) OrderSelect(),  в тч через вызовы функций

Вчера весь вечер баг искал, и это уже второй раз по этой причине. 

void Trailing()
{
   for(int i=OrdersTotal()-1; i>=0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber()==magic)
         {
            if(OrderType() == OP_BUY)
            {
               if(Bid >= GetAveragePrice(OP_BUY)+start_tral_level*Point)//OrderOpenPrice()
               {
                  if(Bid >= OrderStopLoss()+(tral_stop+tral_step)*Point || OrderStopLoss()==0)
                  {
                     if(!OrderModify(OrderTicket(), OrderOpenPrice()
                     , NormalizeDouble(Bid-tral_stop*Point, Digits), OrderTakeProfit(), OrderExpiration())) 
                     {
                        Print("Trailing buy err ", GetLastError());
                     }
                  }
               }
            }
            if(OrderType()==OP_SELL)
            {
               if(Ask <= GetAveragePrice(OP_SELL)-start_tral_level*Point)//OrderOpenPrice()
               {
                  if(Ask <= OrderStopLoss()-(tral_stop+tral_step)*Point || OrderStopLoss()==0)
                  {
                     if(!OrderModify(OrderTicket(), OrderOpenPrice()
                     , NormalizeDouble(Ask+tral_stop*Point, Digits), OrderTakeProfit(), OrderExpiration())) 
                     {
                        Print("Trailing sell err ", GetLastError());
                     }
                  }   
               }   
            }   
         }
      }
   }
}
double GetAveragePrice(int in_type)//расчет средней цены позиций
{
   double dRes=-1;
   double dSum=0;
   double dLot=0;
   double dComission=0;
   double dSwap=0;
   int iTotalPos=OrdersTotal();
   for(int cnt=0;cnt<iTotalPos;cnt++)
   {
      if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) Print( "Error Select Order");
      {
         if(OrderType()==in_type && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
         {
            dSum+=OrderOpenPrice()*OrderLots();
            dLot+=OrderLots();
            dSwap+=OrderSwap();
            dComission+=OrderCommission();
         }
      }    
   }     
   if(in_type==OP_BUY && dLot!=0) dRes=dSum/dLot-dSwap/dLot*Point-dComission/dLot*Point;
   if(in_type==OP_SELL && dLot!=0) dRes=dSum/dLot+dSwap/dLot*Point+dComission/dLot*Point;
   
   return dRes;
}
 
Andrei Sokolov #:

Предположу что было-бы удобно если б компилятор показывал предупреждение если во вложении, которое находится после OrderSelect(), находится еще вызов(ы) OrderSelect(),  в тч через вызовы функций

Вчера весь вечер баг искал, и это уже второй раз по этой причине. 

Ещё пару таких дней и вам не нужны будут предупреждения.

 
Alexey Viktorov #:

Ещё пару таких дней и вам не нужны будут предупреждения.

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

 
Как использовать это приложение - как выиграть
 
Hanene1304 #:
Как использовать это приложение - как выиграть

Пожалуйста, проверьте пост/информацию/ссылки ниже -

Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий

как я могу получить 1 миллион долларов?

Сергей Голубев, 2022.02.17 15:20

Найдите брокера Metatrader (их много, найдите через google), откройте счет в соответствии с условиями на их сайтах.
Сначала попробуйте на демо.

1. Статья - MQL5.community - Памятка пользователя

2. MetaTrader 5 Help -Open an Account
.

3. С чего начать?
https://www.mql5.com/en/forum/212020

4. Справка MetaTrader 5 - Торговая платформа - Руководство пользователя

5. Как сделать поиск на форуме
https://www.mql5.com/en/forum/193510

6. Найти сервер по имени брокера:
https://www.mql5.com/en/forum/214820

7. Мой список брокеров: https://www.mql5.com/en/forum/353226/page3