Заработай до
50000$
на приглашении друзей
получить StartUp Bonus
от ИнстаФорекс
Вложений не требуется!
Начни торговлю
без вложений и риска
С новым STARTUP бонусом 1000$
Получи бонус
55%
от ИнстаФорекс
на каждое пополнение
Ответить в теме
Страница 11 из 11
Первая ... 10 Последняя

Показаны сообщения: с 201 по 211 из 211

Тема: MQL4: Некоторые полезные функции

 Перейти в классический вид темы
     
  1. ТОП сообщений
    2014-07-09   14:02
    Лучший ответ #1
    Накопленные выплаты 169700 RUB

    Отправка маркет-ордера на сервер.

    MQL-Код:
    <code><span style="color: #000000">
    <span style="color: #0000BB">int SendMarketOrder</span><span style="color: #007700">(</span><span style="color: #0000BB">int Type</span><span style="color: #007700">, </span><span style="color: #0000BB">double Lots</span><span style="color: #007700">, </span><span style="color: #0000BB">int TP</span><span style="color: #007700">, </span><span style="color: #0000BB">int SL</span><span style="color: #007700">, </span><span style="color: #0000BB">int Magic</span><span style="color: #007700">, </span><span style="color: #0000BB">string Cmnt</span><span style="color: #007700">, </span><span style="color: #0000BB">int</span><span style="color: #007700">&amp; </span><span style="color: #0000BB">Error</span><span style="color: #007700">){</span><span style="color: #0000BB">double Price</span><span style="color: #007700">, </span><span style="color: #0000BB">Take</span><span style="color: #007700">, </span><span style="color: #0000BB">Stop</span><span style="color: #007700">;</span><span style="color: #0000BB">int Ticket</span><span style="color: #007700">, </span><span style="color: #0000BB">Slippage</span><span style="color: #007700">, </span><span style="color: #0000BB">Color</span><span style="color: #007700">, </span><span style="color: #0000BB">Err</span><span style="color: #007700">; </span><span style="color: #0000BB">bool Delay </span><span style="color: #007700">= </span><span style="color: #0000BB">False</span><span style="color: #007700">;if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Функция SendMarketOrder"</span><span style="color: #007700">);while(!</span><span style="color: #0000BB">IsStopped</span><span style="color: #007700">()){if(!</span><span style="color: #0000BB">IsExpertEnabled</span><span style="color: #007700">()){</span><span style="color: #0000BB">Error </span><span style="color: #007700">= </span><span style="color: #0000BB">ERR_TRADE_DISABLED</span><span style="color: #007700">;Print(</span><span style="color: #DD0000">"Работа эксперта запрещена! Кнопка "</span><span style="color: #0000BB">Эксперты</span><span style="color: #DD0000">" отжата."</span><span style="color: #007700">);return(-</span><span style="color: #0000BB">1</span><span style="color: #007700">);}if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Работа эксперта разрешена, кнопка "</span><span style="color: #0000BB">Эксперты</span><span style="color: #DD0000">" нажата."</span><span style="color: #007700">);if(!</span><span style="color: #0000BB">IsConnected</span><span style="color: #007700">()){</span><span style="color: #0000BB">Error </span><span style="color: #007700">= </span><span style="color: #0000BB">ERR_NO_CONNECTION</span><span style="color: #007700">;Print(</span><span style="color: #DD0000">"Связь с сервером отсутствует!"</span><span style="color: #007700">);return(-</span><span style="color: #0000BB">1</span><span style="color: #007700">);}if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Связь с сервером установлена"</span><span style="color: #007700">);if(</span><span style="color: #0000BB">IsTradeContextBusy</span><span style="color: #007700">()){if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Торговый поток занят!"</span><span style="color: #007700">);if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Ожидаем 3 сек..."</span><span style="color: #007700">);</span><span style="color: #0000BB">Sleep</span><span style="color: #007700">(</span><span style="color: #0000BB">3000</span><span style="color: #007700">);</span><span style="color: #0000BB">Delay </span><span style="color: #007700">= </span><span style="color: #0000BB">True</span><span style="color: #007700">;continue;}if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Торговый поток свободен"</span><span style="color: #007700">);if(</span><span style="color: #0000BB">Delay </span><span style="color: #007700">|| (</span><span style="color: #0000BB">LastTickTime </span><span style="color: #007700">!= </span><span style="color: #0000BB">MarketInfo</span><span style="color: #007700">(</span><span style="color: #0000BB">Symbol</span><span style="color: #007700">(),</span><span style="color: #0000BB">MODE_TIME</span><span style="color: #007700">))) {if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Обновляем котировки"</span><span style="color: #007700">);</span><span style="color: #0000BB">RefreshRates</span><span style="color: #007700">();</span><span style="color: #0000BB">LastTickTime </span><span style="color: #007700">= </span><span style="color: #0000BB">MarketInfo</span><span style="color: #007700">(</span><span style="color: #0000BB">Symbol</span><span style="color: #007700">(),</span><span style="color: #0000BB">MODE_TIME</span><span style="color: #007700">);</span><span style="color: #0000BB">Delay </span><span style="color: #007700">= </span><span style="color: #0000BB">False</span><span style="color: #007700">;}else{if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Котировки актуальны"</span><span style="color: #007700">);}switch(</span><span style="color: #0000BB">Type</span><span style="color: #007700">){case </span><span style="color: #0000BB">OP_BUY</span><span style="color: #007700">:if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Инициализируем параметры для BUY-ордера"</span><span style="color: #007700">);</span><span style="color: #0000BB">Price </span><span style="color: #007700">= </span><span style="color: #0000BB">NormalizeDouble</span><span style="color: #007700">( </span><span style="color: #0000BB">Ask</span><span style="color: #007700">, </span><span style="color: #0000BB">Digits</span><span style="color: #007700">);</span><span style="color: #0000BB">Take </span><span style="color: #007700">= </span><span style="color: #0000BB">IIFd</span><span style="color: #007700">(</span><span style="color: #0000BB">TP </span><span style="color: #007700">== </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">NormalizeDouble</span><span style="color: #007700">( </span><span style="color: #0000BB">Price </span><span style="color: #007700">+ </span><span style="color: #0000BB">TP </span><span style="color: #007700">* </span><span style="color: #0000BB">Point</span><span style="color: #007700">, </span><span style="color: #0000BB">Digits</span><span style="color: #007700">));</span><span style="color: #0000BB">Stop </span><span style="color: #007700">= </span><span style="color: #0000BB">IIFd</span><span style="color: #007700">(</span><span style="color: #0000BB">SL </span><span style="color: #007700">== </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">NormalizeDouble</span><span style="color: #007700">( </span><span style="color: #0000BB">Price </span><span style="color: #007700">- </span><span style="color: #0000BB">SL </span><span style="color: #007700">* </span><span style="color: #0000BB">Point</span><span style="color: #007700">, </span><span style="color: #0000BB">Digits</span><span style="color: #007700">));</span><span style="color: #0000BB">Color </span><span style="color: #007700">= </span><span style="color: #0000BB">Blue</span><span style="color: #007700">;break;case </span><span style="color: #0000BB">OP_SELL</span><span style="color: #007700">:if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Инициализируем параметры для SELL-ордера"</span><span style="color: #007700">);</span><span style="color: #0000BB">Price </span><span style="color: #007700">= </span><span style="color: #0000BB">NormalizeDouble</span><span style="color: #007700">( </span><span style="color: #0000BB">Bid</span><span style="color: #007700">, </span><span style="color: #0000BB">Digits</span><span style="color: #007700">);</span><span style="color: #0000BB">Take </span><span style="color: #007700">= </span><span style="color: #0000BB">IIFd</span><span style="color: #007700">(</span><span style="color: #0000BB">TP </span><span style="color: #007700">== </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">NormalizeDouble</span><span style="color: #007700">( </span><span style="color: #0000BB">Price </span><span style="color: #007700">- </span><span style="color: #0000BB">TP </span><span style="color: #007700">* </span><span style="color: #0000BB">Point</span><span style="color: #007700">, </span><span style="color: #0000BB">Digits</span><span style="color: #007700">));</span><span style="color: #0000BB">Stop </span><span style="color: #007700">= </span><span style="color: #0000BB">IIFd</span><span style="color: #007700">(</span><span style="color: #0000BB">SL </span><span style="color: #007700">== </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">NormalizeDouble</span><span style="color: #007700">( </span><span style="color: #0000BB">Price </span><span style="color: #007700">+ </span><span style="color: #0000BB">SL </span><span style="color: #007700">* </span><span style="color: #0000BB">Point</span><span style="color: #007700">, </span><span style="color: #0000BB">Digits</span><span style="color: #007700">));</span><span style="color: #0000BB">Color </span><span style="color: #007700">= </span><span style="color: #0000BB">Red</span><span style="color: #007700">;break;default:if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Тип ордера не соответствует требованиям."</span><span style="color: #007700">);return(-</span><span style="color: #0000BB">1</span><span style="color: #007700">);}</span><span style="color: #0000BB">Slippage </span><span style="color: #007700">= </span><span style="color: #0000BB">MarketInfo</span><span style="color: #007700">(</span><span style="color: #0000BB">Symbol</span><span style="color: #007700">(), </span><span style="color: #0000BB">MODE_SPREAD</span><span style="color: #007700">);if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Slippage = "</span><span style="color: #007700">,</span><span style="color: #0000BB">Slippage</span><span style="color: #007700">);if(</span><span style="color: #0000BB">IsTradeAllowed</span><span style="color: #007700">()){if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Торговля разрешена, отправляем ордер..."</span><span style="color: #007700">);</span><span style="color: #0000BB">Ticket </span><span style="color: #007700">= </span><span style="color: #0000BB">OrderSend</span><span style="color: #007700">(</span><span style="color: #0000BB">Symbol</span><span style="color: #007700">(), </span><span style="color: #0000BB">Type</span><span style="color: #007700">, </span><span style="color: #0000BB">Lots</span><span style="color: #007700">, </span><span style="color: #0000BB">Price</span><span style="color: #007700">, </span><span style="color: #0000BB">Slippage</span><span style="color: #007700">, </span><span style="color: #0000BB">Stop</span><span style="color: #007700">, </span><span style="color: #0000BB">Take</span><span style="color: #007700">, </span><span style="color: #0000BB">Cmnt</span><span style="color: #007700">, </span><span style="color: #0000BB">Magic</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">Color</span><span style="color: #007700">);if(</span><span style="color: #0000BB">Ticket </span><span style="color: #007700">&lt; </span><span style="color: #0000BB">0</span><span style="color: #007700">){</span><span style="color: #0000BB">Err </span><span style="color: #007700">= </span><span style="color: #0000BB">GetLastError</span><span style="color: #007700">();if (</span><span style="color: #0000BB">Err </span><span style="color: #007700">== </span><span style="color: #0000BB">4   </span><span style="color: #007700">|| </span><span style="color: #FF8000">/* SERVER_BUSY */</span><span style="color: #0000BB">Err </span><span style="color: #007700">== </span><span style="color: #0000BB">129 </span><span style="color: #007700">|| </span><span style="color: #FF8000">/* INVALID_PRICE */ </span><span style="color: #0000BB">Err </span><span style="color: #007700">== </span><span style="color: #0000BB">135 </span><span style="color: #007700">|| </span><span style="color: #FF8000">/* PRICE_CHANGED */ </span><span style="color: #0000BB">Err </span><span style="color: #007700">== </span><span style="color: #0000BB">137 </span><span style="color: #007700">|| </span><span style="color: #FF8000">/* BROKER_BUSY */ </span><span style="color: #0000BB">Err </span><span style="color: #007700">== </span><span style="color: #0000BB">138 </span><span style="color: #007700">|| </span><span style="color: #FF8000">/* REQUOTE */ </span><span style="color: #0000BB">Err </span><span style="color: #007700">== </span><span style="color: #0000BB">146 </span><span style="color: #007700">|| </span><span style="color: #FF8000">/* TRADE_CONTEXT_BUSY */</span><span style="color: #0000BB">Err </span><span style="color: #007700">== </span><span style="color: #0000BB">136 </span><span style="color: #007700">)  </span><span style="color: #FF8000">/* OFF_QUOTES */</span><span style="color: #007700">{if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Ошибка(OrderSend - "</span><span style="color: #007700">, </span><span style="color: #0000BB">Err</span><span style="color: #007700">, </span><span style="color: #DD0000">"): "</span><span style="color: #007700">, </span><span style="color: #0000BB">ErrorDescription</span><span style="color: #007700">(</span><span style="color: #0000BB">Err</span><span style="color: #007700">));if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Ожидаем 3 сек..."</span><span style="color: #007700">);</span><span style="color: #0000BB">Sleep</span><span style="color: #007700">(</span><span style="color: #0000BB">3000</span><span style="color: #007700">);</span><span style="color: #0000BB">Delay </span><span style="color: #007700">= </span><span style="color: #0000BB">True</span><span style="color: #007700">;continue;}else{if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Критическая ошибка(OrderSend - "</span><span style="color: #007700">, </span><span style="color: #0000BB">Err</span><span style="color: #007700">, </span><span style="color: #DD0000">"): "</span><span style="color: #007700">, </span><span style="color: #0000BB">ErrorDescription</span><span style="color: #007700">(</span><span style="color: #0000BB">Err</span><span style="color: #007700">));</span><span style="color: #0000BB">Error </span><span style="color: #007700">= </span><span style="color: #0000BB">Err</span><span style="color: #007700">;break;}}break;}else{if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Эксперту запрещено торговать! Снята галка в свойствах эксперта."</span><span style="color: #007700">);</span><span style="color: #FF8000">//Print("Ожидаем 3 сек...");//Sleep(3000);//Delay = True;//continue;</span><span style="color: #007700">break;}}if(</span><span style="color: #0000BB">Ticket </span><span style="color: #007700">&gt; </span><span style="color: #0000BB">0</span><span style="color: #007700">)if(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Ордер отправлен успешно. Тикет = "</span><span style="color: #007700">,</span><span style="color: #0000BB">Ticket</span><span style="color: #007700">);elseif(</span><span style="color: #0000BB">Debug</span><span style="color: #007700">) Print(</span><span style="color: #DD0000">"Ошибка! Ордер не отправлен. (ErrorCode = "</span><span style="color: #007700">, </span><span style="color: #0000BB">Error</span><span style="color: #007700">, </span><span style="color: #DD0000">": "</span><span style="color: #007700">, </span><span style="color: #0000BB">ErrorDescription</span><span style="color: #007700">(</span><span style="color: #0000BB">Error</span><span style="color: #007700">), </span><span style="color: #DD0000">")"</span><span style="color: #007700">);return(</span><span style="color: #0000BB">Ticket</span><span style="color: #007700">);}</span><span style="color: #FF8000">//+------------------------------------------------------------------+</span><span style="color: #0000BB">double IIFd</span><span style="color: #007700">(</span><span style="color: #0000BB">bool condition</span><span style="color: #007700">, </span><span style="color: #0000BB">double ifTrue</span><span style="color: #007700">, </span><span style="color: #0000BB">double ifFalse</span><span style="color: #007700">) {if (</span><span style="color: #0000BB">condition</span><span style="color: #007700">) return(</span><span style="color: #0000BB">ifTrue</span><span style="color: #007700">); else return(</span><span style="color: #0000BB">ifFalse</span><span style="color: #007700">);} 
    </span><span style="color: #0000BB"></span>
    </span>
    </code>

    2013-11-11   18:36
    Лучший ответ #2
    Накопленные выплаты 1854 RUB

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

    MQL-Код:
    <code><span style="color: #000000">
    <span style="color: #0000BB">string ErrorDescript</span><span style="color: #007700">(</span><span style="color: #0000BB">int error_code</span><span style="color: #007700">) {</span><span style="color: #0000BB">string error_string</span><span style="color: #007700">;switch(</span><span style="color: #0000BB">error_code</span><span style="color: #007700">) {</span><span style="color: #FF8000">//---- Коды ошибок, возвращаемые торговым сервером:</span><span style="color: #007700">case </span><span style="color: #0000BB">0</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет ошибок"</span><span style="color: #007700">;                                                                                             break;case </span><span style="color: #0000BB">1</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет ошибки, но результат неизвестен"</span><span style="color: #007700">;                                                                    break;case </span><span style="color: #0000BB">2</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Общая ошибка"</span><span style="color: #007700">;                                                                                           break;case </span><span style="color: #0000BB">3</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильные параметры"</span><span style="color: #007700">;                                                                                 break;case </span><span style="color: #0000BB">4</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Торговый сервер занят"</span><span style="color: #007700">;                                                                                  break;case </span><span style="color: #0000BB">5</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Старая версия клиентского терминала"</span><span style="color: #007700">;                                                                    break;case </span><span style="color: #0000BB">6</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет связи с торговым сервером"</span><span style="color: #007700">;                                                                          break;case </span><span style="color: #0000BB">7</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недостаточно прав"</span><span style="color: #007700">;                                                                                      break;case </span><span style="color: #0000BB">8</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком частые запросы"</span><span style="color: #007700">;                                                                                 break;case </span><span style="color: #0000BB">9</span><span style="color: #007700">:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недопустимая операция нарушающая функционирование сервера"</span><span style="color: #007700">;                                              break;case </span><span style="color: #0000BB">64</span><span style="color: #007700">:  </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Счет заблокирован"</span><span style="color: #007700">;                                                                                      break;case </span><span style="color: #0000BB">65</span><span style="color: #007700">:  </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный номер счета"</span><span style="color: #007700">;                                                                               break;case </span><span style="color: #0000BB">128</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Истек срок ожидания совершения сделки"</span><span style="color: #007700">;                                                                  break;case </span><span style="color: #0000BB">129</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильная цена"</span><span style="color: #007700">;                                                                                      break;case </span><span style="color: #0000BB">130</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильные стопы"</span><span style="color: #007700">;                                                                                     break;case </span><span style="color: #0000BB">131</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный объем"</span><span style="color: #007700">;                                                                                     break;case </span><span style="color: #0000BB">132</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Рынок закрыт"</span><span style="color: #007700">;                                                                                           break;case </span><span style="color: #0000BB">133</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Торговля запрещена"</span><span style="color: #007700">;                                                                                     break;  case </span><span style="color: #0000BB">134</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недостаточно денег для совершения операции"</span><span style="color: #007700">;                                                             break;case </span><span style="color: #0000BB">135</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Цена изменилась"</span><span style="color: #007700">;                                                                                        break;case </span><span style="color: #0000BB">136</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет цен"</span><span style="color: #007700">;                                                                                                break;case </span><span style="color: #0000BB">137</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Брокер занят"</span><span style="color: #007700">;                                                                                           break;case </span><span style="color: #0000BB">138</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Новые цены"</span><span style="color: #007700">;                                                                                             break;case </span><span style="color: #0000BB">139</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ордер заблокирован и уже обрабатывается"</span><span style="color: #007700">;                                                                break;case </span><span style="color: #0000BB">140</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Разрешена только покупка"</span><span style="color: #007700">;                                                                               break;case </span><span style="color: #0000BB">141</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком много запросов"</span><span style="color: #007700">;                                                                                 break;case </span><span style="color: #0000BB">145</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Модификация запрещена, так как ордер слишком близок к рынку"</span><span style="color: #007700">;                                            break;case </span><span style="color: #0000BB">146</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Подсистема торговли занята"</span><span style="color: #007700">;                                                                             break;case </span><span style="color: #0000BB">147</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Использование даты истечения ордера запрещено брокером"</span><span style="color: #007700">;                                                 break;case </span><span style="color: #0000BB">148</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Количество открытых и отложенных ордеров достигло предела, установленного брокером."</span><span style="color: #007700">;                    break;</span><span style="color: #FF8000">//---- Коды ошибок выполнения MQL4-программы:</span><span style="color: #007700">case </span><span style="color: #0000BB">4000</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет ошибки"</span><span style="color: #007700">;                                                                                            break;case </span><span style="color: #0000BB">4001</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный указатель функции"</span><span style="color: #007700">;                                                                        break;case </span><span style="color: #0000BB">4002</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Индекс массива - вне диапазона"</span><span style="color: #007700">;                                                                        break;case </span><span style="color: #0000BB">4003</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для стека функций"</span><span style="color: #007700">;                                                                          break;case </span><span style="color: #0000BB">4004</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Переполнение стека после рекурсивного вызова"</span><span style="color: #007700">;                                                          break;case </span><span style="color: #0000BB">4005</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"На стеке нет памяти для передачи параметров"</span><span style="color: #007700">;                                                           break;case </span><span style="color: #0000BB">4006</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для строкового параметра"</span><span style="color: #007700">;                                                                   break;case </span><span style="color: #0000BB">4007</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для временной строки"</span><span style="color: #007700">;                                                                       break;case </span><span style="color: #0000BB">4008</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неинициализированная строка"</span><span style="color: #007700">;                                                                           break;case </span><span style="color: #0000BB">4009</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неинициализированная строка в массиве"</span><span style="color: #007700">;                                                                 break;case </span><span style="color: #0000BB">4010</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для строкового массива"</span><span style="color: #007700">;                                                                     break;case </span><span style="color: #0000BB">4011</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком длинная строка"</span><span style="color: #007700">;                                                                                break;case </span><span style="color: #0000BB">4012</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Остаток от деления на ноль"</span><span style="color: #007700">;                                                                            break;case </span><span style="color: #0000BB">4013</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Деление на ноль"</span><span style="color: #007700">;                                                                                       break;case </span><span style="color: #0000BB">4014</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неизвестная команда"</span><span style="color: #007700">;                                                                                   break;case </span><span style="color: #0000BB">4015</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный переход"</span><span style="color: #007700">;                                                                                  break;case </span><span style="color: #0000BB">4016</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неинициализированный массив"</span><span style="color: #007700">;                                                                           break;case </span><span style="color: #0000BB">4017</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Вызовы DLL не разрешены"</span><span style="color: #007700">;                                                                               break;case </span><span style="color: #0000BB">4018</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Невозможно загрузить библиотеку"</span><span style="color: #007700">;                                                                       break;case </span><span style="color: #0000BB">4019</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Невозможно вызвать функцию"</span><span style="color: #007700">;                                                                            break;case </span><span style="color: #0000BB">4020</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Вызовы внешних библиотечных функций не разрешены"</span><span style="color: #007700">;                                                      break;case </span><span style="color: #0000BB">4021</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недостаточно памяти для строки, возвращаемой из функции"</span><span style="color: #007700">;                                               break;case </span><span style="color: #0000BB">4022</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Система занята"</span><span style="color: #007700">;                                                                                        break;case </span><span style="color: #0000BB">4050</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильное количество параметров функции"</span><span style="color: #007700">;                                                            break;case </span><span style="color: #0000BB">4051</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недопустимое значение параметра функции"</span><span style="color: #007700">;                                                               break;case </span><span style="color: #0000BB">4052</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Внутренняя ошибка строковой функции"</span><span style="color: #007700">;                                                                   break;case </span><span style="color: #0000BB">4053</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка массива"</span><span style="color: #007700">;                                                                                        break;case </span><span style="color: #0000BB">4054</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильное использование массива-таймсерии"</span><span style="color: #007700">;                                                          break;case </span><span style="color: #0000BB">4055</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка пользовательского индикатора"</span><span style="color: #007700">;                                                                   break;case </span><span style="color: #0000BB">4056</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Массивы несовместимы"</span><span style="color: #007700">;                                                                                  break;case </span><span style="color: #0000BB">4057</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка обработки глобальныех переменных"</span><span style="color: #007700">;                                                               break;case </span><span style="color: #0000BB">4058</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Глобальная переменная не обнаружена"</span><span style="color: #007700">;                                                                   break;case </span><span style="color: #0000BB">4059</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Функция не разрешена в тестовом режиме"</span><span style="color: #007700">;                                                                break;case </span><span style="color: #0000BB">4060</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Функция не разрешена"</span><span style="color: #007700">;                                                                                  break;case </span><span style="color: #0000BB">4061</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка отправки почты"</span><span style="color: #007700">;                                                                                 break;case </span><span style="color: #0000BB">4062</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ожидается параметр типа string"</span><span style="color: #007700">;                                                                        break;case </span><span style="color: #0000BB">4063</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ожидается параметр типа integer"</span><span style="color: #007700">;                                                                       break;case </span><span style="color: #0000BB">4064</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ожидается параметр типа double"</span><span style="color: #007700">;                                                                        break;case </span><span style="color: #0000BB">4065</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"В качестве параметра ожидается массив"</span><span style="color: #007700">;                                                                 break;case </span><span style="color: #0000BB">4066</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Запрошенные исторические данные в состоянии обновления"</span><span style="color: #007700">;                                                break;case </span><span style="color: #0000BB">4067</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка при выполнении торговой операции"</span><span style="color: #007700">;                                                               break;case </span><span style="color: #0000BB">4099</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Конец файла"</span><span style="color: #007700">;                                                                                           break;case </span><span style="color: #0000BB">4100</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка при работе с файлом"</span><span style="color: #007700">;                                                                            break;case </span><span style="color: #0000BB">4101</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильное имя файла"</span><span style="color: #007700">;                                                                                break;case </span><span style="color: #0000BB">4102</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком много открытых файлов"</span><span style="color: #007700">;                                                                         break;case </span><span style="color: #0000BB">4103</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Невозможно открыть файл"</span><span style="color: #007700">;                                                                               break;case </span><span style="color: #0000BB">4104</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Несовместимый режим доступа к файлу"</span><span style="color: #007700">;                                                                   break;case </span><span style="color: #0000BB">4105</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ни один ордер не выбран"</span><span style="color: #007700">;                                                                               break;case </span><span style="color: #0000BB">4106</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неизвестный символ"</span><span style="color: #007700">;                                                                                    break;case </span><span style="color: #0000BB">4107</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный параметр цены для торговой функции"</span><span style="color: #007700">;                                                       break;case </span><span style="color: #0000BB">4108</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неверный номер тикета"</span><span style="color: #007700">;                                                                                 break;case </span><span style="color: #0000BB">4109</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Торговля не разрешена. Необходимо включить опцию Разрешить советнику торговать в свойствах эксперта."</span><span style="color: #007700">;  break;case </span><span style="color: #0000BB">4110</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Длинные позиции не разрешены. Необходимо проверить свойства эксперта."</span><span style="color: #007700">;                                 break;case </span><span style="color: #0000BB">4111</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Короткие позиции не разрешены. Необходимо проверить свойства эксперта."</span><span style="color: #007700">;                                break;case </span><span style="color: #0000BB">4200</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Объект уже существует"</span><span style="color: #007700">;                                                                                 break;case </span><span style="color: #0000BB">4201</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Запрошено неизвестное свойство объекта"</span><span style="color: #007700">;                                                                break;case </span><span style="color: #0000BB">4202</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Объект не существует"</span><span style="color: #007700">;                                                                                  break;case </span><span style="color: #0000BB">4203</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неизвестный тип объекта"</span><span style="color: #007700">;                                                                               break;case </span><span style="color: #0000BB">4204</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет имени объекта"</span><span style="color: #007700">;                                                                                     break;case </span><span style="color: #0000BB">4205</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка координат объекта"</span><span style="color: #007700">;                                                                              break;case </span><span style="color: #0000BB">4206</span><span style="color: #007700">: </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #DD0000">"Не найдено указанное подокно"</span><span style="color: #007700">;                                                                          break;default:   </span><span style="color: #0000BB">error_string</span><span style="color: #007700">=</span><span style="color: #0000BB">error_code</span><span style="color: #007700">;}return(</span><span style="color: #0000BB">error_string</span><span style="color: #007700">);} 
    </span><span style="color: #0000BB"></span>
    </span>
    </code>

    2019-10-14   19:52
    Лучший ответ #3
    Накопленные выплаты 72086 RUB

    Цитата Сообщение от Gulliwer Посмотреть сообщение
    Добрый день!Нужна функция сравнения двух рыночных ордеров с указанным типом и ID по размеру лота (>/<)..
    Цитата Сообщение от Gulliwer Посмотреть сообщение
    Если кто набросает здесь код этой функции,буду очень признателен..
    Хорошо, напишу вам... только уточните какие есть исходные данные и что нужно получить на выходе функции, цифры или там какие нить слова, чтобы согласовать с вашими дальнейшими действиями.
    Еще такой непонятный момент.. вы написали больше - меньше, но забыли про третье состояние... равенство лотов. Или, при определенных условиях достаточно true/false. Например, лот первого ордера больше второго- true, во всех остальных случаях- false. Уточните.
    Далее.. как минимум, нужны еще их тикеты. Но! если известны тикеты, то тип и ID уже не обязательны. По сему, скорее всего тикеты неизвестны, их нужно найти по каким то признакам, ибо ордеров может быть множество на счете, и с данным типам и с таким ID. Как то так, больше инфы.

    2019-10-17   17:42
    Лучший ответ #4
    Накопленные выплаты 72086 RUB

    Цитата Сообщение от Gulliwer Посмотреть сообщение
    Да,их может быть больше..Тикеты здесь не важны..Нужно простое сравнение лотности ордеров с определенным ID(магиком),определенным типом(BUY,SELL),на одном символе..Например:если лот бай1 больше лот сел2 и OrderSymbol() == Symbol(),то TRUE...дальнейшие мои какие-то действия..Из этой функции сделаю уже сам блок в генератор..Заранее извиняюсь за свою некомпетентность,не знаю,возможно ли так все сделать,выбрать,найти ордер,не учитывая тикер его...
    Все равно не добился от вас признаков, по каким выбирать ордера, если их множество. Можно и без тикетов. Вот привел пробный пример, по вашей просьбе. Однако, она не совсем корректная, если в рынке будет больше двух ордеров или один или 2 одного типа. Старайтесь писать код с перспективой на будущее и учитывать все нюансы. Что непонятно, спрашивайте, подредактируем.
    PHP код:
    <code><span style="color: #000000"> <span style="color: #0000BB"></span><span style="color: #FF8000">//+-------------------------------------------------------------------+//| 17.10.2019 ; https://forexdengi.com |//+-------------------------------------------------------------------+//| Описание : Сравнение лотности двух ордеров разных типов |//+-------------------------------------------------------------------+</span><span style="color: #0000BB">bool CompareLot</span><span style="color: #007700">(</span><span style="color: #0000BB">int ot1</span><span style="color: #007700">=-</span><span style="color: #0000BB">1</span><span style="color: #007700">,</span><span style="color: #0000BB">int ot2</span><span style="color: #007700">=-</span><span style="color: #0000BB">1</span><span style="color: #007700">,</span><span style="color: #0000BB">int mn</span><span style="color: #007700">=-</span><span style="color: #0000BB">1</span><span style="color: #007700">) {</span><span style="color: #0000BB">int type</span><span style="color: #007700">,</span><span style="color: #0000BB">k</span><span style="color: #007700">=</span><span style="color: #0000BB">OrdersTotal</span><span style="color: #007700">();</span><span style="color: #0000BB">double lots_1</span><span style="color: #007700">=</span><span style="color: #0000BB">0.0</span><span style="color: #007700">,</span><span style="color: #0000BB">lots_2</span><span style="color: #007700">=</span><span style="color: #0000BB">0.0</span><span style="color: #007700">;</span><span style="color: #0000BB">bool result</span><span style="color: #007700">=</span><span style="color: #0000BB">false</span><span style="color: #007700">;for(</span><span style="color: #0000BB">i</span><span style="color: #007700">=</span><span style="color: #0000BB">0</span><span style="color: #007700">; </span><span style="color: #0000BB">i</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">k</span><span style="color: #007700">; </span><span style="color: #0000BB">i</span><span style="color: #007700">++) {if(</span><span style="color: #0000BB">OrderSelect</span><span style="color: #007700">(</span><span style="color: #0000BB">i</span><span style="color: #007700">, </span><span style="color: #0000BB">SELECT_BY_POS</span><span style="color: #007700">, </span><span style="color: #0000BB">MODE_TRADES</span><span style="color: #007700">)) { </span><span style="color: #FF8000">// Выбор ордера из списка</span><span style="color: #007700">if(</span><span style="color: #0000BB">OrderSymbol</span><span style="color: #007700">() == </span><span style="color: #0000BB">Symbol</span><span style="color: #007700">() &amp;&amp; </span><span style="color: #0000BB">OrderMagicNumber</span><span style="color: #007700">() == </span><span style="color: #0000BB">mn</span><span style="color: #007700">) { </span><span style="color: #FF8000">// Фильтр по символу и по ID</span><span style="color: #0000BB">type</span><span style="color: #007700">=</span><span style="color: #0000BB">OrderType</span><span style="color: #007700">();if(</span><span style="color: #0000BB">type</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">1</span><span style="color: #007700">) continue;if(</span><span style="color: #0000BB">type</span><span style="color: #007700">==</span><span style="color: #0000BB">OP_BUY </span><span style="color: #007700">&amp;&amp; </span><span style="color: #0000BB">type</span><span style="color: #007700">==</span><span style="color: #0000BB">ot1</span><span style="color: #007700">) </span><span style="color: #0000BB">lots_1</span><span style="color: #007700">=</span><span style="color: #0000BB">OrderLots</span><span style="color: #007700">(); </span><span style="color: #FF8000">// Заносим баерский лот в переменную</span><span style="color: #007700">if(</span><span style="color: #0000BB">type</span><span style="color: #007700">==</span><span style="color: #0000BB">OP_SELL </span><span style="color: #007700">&amp;&amp; </span><span style="color: #0000BB">type</span><span style="color: #007700">==</span><span style="color: #0000BB">ot2</span><span style="color: #007700">) </span><span style="color: #0000BB">lots_2</span><span style="color: #007700">=</span><span style="color: #0000BB">OrderLots</span><span style="color: #007700">(); </span><span style="color: #FF8000">// Заносим селерский лот в переменную</span><span style="color: #007700">}}}if(</span><span style="color: #0000BB">lots_1</span><span style="color: #007700">&gt;</span><span style="color: #0000BB">lots_2</span><span style="color: #007700">) </span><span style="color: #0000BB">result</span><span style="color: #007700">=</span><span style="color: #0000BB">true</span><span style="color: #007700">; </span><span style="color: #FF8000">// Сравниваем лотность</span><span style="color: #007700">return (</span><span style="color: #0000BB">result</span><span style="color: #007700">); </span><span style="color: #FF8000">// Возвращаем результат</span><span style="color: #007700">} </span><span style="color: #FF8000">// Вызов функции сравнения лотности ордеров</span><span style="color: #007700">if(</span><span style="color: #0000BB">CompareLot</span><span style="color: #007700">(</span><span style="color: #0000BB">OP_BUY</span><span style="color: #007700">,</span><span style="color: #0000BB">OP_SELL</span><span style="color: #007700">,</span><span style="color: #0000BB">Magic</span><span style="color: #007700">)) {</span><span style="color: #FF8000">// Здесь какие нить действия, если лот ордера бай больше лота ордера селл</span><span style="color: #007700">}else {</span><span style="color: #FF8000">// Здесь какие нить действия, если лот ордера бай меньше лота ордера селл или равен</span><span style="color: #007700">} </span><span style="color: #0000BB"></span> </span> </code>

    Цитата Сообщение от Gulliwer Посмотреть сообщение
    не знаю,возможно ли так все сделать,выбрать,найти ордер,не учитывая тикер его
    Какие то еще есть признаки... например, максимальная-минимальная цена, время открытия, привязка к барам... исходя из логики проектируемого советника. Нужен уникальный признак, чтобы гарантированно выбрать тот или иной ордер

    2011-03-13   13:21
    Лучший ответ #5
    Накопленные выплаты 14514 RUB

    Добрый день.
    Вот и я решил поделиться кодом написал функцию кодов ошибок на русском языке.

    MQL-Код:
    <code><span style="color: #000000">
    <span style="color: #0000BB">string error</span><span style="color: #007700">(</span><span style="color: #0000BB">int eer</span><span style="color: #007700">){</span><span style="color: #0000BB">string er</span><span style="color: #007700">;switch(</span><span style="color: #0000BB">eer</span><span style="color: #007700">){</span><span style="color: #FF8000">//---- </span><span style="color: #007700">case </span><span style="color: #0000BB">0</span><span style="color: #007700">:case </span><span style="color: #0000BB">1</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет ошибки, но результат неизвестен"</span><span style="color: #007700">;                         break;case </span><span style="color: #0000BB">2</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Общая ошибка"</span><span style="color: #007700">;                                                break;case </span><span style="color: #0000BB">3</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильные параметры"</span><span style="color: #007700">;                                      break;case </span><span style="color: #0000BB">4</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Торговый сервер занят"</span><span style="color: #007700">;                                       break;case </span><span style="color: #0000BB">5</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Старая версия клиентского терминала"</span><span style="color: #007700">;                         break;case </span><span style="color: #0000BB">6</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет связи с торговым сервером"</span><span style="color: #007700">;                               break;case </span><span style="color: #0000BB">7</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недостаточно прав"</span><span style="color: #007700">;                                           break;case </span><span style="color: #0000BB">8</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком частые запросы"</span><span style="color: #007700">;                                      break;case </span><span style="color: #0000BB">9</span><span style="color: #007700">:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недопустимая операция нарушающая функционирование сервера"</span><span style="color: #007700">;   break;case </span><span style="color: #0000BB">64</span><span style="color: #007700">:  </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Счет заблокирован"</span><span style="color: #007700">;                                           break;case </span><span style="color: #0000BB">65</span><span style="color: #007700">:  </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный номер счета"</span><span style="color: #007700">;                                    break;case </span><span style="color: #0000BB">128</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Истек срок ожидания совершения сделки"</span><span style="color: #007700">;                       break;case </span><span style="color: #0000BB">129</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильная цена"</span><span style="color: #007700">;                                           break;case </span><span style="color: #0000BB">130</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильные стопы"</span><span style="color: #007700">;                                          break;case </span><span style="color: #0000BB">131</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный объем"</span><span style="color: #007700">;                                          break;case </span><span style="color: #0000BB">132</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Рынок закрыт"</span><span style="color: #007700">;                                                break;case </span><span style="color: #0000BB">133</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Торговля запрещена"</span><span style="color: #007700">;                                          break;case </span><span style="color: #0000BB">134</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недостаточно денег для совершения операции"</span><span style="color: #007700">;                  break;case </span><span style="color: #0000BB">135</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Цена изменилась"</span><span style="color: #007700">;                                             break;case </span><span style="color: #0000BB">136</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет цен"</span><span style="color: #007700">;                                                     break;case </span><span style="color: #0000BB">137</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Брокер занят"</span><span style="color: #007700">;                                                break;case </span><span style="color: #0000BB">138</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Новые цены - Реквот"</span><span style="color: #007700">;                                         break;case </span><span style="color: #0000BB">139</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ордер заблокирован и уже обрабатывается"</span><span style="color: #007700">;                     break;case </span><span style="color: #0000BB">140</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Разрешена только покупка"</span><span style="color: #007700">;                                    break;case </span><span style="color: #0000BB">141</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком много запросов"</span><span style="color: #007700">;                                      break;case </span><span style="color: #0000BB">145</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Модификация запрещена, так как ордер слишком близок к рынку"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">146</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Подсистема торговли занята"</span><span style="color: #007700">;                                  break;case </span><span style="color: #0000BB">147</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Использование даты истечения ордера запрещено брокером"</span><span style="color: #007700">;      break;case </span><span style="color: #0000BB">148</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Количество открытых и отложенных ордеров достигло предела "</span><span style="color: #007700">;  break;</span><span style="color: #FF8000">//---- </span><span style="color: #007700">case </span><span style="color: #0000BB">4000</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет ошибки"</span><span style="color: #007700">;                                                 break;case </span><span style="color: #0000BB">4001</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный указатель функции"</span><span style="color: #007700">;                             break;case </span><span style="color: #0000BB">4002</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Индекс массива - вне диапазона"</span><span style="color: #007700">;                             break;case </span><span style="color: #0000BB">4003</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для стека функций"</span><span style="color: #007700">;                               break;case </span><span style="color: #0000BB">4004</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Переполнение стека после рекурсивного вызова"</span><span style="color: #007700">;               break;case </span><span style="color: #0000BB">4005</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"На стеке нет памяти для передачи параметров"</span><span style="color: #007700">;                break;case </span><span style="color: #0000BB">4006</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для строкового параметра"</span><span style="color: #007700">;                        break;case </span><span style="color: #0000BB">4007</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для временной строки"</span><span style="color: #007700">;                            break;case </span><span style="color: #0000BB">4008</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неинициализированная строка"</span><span style="color: #007700">;                                break;case </span><span style="color: #0000BB">4009</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неинициализированная строка в массиве"</span><span style="color: #007700">;                      break;case </span><span style="color: #0000BB">4010</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет памяти для строкового массива"</span><span style="color: #007700">;                          break;case </span><span style="color: #0000BB">4011</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком длинная строка"</span><span style="color: #007700">;                                     break;case </span><span style="color: #0000BB">4012</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Остаток от деления на ноль"</span><span style="color: #007700">;                                 break;case </span><span style="color: #0000BB">4013</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Деление на ноль"</span><span style="color: #007700">;                                            break;case </span><span style="color: #0000BB">4014</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неизвестная команда"</span><span style="color: #007700">;                                        break;case </span><span style="color: #0000BB">4015</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный переход"</span><span style="color: #007700">;                                       break;case </span><span style="color: #0000BB">4016</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неинициализированный массив"</span><span style="color: #007700">;                                break;case </span><span style="color: #0000BB">4017</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Вызовы DLL не разрешены"</span><span style="color: #007700">;                                    break;case </span><span style="color: #0000BB">4018</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Невозможно загрузить библиотеку"</span><span style="color: #007700">;                            break;case </span><span style="color: #0000BB">4019</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Невозможно вызвать функцию"</span><span style="color: #007700">;                                 break;case </span><span style="color: #0000BB">4020</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"eВызовы внешних библиотечных функций не разрешены"</span><span style="color: #007700">;          break;case </span><span style="color: #0000BB">4021</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недостаточно памяти для строки, возвращаемой из функции"</span><span style="color: #007700">;    break;case </span><span style="color: #0000BB">4022</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Система занята"</span><span style="color: #007700">;                                             break;case </span><span style="color: #0000BB">4050</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильное количество параметров функции"</span><span style="color: #007700">;                 break;case </span><span style="color: #0000BB">4051</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Недопустимое значение параметра функции"</span><span style="color: #007700">;                    break;case </span><span style="color: #0000BB">4052</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Внутренняя ошибка строковой функции"</span><span style="color: #007700">;                        break;case </span><span style="color: #0000BB">4053</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка массива"</span><span style="color: #007700">;                                             break;case </span><span style="color: #0000BB">4054</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильное использование массива-таймсерии"</span><span style="color: #007700">;               break;case </span><span style="color: #0000BB">4055</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка пользовательского индикатора"</span><span style="color: #007700">;                        break;case </span><span style="color: #0000BB">4056</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Массивы несовместимы"</span><span style="color: #007700">;                                       break;case </span><span style="color: #0000BB">4057</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка обработки глобальныех переменных"</span><span style="color: #007700">;                    break;case </span><span style="color: #0000BB">4058</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Глобальная переменная не обнаружена"</span><span style="color: #007700">;                        break;case </span><span style="color: #0000BB">4059</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Функция не разрешена в тестовом режиме"</span><span style="color: #007700">;                     break;case </span><span style="color: #0000BB">4060</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Функция не подтверждена"</span><span style="color: #007700">;                                    break;case </span><span style="color: #0000BB">4061</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка отправки почты"</span><span style="color: #007700">;                                      break;case </span><span style="color: #0000BB">4062</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ожидается параметр типа string"</span><span style="color: #007700">;                             break;case </span><span style="color: #0000BB">4063</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ожидается параметр типа integer"</span><span style="color: #007700">;                            break;case </span><span style="color: #0000BB">4064</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ожидается параметр типа double"</span><span style="color: #007700">;                             break;case </span><span style="color: #0000BB">4065</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"В качестве параметра ожидается массив"</span><span style="color: #007700">;                      break;case </span><span style="color: #0000BB">4066</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Запрошенные исторические данные в состоянии обновления"</span><span style="color: #007700">;     break;case </span><span style="color: #0000BB">4067</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка при выполнении торговой операции"</span><span style="color: #007700">;                    break;case </span><span style="color: #0000BB">4099</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Конец файла"</span><span style="color: #007700">;                                                break;case </span><span style="color: #0000BB">4100</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка при работе с файлом"</span><span style="color: #007700">;                                 break;case </span><span style="color: #0000BB">4101</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильное имя файла"</span><span style="color: #007700">;                                     break;case </span><span style="color: #0000BB">4102</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Слишком много открытых файлов"</span><span style="color: #007700">;                              break;case </span><span style="color: #0000BB">4103</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Невозможно открыть файл"</span><span style="color: #007700">;                                    break;case </span><span style="color: #0000BB">4104</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Несовместимый режим доступа к файлу"</span><span style="color: #007700">;                        break;case </span><span style="color: #0000BB">4105</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ни один ордер не выбран"</span><span style="color: #007700">;                                    break;case </span><span style="color: #0000BB">4106</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неизвестный символ"</span><span style="color: #007700">;                                         break;case </span><span style="color: #0000BB">4107</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неправильный параметр цены для торговой функции"</span><span style="color: #007700">;            break;case </span><span style="color: #0000BB">4108</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неверный номер тикета"</span><span style="color: #007700">;                                      break;case </span><span style="color: #0000BB">4109</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Торговля не разрешена"</span><span style="color: #007700">;                                      break;case </span><span style="color: #0000BB">4110</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Длинные позиции не разрешены"</span><span style="color: #007700">;                               break;case </span><span style="color: #0000BB">4111</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Короткие позиции не разрешены"</span><span style="color: #007700">;                              break;case </span><span style="color: #0000BB">4200</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Объект уже существует"</span><span style="color: #007700">;                                      break;case </span><span style="color: #0000BB">4201</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Запрошено неизвестное свойство объекта"</span><span style="color: #007700">;                     break;case </span><span style="color: #0000BB">4202</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Объект не существует"</span><span style="color: #007700">;                                       break;case </span><span style="color: #0000BB">4203</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Неизвестный тип объекта"</span><span style="color: #007700">;                                    break;case </span><span style="color: #0000BB">4204</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Нет имени объекта"</span><span style="color: #007700">;                                          break;case </span><span style="color: #0000BB">4205</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка координат объекта"</span><span style="color: #007700">;                                   break;case </span><span style="color: #0000BB">4206</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Не найдено указанное подокно"</span><span style="color: #007700">;                               break;case </span><span style="color: #0000BB">4207</span><span style="color: #007700">: </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"Ошибка при работе с объектом"</span><span style="color: #007700">;                               break;default:   </span><span style="color: #0000BB">er</span><span style="color: #007700">=</span><span style="color: #DD0000">"unknown error"</span><span style="color: #007700">;}return(</span><span style="color: #0000BB">er</span><span style="color: #007700">);}</span><span style="color: #FF8000">//-------------------------------------------------------------------------------------+ 
    </span><span style="color: #0000BB"></span>
    </span>
    </code>
    Использовать в советнике так
    MQL-Код:
    <code><span style="color: #000000">
    <span style="color: #0000BB">int er</span><span style="color: #007700">=</span><span style="color: #0000BB">GetLastError</span><span style="color: #007700">();</span><span style="color: #0000BB">error</span><span style="color: #007700">(</span><span style="color: #0000BB">er</span><span style="color: #007700">); 
    </span><span style="color: #0000BB"></span>
    </span>
    </code>

    2011-12-08   02:05
    Лучший ответ #6
    Накопленные выплаты 18175 RUB

    Цитата Сообщение от WsForex Посмотреть сообщение
    Полезная функция кто не понимает код ошибок
    Добрый день.
    Вот и я решил поделиться кодом написал функцию кодов ошибок на русском языке.
    Цитата Сообщение от WsForex Посмотреть сообщение
    Использовать в советнике так
    PHP код:
    <code><span style="color: #000000"> <span style="color: #0000BB">int er</span><span style="color: #007700">=</span><span style="color: #0000BB">GetLastError</span><span style="color: #007700">(); </span><span style="color: #0000BB">error</span><span style="color: #007700">(</span><span style="color: #0000BB">er</span><span style="color: #007700">) </span><span style="color: #0000BB"></span> </span> </code>
    ;
    А я вот такую написал, использовать ее намного удобнее, функция возвращает код ошибки:
    PHP код:
    <code><span style="color: #000000"> <span style="color: #0000BB"></span><span style="color: #FF8000">//+------------------------------------------------------------------+ </span><span style="color: #0000BB">int Error</span><span style="color: #007700">(</span><span style="color: #0000BB">string event</span><span style="color: #007700">) </span><span style="color: #FF8000">//Error("");</span><span style="color: #007700">{</span><span style="color: #0000BB">string descr</span><span style="color: #007700">;</span><span style="color: #0000BB">int err </span><span style="color: #007700">= </span><span style="color: #0000BB">GetLastError</span><span style="color: #007700">();switch(</span><span style="color: #0000BB">err</span><span style="color: #007700">){</span><span style="color: #FF8000">// Коды ошибок, возвращаемые торговым сервером или клиентским терминалом:</span><span style="color: #007700">case </span><span style="color: #0000BB">0</span><span style="color: #007700">: </span><span style="color: #FF8000">/*descr= "Нет ошибки";*/ </span><span style="color: #007700">return(</span><span style="color: #0000BB">0</span><span style="color: #007700">);case </span><span style="color: #0000BB">1</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет ошибки, но результат не известен"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">2</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Общая ошибка"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">3</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильные параметры"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Торговый сервер занят"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">5</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Старая версия клиентского терминала"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">6</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет связи с торговым сервером"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">7</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Недостаточно прав"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">8</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Слишком частые запросы"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">9</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Недопустимая операция нарушающая функционирование сервера"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">64</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Счет заблокирован"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">65</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильный номер счета"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">128</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Истек срок ожидания совершения сделки"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">129</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильная цена"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">130</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильные стопы"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">131</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильный объем"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">132</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Рынок закрыт"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">133</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Торговля запрещена"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">134</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Недостаточно денег для совершения операции"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">135</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Цена изменилась"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">136</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет цен"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">137</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Брокер занят"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">138</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Новые цены"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">139</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Ордер заблокирован и уже обрабатывается"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">140</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Разрешена только покупка"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">141</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Слишком много запросов"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">145</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Модификация запрещена, так как ордер слишком близок к рынку"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">146</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Подсистема торговли занята"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">147</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Использование даты истечения ордера запрещено брокером"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">148</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Количество открытых и отложенных ордеров достигло предела, установленного брокером"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">149</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Попытка открыть противоположную позицию к уже существующей, если хеджирование запрещено"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">150</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Попытка закрыть позицию по инструменту в противоречии с правилом FIFO"</span><span style="color: #007700">; break;</span><span style="color: #FF8000">// Коды ошибок выполнения MQL4 программы:</span><span style="color: #007700">case </span><span style="color: #0000BB">4000</span><span style="color: #007700">: </span><span style="color: #FF8000">/*descr= "Нет ошибки";*/ </span><span style="color: #007700">return(</span><span style="color: #0000BB">0</span><span style="color: #007700">);case </span><span style="color: #0000BB">4001</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильный указатель функции"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4002</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Индекс массива - вне диапазона"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4003</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет памяти для стека функций"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4004</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Переполнение стека после рекурсивного вызова"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4005</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"На стеке нет памяти для передачи параметров"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4006</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет памяти для строкового параметра"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4007</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет памяти для временной строки"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4008</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неинициализированная строка"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4009</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неинициализированная строка в массиве"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4010</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет памяти для строкового массива"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4011</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Слишком длинная строка"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4012</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Остаток от деления на ноль"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4013</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Деление на ноль"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4014</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неизвестная команда"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4015</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильный переход"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4016</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неинициализированный массив"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4017</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Вызовы DLL не разрешены"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4018</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Невозможно загрузить библиотеку"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4019</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Невозможно вызвать функцию"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4020</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Вызовы внешних библиотечных функций не разрешены"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4021</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Недостаточно памяти для строки, возвращаемой из функции"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4022</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Система занята"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4050</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильное количество параметров функции"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4051</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Недопустимое значение параметра функции"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4052</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Внутренняя ошибка строковой функции"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4053</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ошибка массива"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4054</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильное использование массива-таймсерии"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4055</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ошибка пользовательского индикатора"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4056</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Массивы несовместимы"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4057</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ошибка обработки глобальныех переменных"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4058</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Глобальная переменная не обнаружена"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4059</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Функция не разрешена в тестовом режиме"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4060</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Функция не подтверждена"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4061</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ошибка отправки почты"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4062</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ожидается параметр типа string"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4063</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Ожидается параметр типа integer"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4064</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ожидается параметр типа double"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4065</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"В качестве параметра ожидается массив"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4066</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Запрошенные исторические данные в состоянии обновления"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4099</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Конец файла"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4100</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ошибка при работе с файлом"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4101</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильное имя файла"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4102</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Слишком много открытых файлов"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4103</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Невозможно открыть файл"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4104</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Несовместимый режим доступа к файлу"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4105</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Ни один ордер не выбран"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4106</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неизвестный символ"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4107</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неправильный параметр цены для торговой функции"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4108</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неверный номер тикета"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4109</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Торговля не разрешена"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4110</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Длинные позиции не разрешены"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4111</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Короткие позиции не разрешены"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4200</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Объект уже существует"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4201</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Запрошено неизвестное свойство объекта"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4202</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Объект не существует"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4203</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Неизвестный тип объекта"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4204</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Нет имени объекта"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4205</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ошибка координат объекта"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4206</span><span style="color: #007700">: </span><span style="color: #0000BB">descr </span><span style="color: #007700">= </span><span style="color: #DD0000">"Не найдено указанное подокно"</span><span style="color: #007700">; break;case </span><span style="color: #0000BB">4207</span><span style="color: #007700">: </span><span style="color: #0000BB">descr</span><span style="color: #007700">= </span><span style="color: #DD0000">"Ошибка при работе с объектом"</span><span style="color: #007700">; break;}Print(</span><span style="color: #0000BB">event</span><span style="color: #007700">,</span><span style="color: #DD0000">": "</span><span style="color: #007700">,</span><span style="color: #0000BB">descr</span><span style="color: #007700">,</span><span style="color: #DD0000">", № ошибки - "</span><span style="color: #007700">,</span><span style="color: #0000BB">err</span><span style="color: #007700">); return(</span><span style="color: #0000BB">err</span><span style="color: #007700">);} </span><span style="color: #FF8000">//+------------------------------------------------------------------+ </span><span style="color: #0000BB"></span> </span> </code>
    Пользоваться так - Error("описание контролируемого события"); и все .
    Пример:
    PHP код:
    <code><span style="color: #000000"> <span style="color: #0000BB">int start</span><span style="color: #007700">(){ </span><span style="color: #0000BB">Error</span><span style="color: #007700">(</span><span style="color: #DD0000">"В этом месте"</span><span style="color: #007700">);</span><span style="color: #0000BB">int x </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">/</span><span style="color: #0000BB">x</span><span style="color: #007700">; return(</span><span style="color: #0000BB">0</span><span style="color: #007700">);} </span><span style="color: #0000BB"></span> </span> </code>

    Вложение 181860

    Вложение
    Превью
  2. линк#201
    Кандидат форумных наук
    Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Nick'Otin приемлемый уровень репутации Аватар для Nick'Otin
    Регистрация:
    16.12.2009
    Сообщений:
    2,320
    Накопленные выплаты (Подробнее):
    3750 RUB
    Поставил(а) лайков:
    74
    Получено лайков:   439
    в 223 сообщениях
    19%
    ПодписатьсяПодписаться
    Подписано 0
    Получить количество ордеров (рыночных либо отложенных) данного типа.
    MQL-Код:
    
    int OrdersCount(int type){  int orders = 0;  int cnt = OrdersTotal();  for (int i=0; i<cnt; i++) {    if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;    //Опционально    //if (OrderSymbol() != Symbol()) continue;    //Опционально    //if (OrderMagicNumber() != Magic) continue;    if (OrderType() == type) orders++;  }  return (orders);} 
    
    
    

    В эксперте эту функцию можно использовать следующим образом:
    MQL-Код:
    
    int start() {  int BuyCnt = OrdersCount(OP_BUY);  if (BuyCnt > 0) return (0);  ... 
    
    
    

    Последний раз редактировалось Gold; 27.11.2015 в 19:33.

  3. post_thanks Получено лайков: 1

    Kofa (22.10.2017)

    FX.co
  4. линк#206
    Свой человек
    В эйфории
     
    desper приемлемый уровень репутации Аватар для desper
    Регистрация:
    17.12.2014
    Пол:
    Мужчина
    Сообщений:
    433
    Накопленные выплаты (Подробнее):
    9516 RUB
    Поставил лайков:
    448
    Получено лайков:   74
    в 63 сообщениях
    17%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от dato896 Посмотреть сообщение
    здравствуйте, может кто сумеет прикрутить функцию закрытия открытых сделок при обратном пересечение ценой MA? с рубильником ON/OFF советник написан под заказ за деньги, на добавление функции денег не хватает, может кто бесплатно поможет?
    dato896
    Если по существу вопроса "прикрутить функцию закрытия открытых сделок при обратном пересечение ценой MA", то надо вставить типа
    MQL-Код:
    
     MA0<=MA1 CloseAll(); 
    
    
    
    в строку 332.
    Правда я сам не могу т.к компилятор ругается
    MQL-Код:
    
     'CloseAll' - some operator expected    cm pin filtrebit 2.mq4    332    18 
    
    
    
    поэтому может кто другой поможет кто умеет успокаивать этого зверя чтобы он не матюгался.


  5. линк#207
    В середине пути
    Gulliwer стараюсь положительно себя зарекомендовать Аватар для Gulliwer
    Регистрация:
    28.10.2016
    Пол:
    Мужчина
    Сообщений:
    45
    Накопленные выплаты (Подробнее):
    98 RUB
    Поставил лайков:
    13
    Получено лайков:   3
    в 3 сообщениях
    7%
    ПодписатьсяПодписаться
    Подписано 0
    Добрый день!Нужна функция сравнения двух рыночных ордеров с указанным типом и ID по размеру лота (>/<)..


  6. post_thanks Получено лайков: 2

    Незарегистрированный (2 пользователя)

  7. линк#208
    Кубик-Rubik ™
    Страшно
     
    Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Аватар для Rubinovi4
    Регистрация:
    19.12.2010
    Пол:
    Мужчина
    Сообщений:
    15,867
    Накопленные выплаты (Подробнее):
    413886 RUB
    Поставил лайков:
    6,538
    Получено лайков:   11,524
    в 7,039 сообщениях
    73%
    Поймано букетов:
    8
    (Подробнее)
    ПодписатьсяПодписаться
    Подписано 1
    Цитата Сообщение от Gulliwer Посмотреть сообщение
    Добрый день!Нужна функция сравнения двух рыночных ордеров с указанным типом и ID по размеру лота (>/<)..
    А что там сложного? В цикле, при выборе ордеров через OrderSelect, передавай нужные тебе значения тип ордера и его тикер как я понимаю. Ну а дальше уже простая математика, сравнивай больше или меньше и выполняй что тебе необходимо.
    Цитата Сообщение от dato896 Посмотреть сообщение
    советник написан под заказ за деньги, на добавление функции денег не хватает, может кто бесплатно поможет?
    Я уверен, что Владимир внесёт данное изменение бесплатно, если обратиться к нему.


  8. post_thanks Получено лайков: 2

    69zamok69 (17.10.2019), Незарегистрированный (1 пользователь)

  9. линк#209
    В середине пути
    Gulliwer стараюсь положительно себя зарекомендовать Аватар для Gulliwer
    Регистрация:
    28.10.2016
    Пол:
    Мужчина
    Сообщений:
    45
    Накопленные выплаты (Подробнее):
    98 RUB
    Поставил лайков:
    13
    Получено лайков:   3
    в 3 сообщениях
    7%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от Rubinovi4 Посмотреть сообщение
    А что там сложного? В цикле, при выборе ордеров через OrderSelect, передавай нужные тебе значения тип ордера и его тикер как я понимаю. Ну а дальше уже простая математика, сравнивай больше или меньше и выполняй что тебе необходимо.
    Спасибо,конечно,за совет..Ну не силен я в программировании.. Советников своих делаю в генераторе.Так,в общих чертах,разбираюсь немного,могу понять,о чем речь в коде..Блоки из генератора стандартные могу немного под себя переделать,в программе специальной..А так,чтобы сам написал,пока нет...Пробую,конечно,но времени не хватает поглубже разобраться.Если кто набросает здесь код этой функции,буду очень признателен..


  10. линк#210
    Кандидат форумных наук
    Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Аватар для Leschich
    Регистрация:
    30.11.2012
    Пол:
    Мужчина
    Сообщений:
    1,864
    Накопленные выплаты (Подробнее):
    72086 RUB
    Поставил лайков:
    6,335
    Получено лайков:   2,847
    в 1,143 сообщениях
    153%
    Поймано букетов:
    1
    (Подробнее)
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от Gulliwer Посмотреть сообщение
    Добрый день!Нужна функция сравнения двух рыночных ордеров с указанным типом и ID по размеру лота (>/<)..
    Цитата Сообщение от Gulliwer Посмотреть сообщение
    Если кто набросает здесь код этой функции,буду очень признателен..
    Хорошо, напишу вам... только уточните какие есть исходные данные и что нужно получить на выходе функции, цифры или там какие нить слова, чтобы согласовать с вашими дальнейшими действиями.
    Еще такой непонятный момент.. вы написали больше - меньше, но забыли про третье состояние... равенство лотов. Или, при определенных условиях достаточно true/false. Например, лот первого ордера больше второго- true, во всех остальных случаях- false. Уточните.
    Далее.. как минимум, нужны еще их тикеты. Но! если известны тикеты, то тип и ID уже не обязательны. По сему, скорее всего тикеты неизвестны, их нужно найти по каким то признакам, ибо ордеров может быть множество на счете, и с данным типам и с таким ID. Как то так, больше инфы.

    Последний раз редактировалось Leschich; 14.10.2019 в 20:09.
    " Мы можем видеть то, что случится в будущем, по событиям прошлого, если знаем, как смотреть". В. Сперандео.
    Мы называем процессы случайными... до тех пор, пока не установим их закономерности.

  11. post_thanks Получено лайков: 6

    69zamok69 (17.10.2019), Gulliwer (17.10.2019), Алиса4000 (08.06.2020), ЭЛАСТИКО (09.06.2020), Незарегистрированный (2 пользователя)

  12. линк#211
    В середине пути
    Gulliwer стараюсь положительно себя зарекомендовать Аватар для Gulliwer
    Регистрация:
    28.10.2016
    Пол:
    Мужчина
    Сообщений:
    45
    Накопленные выплаты (Подробнее):
    98 RUB
    Поставил лайков:
    13
    Получено лайков:   3
    в 3 сообщениях
    7%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от Leschich Посмотреть сообщение
    Хорошо, напишу вам... только уточните какие есть исходные данные и что нужно получить на выходе функции, цифры или там какие нить слова, чтобы согласовать с вашими дальнейшими действиями.
    Еще такой непонятный момент.. вы написали больше - меньше, но забыли про третье состояние... равенство лотов. Или, при определенных условиях достаточно true/false. Например, лот первого ордера больше второго- true, во всех остальных случаях- false. Уточните.
    Далее.. как минимум, нужны еще их тикеты. Но! если известны тикеты, то тип и ID уже не обязательны. По сему, скорее всего тикеты неизвестны, их нужно найти по каким то признакам, ибо ордеров может быть множество на счете, и с данным типам и с таким ID. Как то так, больше инфы.
    Прошу прощения,выше не точно выразился..Нужно сравнить не конкретно вот именно ДВА ордера(это у меня в советнике,по моим условиям, будет два)...Да,их может быть больше..Тикеты здесь не важны..Нужно простое сравнение лотности ордеров с определенным ID(магиком),определенным типом(BUY,SELL),на одном символе..Например:если лот бай1 больше лот сел2 и OrderSymbol() == Symbol(),то TRUE...дальнейшие мои какие-то действия..Из этой функции сделаю уже сам блок в генератор..Заранее извиняюсь за свою некомпетентность,не знаю,возможно ли так все сделать,выбрать,найти ордер,не учитывая тикер его...Если б знал,не дурил бы голову вам здесь


  13. post_thanks Получено лайков: 2

    69zamok69 (17.10.2019), Незарегистрированный (1 пользователь)

  14. линк#212
    Кандидат форумных наук
    Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Аватар для Leschich
    Регистрация:
    30.11.2012
    Пол:
    Мужчина
    Сообщений:
    1,864
    Накопленные выплаты (Подробнее):
    72086 RUB
    Поставил лайков:
    6,335
    Получено лайков:   2,847
    в 1,143 сообщениях
    153%
    Поймано букетов:
    1
    (Подробнее)
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от Gulliwer Посмотреть сообщение
    Да,их может быть больше..Тикеты здесь не важны..Нужно простое сравнение лотности ордеров с определенным ID(магиком),определенным типом(BUY,SELL),на одном символе..Например:если лот бай1 больше лот сел2 и OrderSymbol() == Symbol(),то TRUE...дальнейшие мои какие-то действия..Из этой функции сделаю уже сам блок в генератор..Заранее извиняюсь за свою некомпетентность,не знаю,возможно ли так все сделать,выбрать,найти ордер,не учитывая тикер его...
    Все равно не добился от вас признаков, по каким выбирать ордера, если их множество. Можно и без тикетов. Вот привел пробный пример, по вашей просьбе. Однако, она не совсем корректная, если в рынке будет больше двух ордеров или один или 2 одного типа. Старайтесь писать код с перспективой на будущее и учитывать все нюансы. Что непонятно, спрашивайте, подредактируем.
    PHP код:
    //+-------------------------------------------------------------------+ //| 17.10.2019 ; https://forexdengi.com | //+-------------------------------------------------------------------+ //| Описание : Сравнение лотности двух ордеров разных типов | //+-------------------------------------------------------------------+ bool CompareLot(int ot1=-1,int ot2=-1,int mn=-1) { int type,k=OrdersTotal(); double lots_1=0.0,lots_2=0.0; bool result=false; for(i=0; i<k; i++) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { // Выбор ордера из списка if(OrderSymbol() == Symbol() && OrderMagicNumber() == mn) { // Фильтр по символу и по ID type=OrderType(); if(type>1) continue; if(type==OP_BUY && type==ot1) lots_1=OrderLots(); // Заносим баерский лот в переменную if(type==OP_SELL && type==ot2) lots_2=OrderLots(); // Заносим селерский лот в переменную }}} if(lots_1>lots_2) result=true; // Сравниваем лотность return (result); // Возвращаем результат } // Вызов функции сравнения лотности ордеров if(CompareLot(OP_BUY,OP_SELL,Magic)) { // Здесь какие нить действия, если лот ордера бай больше лота ордера селл } else { // Здесь какие нить действия, если лот ордера бай меньше лота ордера селл или равен }

    Цитата Сообщение от Gulliwer Посмотреть сообщение
    не знаю,возможно ли так все сделать,выбрать,найти ордер,не учитывая тикер его
    Какие то еще есть признаки... например, максимальная-минимальная цена, время открытия, привязка к барам... исходя из логики проектируемого советника. Нужен уникальный признак, чтобы гарантированно выбрать тот или иной ордер

    Последний раз редактировалось Leschich; 17.10.2019 в 18:10.
    " Мы можем видеть то, что случится в будущем, по событиям прошлого, если знаем, как смотреть". В. Сперандео.
    Мы называем процессы случайными... до тех пор, пока не установим их закономерности.

  15. post_thanks Получено лайков: 6

    69zamok69 (17.10.2019), Gulliwer (17.10.2019), NaKaZ (18.10.2019), Алиса4000 (08.06.2020), ЭЛАСТИКО (09.06.2020), Незарегистрированный (1 пользователь)

  16. линк#213
    V.I.P.
    no
     
    MitraHder отличная репутация MitraHder отличная репутация MitraHder отличная репутация MitraHder отличная репутация MitraHder отличная репутация MitraHder отличная репутация MitraHder отличная репутация MitraHder отличная репутация MitraHder отличная репутация MitraHder отличная репутация MitraHder отличная репутация Аватар для MitraHder
    Регистрация:
    15.01.2011
    Пол:
    Мужчина
    Сообщений:
    10,701
    Накопленные выплаты (Подробнее):
    177815 RUB
    Поставил лайков:
    6,935
    Получено лайков:   7,174
    в 3,828 сообщениях
    67%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от Nick'Otin Посмотреть сообщение
    for (int i=0; i
    if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    Это что за у Вас фрагменты? Когда копируете, то хоть проверяйте, что скопировалось. Полагаю, цикл организован был так:
    MQL-Код:
    
    for (int i=0; i < cnt; i++) 
    
    
    

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


  17. линк#214
    Мой первый пост!
    dmitriy2208 стараюсь положительно себя зарекомендовать Аватар для dmitriy2208
    Регистрация:
    21.04.2018
    Пол:
    Мужчина
    Сообщений:
    1
    Накопленные выплаты (Подробнее):
    0 RUB
    Поставил лайков:
    0
    Получено лайков:   0
    в 0 сообщениях
    0%
    ПодписатьсяПодписаться
    Подписано 0
    Доброго времени суток! Можете дать пример кода для функции в индикатор
    "extern int _O_Time_Life = 1; // количество свечей, на которых сигнал сохраняется после появления" на примере этого советника?
    paperclip Вложения


  18. post_thanks Получено лайков: 2

    Незарегистрированный (2 пользователя)

  19. линк#215
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    7,292
    Накопленные выплаты (Подробнее):
    169700 RUB
    Поставил(а) лайков:
    932
    Получено лайков:   7,418
    в 3,564 сообщениях
    102%
    ПодписатьсяПодписаться
    Подписано 4
    Цитата Сообщение от dmitriy2208 Посмотреть сообщение
    Можете дать пример кода для функции в индикатор
    "extern int _O_Time_Life = 1; // количество свечей, на которых сигнал сохраняется после появления"
    Например так:
    PHP код:
    bool IsSignalDone(datetime SignalTime, int BarsCount) { int i; for(i = 0; i < Bars; i++) if(Time[i] == SignalTime) break; return(!(i < BarsCount)); } //Где: //SignalTime - Время открытия бара, на котором появился сигнал. //BarsCount - Сколько баров держать сигнал. // //При появлении сигнала сохраняем время открытия того бара, на котором появился сигнал datetime MySignalTime = /*Время открытия бара, на котором появился сигнал.*/ //Пример применения. Проверка сигнала на старость if(IsSignalDone(MySignalTime, _O_Time_Life)) { //Тут сигнал устарел. }

    Цитата Сообщение от dmitriy2208 Посмотреть сообщение
    на примере этого советника?
    А вот это вряд ли... С советником сами разбирайтесь. Неужели вы реально думаете, что ради пары тройки простых строк кто-то станет разгребать почти 200К чужого кода?


  20. post_thanks Получено лайков: 3

    Rubinovi4 (21.12.2020), Незарегистрированный (2 пользователя)

    FX.co
  21. линк#216
    Кубик-Rubik ™
    Страшно
     
    Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Rubinovi4 наивысший уровень репутации Аватар для Rubinovi4
    Регистрация:
    19.12.2010
    Пол:
    Мужчина
    Сообщений:
    15,867
    Накопленные выплаты (Подробнее):
    413886 RUB
    Поставил лайков:
    6,538
    Получено лайков:   11,524
    в 7,039 сообщениях
    73%
    Поймано букетов:
    8
    (Подробнее)
    ПодписатьсяПодписаться
    Подписано 1
    Цитата Сообщение от ir0407 Посмотреть сообщение
    Неужели вы реально думаете, что ради пары тройки простых строк кто-то станет разгребать почти 200К чужого кода?
    Он просто не понимает ещё, новичок.


  22. post_thanks Получено лайков: 2

    ir0407 (21.12.2020), Незарегистрированный (1 пользователь)


Страница 11 из 11
Первая ... 10 Последняя

Подписанные на тему (39)

Похожие темы

  1. Некоторые секреты МТ4
    от Андрей Сырбу в разделе Трейдерский софт, компьютерное оборудование
    Replies: 2384
    Последнее сообщение: 14.02.2021, 23:18
  2. Некоторые психотехники
    от сват в разделе Психология трейдера
    Replies: 2160
    Последнее сообщение: 29.12.2020, 18:21
  3. FAQ: Полезные функции форума (подписка, уведомления, черновики, и др.)
    от Странник_РУ в разделе Вопросы к администрации форума
    Replies: 9
    Последнее сообщение: 16.09.2020, 12:55
  4. MQL5: Некоторые полезные функции
    от Gold в разделе MQL-программирование, АТС
    Replies: 25
    Последнее сообщение: 26.02.2019, 10:54
  5. Банкомат. Некоторые особенности
    от Volangott в разделе Свободное общение
    Replies: 0
    Последнее сообщение: 27.03.2014, 16:30

Метки этой темы